gpt4 book ai didi

C++ 精确测量时间(以十进制毫秒为单位)

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:16 24 4
gpt4 key购买 nike

我正在测量排序算法的时间,例如冒泡排序、插入排序、选择排序和快速排序。我将其用于我的目的

    long int before = GetTickCount();
QuickSort(pole,0,dlzka-1);
long int after = GetTickCount();
double dif = double((after - before));
cout << "Quick Sort with time "<< dif << " ms " << endl;

我正在对包含 30 000 个整数的数组进行排序,并且对于其他排序也能正常工作,除了 QuickSort 可能速度如此之快,以至于它在不到 1 毫秒的时间内对 30k 整数进行排序,然后我的计时器说它是 0 毫秒,这看起来像是一个错误。我想写它例如 0,01ms 只是为了让它看起来运行得很好。谢谢。

最佳答案

当您进行基准测试时,您永远不会只对一次 运行进行基准测试。您的计时器不够精确/准确,无法在这么短的时间内给出有意义的结果。

例如,the documentation for GetTickCount说:

The resolution of the GetTickCount function is limited to the resolution of the system timer, which is typically in the range of 10 milliseconds to 16 milliseconds.

因此,很明显,获取 0.01ms 的值是愚蠢的。

相反,运行多次基准测试,然后除以运行次数。

关于C++ 精确测量时间(以十进制毫秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21678553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com