Программа C# может измерить свое собственное использование ЦП так или иначе?

import java.util.Random;
public class MyClass {
public static void main(String args[]) {
Double min = 0.0;  //  Set To Your Desired Min Value
Double max = 10.0; //    Set To Your Desired Max Value
double x = (Math.random()*((max-min)+1))+min; //    This Will Create 
A Random Number Inbetween Your Min And Max.
double xrounded = Math.round(x * 100.0) / 100.0; // Creates Answer To 
The Nearest 100th, You Can Modify This To Change How It Rounds.
System.out.println(xrounded); //    This Will Now Print Out The 
Rounded, Random Number.
}
}
39
задан Blair Conrad 10 November 2008 в 01:59
поделиться

5 ответов

Можно также использовать Система. Диагностика. Процесс. TotalProcessorTime и Система. Диагностика. ProcessThread. Свойства TotalProcessorTime для вычисления использования процессора как этого статья описывают.

49
ответ дан axk 23 September 2019 в 18:04
поделиться

Взгляните на System.Diagnostics.PerformanceCounter. Если Вы увеличитесь perfmon.exe, Вы будете видеть, диапазон счетчиков производительности, доступных Вам (установите 'объект управления' для 'Обрабатывания'), одним из которых является 'Процессорное время %'.

8
ответ дан Sunlight 23 September 2019 в 18:04
поделиться

Вы можете через Систему. Диагностика. Класс PerformanceCounter. Вот пример кого-то контролирующего использование ЦП:

http://blogs.msdn.com/dotnetinterop/archive/2007/02/02/system-diagnostics-performancecounter-and-processor-time-on-multi-core-or-multi-cpu.aspx

Примечание, что это действительно требует поднятых полномочий. И может быть хит производительности с помощью него.

4
ответ дан Keltex 23 September 2019 в 18:04
поделиться

Хорошо, что Вы регистрируетесь к мониторам как smartinspect. Но окна самостоятельно собирают данные для каждого ресурса в этом случае Ваша программа (или процесс). WMI является стандартом для Мониторинга приложений. Мы можем просмотреть данные, собранные WMI. Многие управление приложениями, медицинский контроль или applicaiton контролирующие инструменты поддерживают WMI из поля.

, Таким образом, я не рекомендовал бы Вам зарегистрировать свое использование ЦП в рамках приложения к файлу журнала.

, Если Вы думаете, доступность и производительность очень важны, тогда идут для решений как решение Microsoft Operations manager.

, Чтобы понять о WMI и получить список процесса посмотрите ниже: - Win32_PerfFormattedData_PerfProc_Process для получения процессорного времени фильтр является processID , Видят эту статью - можно получить processID от класса Win32_process.

WMI, Сделанный Легкий Для C# Kevin Matthew Goss

oConn.Username = "JohnDoe";
oConn.Password = "JohnsPass";

System.Management.ManagementScope oMs = new System.Management.ManagementScope("\\MachineX", oConn);    

//get Fixed disk stats
System.Management.ObjectQuery oQuery = new System.Management.ObjectQuery("select FreeSpace,Size,Name from Win32_LogicalDisk where DriveType=3");

//Execute the query 
ManagementObjectSearcher oSearcher = new ManagementObjectSearcher(oMs,oQuery);

//Get the results
ManagementObjectCollection oReturnCollection = oSearcher.Get();   

//loop through found drives and write out info
foreach( ManagementObject oReturn in oReturnCollection )
{
    // Disk name
    Console.WriteLine("Name : " + oReturn["Name"].ToString());
    // Free Space in bytes
    Console.WriteLine("FreeSpace: " + oReturn["FreeSpace"].ToString());
    // Size in bytes
    Console.WriteLine("Size: " + oReturn["Size"].ToString());
} 

, можно контролировать процесс от Удаленной системы также.

3
ответ дан amit 23 September 2019 в 18:04
поделиться

В этой статье проекта кода описывается использование высокопроизводительного таймера:

http://www.codeproject.com/KB/cs/highperformancetimercshar.aspx

Вы можете использовать его для задержки выполнения вашего кода.

Здесь вы можете найти несколько профилировщиков C# с открытым исходным кодом:

http://csharp-source.net/open-source/profile

-2
ответ дан 27 November 2019 в 02:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: