繁体   English   中英

C ++如何测量和比较两个函数之间的执行时间

[英]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 func1func2执行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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM