Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何降低myProcess.TotalProcessorTime的分辨率?_C#_Process_Timer_Resolution - Fatal编程技术网

C# 如何降低myProcess.TotalProcessorTime的分辨率?

C# 如何降低myProcess.TotalProcessorTime的分辨率?,c#,process,timer,resolution,C#,Process,Timer,Resolution,我使用TotalProcessorTime通过cpu中的一种方法来测量时间速度 for(int i=0;i<10;i++){ double s = Process.getCurrentProcess().TotalProcessorTime; primeNumber(500); //return the 500 primenumber doube e = Process.getCurrentProcess().TotalProcessorTime; Co

我使用TotalProcessorTime通过cpu中的一种方法来测量时间速度

for(int i=0;i<10;i++){
    double s = Process.getCurrentProcess().TotalProcessorTime;
    primeNumber(500);  //return the 500 primenumber 
    doube e = Process.getCurrentProcess().TotalProcessorTime;
    Console.writeLine(e-s);
}

对于(int i=0;i我几乎可以肯定,您希望使用
秒表
查询性能计数器
,或类似工具来实现您的愿望。但是,
TotalProcessorTime
的粒度可以修改:

粒度/分辨率由系统计时器分辨率决定。
这个答案说明了如何获取和修改系统计时器分辨率。下面给出了(c)和(c#)的编码示例.

您确定需要通过
TotalProcessorTime
来花费时间吗?为什么不使用一个呢?此计时器基于时钟中断频率,默认情况下每秒滴答64次。您可以获得更高的分辨率,这需要pinvoking QueryProcessCycleTime()。尽管它返回的是处理器周期,而不是时间。@对于其他后台进程,germi stopwatch也需要一段时间,例如,如果处理器不在我们的进程中,则此时间也将被计算出来(调度内容).所以我需要的只是我的过程中的时间cpu@Sayse不明白,你能再解释一下吗?@HansPassant我如何使用QueryProcessCycleTime()为了解决TotalProcessTime的问题,以便只获取进程在cpu中的时间?我没有尝试为您提供代码。我想给您一个线索。但是,您可能会看到,我告诉过您,因为我已经看到了您提供给我的链接,所以我测试了代码,但没有执行相同的操作:)