【发布时间】:2020-01-17 00:57:37
【问题描述】:
我想知道使用时间戳来测试某个程序或代码块执行多长时间的程序的运行时间。我不明白时间戳的概念,因为我一直在阅读时间戳的定义及其用途,而且我还遇到了显示当前日期和时间的问题,这对解决我的问题没有帮助。我期待着对这个话题有所启发。祝你今天过得愉快!谢谢!
【问题讨论】:
-
提醒,系统中发生的其他活动可能会影响程序的执行。一项活动是更高优先级的任务(这些任务会随着您的程序“切换出去”)。另一个是数据总线的使用(由其他内核和硬件组件)。你必须适应平均持续时间。一个简单的测量将涉及最少 1.0E6 次迭代。在互联网上搜索“基准 C++ 程序”
-
老兄,时间戳和基准测试有什么区别?我可以阅读一些 cmets,它们都非常适合了解某个代码块的 Big O 表示法,但这不能相似。希望能对这件事情多多指教,谢谢!
-
时间戳是一个时间点。它的编码方式和分辨率各不相同。可以使用两个时间戳来计算它们之间的距离,即经过的时间。
-
时间复杂度与时间关系不大。 Big O 仅告诉您随着输入大小的增加可能会发生多少工作。给定数据集的经过时间和已知的时间复杂度,您可以估计对不同大小的数据集执行相同操作需要多长时间,但仅此而已。
-
基准测试是衡量程序或程序的一部分的性能。时间戳是一个时间点。您可能需要在时间戳之间多次运行代码才能获得有效的持续时间(例如,如果您的时间戳分辨率以毫秒为单位,但代码以纳秒为单位运行)。基准测试过程包括有关如何处理异常的信息,例如任务交换。记得在分析之前验证构建的优化级别。