【问题标题】:C++ Profiler on Windows [duplicate]Windows上的C ++ Profiler [重复]
【发布时间】:2013-02-16 12:48:02
【问题描述】:

我刚开始使用 C++,有时我不知道我的编译器会多么喜欢算法的两种不同实现。 有没有一个简单的工具可以用来查看我的代码执行需要多长时间?

编辑:我使用 gcc 编译器

【问题讨论】:

  • 使用高精度计时器为您的代码执行 1000 次算法计时。

标签: c++ windows profiler


【解决方案1】:

【讨论】:

  • Google Test 进行分析?!
【解决方案2】:

如果你想测量整个程序运行的时间,那么 Code-Blocks/Visual Studio 应该 告诉你程序何时关闭。它应该在底部的日志中。

如果您想测量特定行或函数需要多长时间,我建议您研究一下 clock()QueryPerformanceFrequency() 以及如何使用它们。

clock() 函数很慢,但更易于使用。一个例子:

float start_time = clock()/CLOCKS_PER_SEC;
func();
float end_time = clock()/CLOCKS_PER_SEC;
float dtime = start_time - end_time;

【讨论】:

  • 请记住,clock 在 Windows 上的作用与在 Unix(Linux、MacOS 等)上的作用不同。如果您的代码只是普通代码,这没什么区别,但如果您执行 I/O 或以其他方式导致系统运行其他东西,在 Windows 中,clock 给出代码运行的总时间,而在 Unix 中它给出 CPU - 程序消耗的时间 - 所以执行 10 秒文件 I/0 的操作可能会显示为 0.02s,因为这实际上是 CPU 时间的多少,但它需要 10 秒“实时”。
【解决方案3】:

Smart Bear 的 AQtime 我有很好的体验,它不是免费的,但你可以免费试用。它可以很好地集成到 Embarcardero 的 Visual C++ 和 RAD Studio 中。

http://smartbear.com/products/qa-tools/application-performance-profiling

数据在 IDE 中很容易访问,尤其是在行号旁边的 gutter 部分中的命中数和花费的时间数字很有用。

【讨论】:

    猜你喜欢
    • 2013-03-29
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 2013-07-07
    • 1970-01-01
    • 2013-03-27
    • 2013-06-09
    相关资源
    最近更新 更多