我正在尝试对一段代码进行基准测试。正是基于此代码here与有趣的部分基本上看起来像这样:如何在C++中获得一段代码的执行时间?
auto t0 = std::chrono::high_resolution_clock::now();
...
auto t1 = std::chrono::high_resolution_clock::now();
std::cout << secs(t1-t0).count() << " s\n";
的问题是,我是一个共享的机器上,这是给我挂钟时间,所以我的成绩没有给我任何东西是一致的。我真正需要的是某种秒表工具,它可以让我得到我的代码运行的时间,而不是花时间。有什么选择?如果涉及系统特定的调用,我在Linux机器上,但如果可能的话,我宁愿保持此代码的便携性。
我看了其他问题,如this和this,但他们似乎都提供壁挂时间解决方案。
你有没有考虑在'main'隔离代码,编译,并通过['time'(http://en.wikipedia.org/wiki/Time_(Unix上运行它))? (不是测量小块代码的最佳选择,但是因为您使用的是秒数,所以我认为这应该足够好) –
我可以将其作为最后一招,但我正在运行大量测试配置,如果我必须保持复制到主体,这个测试将花费更长的时间,并且会少得多愉快 – GBleaney
当你说“时间”,你的意思是CPU时间?如果您要排除所有其他进程对CPU的使用,您是否想要包含I/O的时间? – wallyk