PDA

View Full Version : بدست آوردن میزان مصرف پردازنده از یک برنامه مشخص در سی شارپ



mohammadhusseinashoori
یک شنبه 14 شهریور 1395, 14:25 عصر
با عرض سلام و خسته نباشید.

به کمک PerformanceCounter میتوانم میزان استفاده شده پردازنده را بدست آورم. اما عددی که بدست می آید برای کل برنامه ها سیستم می باشد. من می خواهم برای همان برنامه ای که اجرا کردم درصد بزند.

سرچ کردم دو روش دیدم که روش اول : استفاده از کنترل ترد ها و متوقف کردن برنامه برای چند لحظه ( هنگ کردن برنامه ) و بدست آوردن اختلاف آن دو عدد
که من نمی تونم برنامه ام رو متوقف کنم حتی برای 100 میلی ثانیه!

روش دوم استفاده از instance nameبود که برای گوگل کروم تست کردم جواب داد. ولی نمی دانم برای خود برنامه مورد نظر چطور بدست میاد.
ممنون میشم مرا راهنمایی کنید که چطور این اسم را بدست آورم.

بسیار ممنونم

mohammadhusseinashoori
یک شنبه 14 شهریور 1395, 15:15 عصر
این کد را الان پیدا کردم این نام رو بدست می اورد.

اما مشکل اینجا هست که درصد مصرف پردازنده در محدود 0 تا 100 نیست! حتی 425درصد را نشان می دهد.
چکار باید کرد؟





private void instance_name_Set()
{
Process proc = Process.GetCurrentProcess();
int pid = proc.Id;
PerformanceCounterCategory cat = new PerformanceCounterCategory("Process");


string[] instances = cat.GetInstanceNames();
foreach (string instance in instances)
{


using (PerformanceCounter cnt = new PerformanceCounter("Process",
"ID Process", instance, true))
{
int val = (int)cnt.RawValue;
if (val == pid)
Counter.InstanceName = instance;
}
}
}

alexmcse
یک شنبه 14 شهریور 1395, 20:58 عصر
سلام
به اینجا رجوع کن
http://barnamenevis.org/showthread.php?529585-%D8%A8%D8%AF%D8%B3%D8%AA-%D8%A2%D9%88%D8%B1%D8%AF%D9%86-%D9%85%DB%8C%D8%B2%D8%A7%D9%86-%D9%85%D8%B5%D8%B1%D9%81-Cpu&p=2339427#post2339427

:تشویق:
:تشویق:

mohammadhusseinashoori
دوشنبه 15 شهریور 1395, 16:10 عصر
سلام دوست عزیز
این لینک که فرستادید برای همه برنامه ها هست من میخوام برای یک برنامه مشخص باشه