在Visual C++中测量操作速度的最佳方法

Best way to measure the speed of an operation in Visual C++

本文关键字:速度 最佳 方法 操作 测量 Visual C++      更新时间:2023-10-16

我在Visual Studio中使用MFC。我想知道在这个特定的IDE中,测量操作(例如函数A与函数B)的速度/效率的最佳方法是什么。这可以用断点完成吗?

否,使用QueryPerformanceCounter(docs)精确测量速度。根据@MadKeithV的评论,这似乎不是一个好的解决方案,因为CPU速度缩放(根据当前负载降低CPU速度)可能会改变CPU节拍长度。

使用一个好的探查器是一个更好的主意,或者只使用clock_t进行测量。

衡量操作效率的一个好方法是通过分析(例如,请参阅分析与日志记录有何不同?)-分析旨在向您展示在程序、特定函数、行甚至语句中花费的时间。

如果您的操作需要足够长的时间,您还可以使用简单的"挂钟时间"(例如,您平台的GetTime等效时间)来计时呼叫的持续时间,例如,如果一次操作需要几毫秒。注意,在多线程的情况下,这可能很难分解为实际性能——你应该确切地知道你在测量什么。

如果你有Ultimate版本,它有相当不错的内置性能分析器。否则,请使用外部探查器。