[英]C++ How to measure and compare execution time between two functions
我是 C++ 新手
而且我正在尝试构建一个简单的项目,所以我需要测量和比较两个函数之间的执行时间,看看哪个函数的性能时间更好,
我知道有很多方法,比如计算开始时间和结束时间以及计算差异,但这通常不是真的,所以没有正确的方法吗?
我的旧代码:
#include <chrono>
auto begin = std::chrono::steady_clock::now();
/* some code*/
auto end = std::chrono::steady_clock::now();
auto time = (end - begin).count();
请问有什么帮助吗?
使用C++ Timeit 库:
比较两个函数之间的时间
void func1() { /* some code */ }
void func2() { /* some code */ }
compareit(1000,func1,func2);
结果
[COMPARE IT] first(675) > second(22) x30
笔记
first
表示第一个函数 func1()
second
表示第二个函数 func2()
x30
表示 func2() 比 func1() 快 30 倍
675
22
func1
、 func2
执行1000
次的经过时间
测量一项功能的时间
void func() { for (auto i = 0; i < 10; i++) sqrt(i); }
std::cout << timeit(1000, func).nanoseconds() << std::endl;
结果
225451
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.