【发布时间】:2012-09-11 11:38:39
【问题描述】:
我在 Visual Studios 中使用 MFC。我想知道在这个特定的 IDE 中测量操作(例如函数 A 与函数 B)的速度/效率的最佳方法是什么。这可以用断点来完成吗?
【问题讨论】:
我在 Visual Studios 中使用 MFC。我想知道在这个特定的 IDE 中测量操作(例如函数 A 与函数 B)的速度/效率的最佳方法是什么。这可以用断点来完成吗?
【问题讨论】:
不,使用QueryPerformanceCounter (docs) 来准确测量速度。从 @MadKeithV 的 cmets 来看,这似乎不是一个好的解决方案,因为 CPU 速度缩放(根据当前负载降低 CPU 速度)可能会改变 CPU 滴答长度。
使用一个好的分析器是一个更好的主意,或者只是使用clock_t 来测量。
【讨论】:
衡量操作效率的一个好方法是通过分析(参见例如How is profiling different from logging?) - 分析旨在向您展示在您的程序、特定函数、行甚至语句中花费的时间。
如果您的操作花费的时间足够长,您还可以使用简单的“挂钟时间”(例如您平台的 GetTime 等效项)来计算通话时间 - 例如如果单个操作需要多毫秒。请注意,在存在多线程的情况下,将其分解为实际性能可能非常棘手 - 您应该确切地知道您在测量什么。
【讨论】:
如果您有终极版,它有相当不错的内置性能分析器。否则,请使用外部分析器。
【讨论】: