在Visual C++中测量操作速度的最佳方法
Best way to measure the speed of an operation in Visual C++
我在Visual Studio中使用MFC。我想知道在这个特定的IDE中,测量操作(例如函数A与函数B)的速度/效率的最佳方法是什么。这可以用断点完成吗?
否,使用QueryPerformanceCounter
(docs)精确测量速度。根据@MadKeithV的评论,这似乎不是一个好的解决方案,因为CPU速度缩放(根据当前负载降低CPU速度)可能会改变CPU节拍长度。
使用一个好的探查器是一个更好的主意,或者只使用clock_t
进行测量。
衡量操作效率的一个好方法是通过分析(例如,请参阅分析与日志记录有何不同?)-分析旨在向您展示在程序、特定函数、行甚至语句中花费的时间。
如果您的操作需要足够长的时间,您还可以使用简单的"挂钟时间"(例如,您平台的GetTime等效时间)来计时呼叫的持续时间,例如,如果一次操作需要几毫秒。注意,在多线程的情况下,这可能很难分解为实际性能——你应该确切地知道你在测量什么。
如果你有Ultimate版本,它有相当不错的内置性能分析器。否则,请使用外部探查器。
相关文章:
- 在C#中处理C++指针而不使用unsafe的最佳方法
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- 在c代码之间共享数据的最佳方式
- 使用std::source_location报告错误的最佳实践
- 为什么在读取文件大小时文件IO速度会发生变化
- 派生类销毁的最佳实践是什么
- 将寄存器设计成可由C和C++访问的外设的最佳实践
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 为什么std::condition_variable notify_all的工作速度比notify_one快(对于随机请
- 文件系统:复制功能的速度秘诀是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 在C++中向零方向近似的最佳方法
- 使用不同的CRT将新的C++代码与旧的(二进制)组件隔离开来的最佳方法是什么
- 从嵌套在std::映射中的std::列表中删除元素的最佳方式
- 如果条件为TRUE(最佳方式?),则在do while循环中后置增量
- 学习多线程C++:添加线程不会使执行速度更快,即使它看起来应该
- 检测win32服务创建和删除的最佳方法
- 在reactor中存储eventHandlers的最佳方式是什么
- 在Visual C++中测量操作速度的最佳方法