如何在Windows上测量C中的CPU时间并包含system()的调用?
发布时间:2020-12-14 04:22:40 所属栏目:Windows 来源:网络整理
导读:我想在C算法上运行一些基准测试,并希望获得所需的CPU时间,具体取决于输入.我在 Windows 7上使用Visual Studio 2012.我已经发现了一种在Windows中计算CPU时间的方法: How can I measure CPU time and wall clock time on both Linux/Windows? 但是,我在我的
我想在C算法上运行一些基准测试,并希望获得所需的CPU时间,具体取决于输入.我在
Windows 7上使用Visual Studio 2012.我已经发现了一种在Windows中计算CPU时间的方法:
How can I measure CPU time and wall clock time on both Linux/Windows?
但是,我在我的算法中使用了system()命令,这不是以这种方式测量的.那么,我如何测量CPU时间并通过system()包含我的脚本调用次数? 我应该添加一个小例子.这是我的get_cpu_time函数(来自上面描述的链接): double get_cpu_time(){ FILETIME a,b,c,d; if (GetProcessTimes(GetCurrentProcess(),&a,&b,&c,&d) != 0){ // Returns total user time. // Can be tweaked to include kernel times as well. return (double)(d.dwLowDateTime | ((unsigned long long)d.dwHighDateTime << 32)) * 0.0000001; }else{ // Handle error return 0; } } 到目前为止,这工作正常,当我制作一个程序,对一些数组进行排序(或做一些其他需要一些时间的东西),它工作正常.但是,当我在这种情况下使用system() – 命令时,它不会: int main( int argc,const char* argv[] ) { double start = get_cpu_time(); double end; system("Bla.exe"); end = get_cpu_time(); printf("Everything took %f seconds of CPU time",end - start); std::cin.get(); } 给定的exe文件的执行以相同的方式测量并且花费大约5秒.当我通过system()运行它时,整个过程需要0秒的CPU时间,这显然不包括exe文件的执行. 一种可能性就是在系统调用上得到一个HANDLE,这有可能吗?
Linux的:
>对于挂钟时间,请使用gettimeofday()或clock_gettime() (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows Phone开发使用wpf?
- 复制最新/最新文件夹窗口的内容
- WSL初始配置+图形界面
- .net – 如何在WPF中使用DrawThemeTextEx
- 如何从Microsoft Visual C#2010中的属性工具栏设置父控件?
- window系统下的pycharm对虚拟机中的Ubuntu系统操作MySQL数据
- windows-server-2012 – 防止Windows Server 2012在更新后强
- Windows下安装redis并且设置密码
- winforms – 使用Windows窗体锁定脚本终止后的PowerShell I
- wpf – App xaml假设实例化的第一个窗口是主窗口(showdialo
推荐文章
站长推荐
- 如何升级Windows Netbeans的Subversion版本
- 良好的开源错误跟踪/问题跟踪sofware for Window
- OCS R2 September 2011 Updates Released
- Exchange – Office 365的所有外部邮件都失败了S
- windows-server-2008-r2 – 服务器08 RDP:如果已
- windows – 为什么lua的字符串模式匹配呢?
- 使用Windows Azure存储进行备份
- 带有新管理门户的Windows Azure CDN
- 如何执行 Windows 恶意软件移除工具??
- windows-server-2008 – 如何删除事件源窗口2008
热点阅读