【发布时间】:2016-06-23 06:19:23
【问题描述】:
如何测量C++inWindows中的一行代码的执行时间。我正在插入大约 1,00,000 条记录 boost::multi_index_container,如下所示:
while(...) //read a single record from a csv file until EOF
{
...
while(...) // split the record into components based on delimiter
{
...
}
//insert into boost::multi_index_container
}
我需要找到插入所有记录所需的时间,但没有循环的执行时间。在插入函数之前启动 timer 或任何东西,并在函数调用之后计算经过的时间,结果为 0 nanoseconds。所以我无法通过总结各个时间来计算时间。解决办法是什么?
【问题讨论】:
-
原则上,您可以这样处理: 1. 测量空循环的时间(但要确保它没有被优化掉)。 2. 测量插入循环的时间。 3.拿差价。 Devil 很详细,但如果你想测量,你应该测量优化的代码,而不是调试代码。然后,有一个机会,优化器会让你更难。检查汇编器输出以确保您测量的是您认为自己测量的内容。由于您也不希望文件读取时间,因此您可能会想出一些额外的步骤和差异来最终获得所需的内容。
-
不知你为什么需要这个度量呢?
-
@pradyot:我想要一个Windows系统的解决方案
-
@BitTickler:我会试一试..但不太确定我理解你的意思..
-
@Jackzz。很明显。为什么需要衡量绩效?
标签: c++ windows execution-time boost-multi-index