मैं एक प्रोग्राम लिख रहा हूं जो एक विशिष्ट प्रक्रिया के लिए सीपीयू, मेमोरी और नेटवर्क उपयोग प्राप्त करने के लिए .NET प्रदर्शन काउंटर का उपयोग करता है।किसी विशिष्ट प्रक्रिया के लिए नेटवर्क प्रदर्शन की निगरानी करें
उदाहरण के लिए, Explorer
के लिए सीपीयू और मेमोरी डेटा प्राप्त करने, मैं प्रदर्शन काउंटरों इस प्रकार बना:
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "% Processor Time";
PC.InstanceName = "Explorer";
PerformanceCounter PC = new PerformanceCounter();
PC.CategoryName = "Process";
PC.CounterName = "Working Set - Private";
PC.InstanceName = "Explorer";
दुर्भाग्य से, वहाँ है कि मुझे उस के लिए नेटवर्क उपयोग पाने के लिए अनुमति देता है प्रक्रिया categoryName
के लिए कोई संपत्ति है प्रक्रिया। मैं किसी भी विशेष एनआईसी पर समग्र नेटवर्क उपयोग प्राप्त करने के लिए नेटवर्क इंटरफेस categoryName
का उपयोग कर सकता हूं, लेकिन इसे किसी भी प्रक्रिया में अलग नहीं कर सकता।
ऐसा लगता है कि पहले कुछ ऐसा ही पूछा गया है: http: //stackoverflow.com/questions/438240/monitor-a-processs-network-usage – Dilshod
यह एक वास्तुशिल्प सीमा है। ये काउंटर नेटवर्क ड्राइवर स्टैक द्वारा कार्यान्वित किए जाते हैं। जो कर्नेल मोड में चलता है, इसमें यूजरोड प्रक्रिया जागरूकता नहीं होती है। उसी तरह का कारण है कि FileSystemWatcher आपको यह नहीं बता सकता कि किस प्रक्रिया ने फ़ाइल को संशोधित किया है। –