[英]Accurate benchmark under windows
我正在编写一个程序,该程序需要运行一组可执行文件并查找其执行时间。 我的第一种方法是运行一个流程,启动一个计时器,然后查看启动时间与流程返回退出值的那一刻之间的时差。
不幸的是,该程序无法在专用计算机上运行,因此许多其他进程/线程可以极大地改变执行时间。
我想获得OS实际分配给进程的时间(以毫秒/时钟为单位)。 我希望Windows将这些信息存储在某个地方,但我找不到在msdn上有用的任何东西。
当然,一种解决方案是多次运行该过程并计算平均时间,但我不会避免这种情况。
谢谢。
您可能正在寻找“ 高性能计数器 ”。
我已经使用QueryPerformanceCounter / QueryPerformanceFrequency在诸如3D编程之类的东西中进行高分辨率定时,而其中的库存功能只是不能削减它。
您也可以尝试RDTSC x86指令。
您可以看一下GetProcessTimes API。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.