C ++获取运行时间和内存使用率

时间:2019-07-05 19:31:02

标签: c++ performance g++ performance-testing benchmarking

我一直在使用LeetCode进行C ++编程,每当提交解决方案时,它就会告诉我程序运行了多长时间以及使用了多少内存。

我正在将Mac和VSCode与g ++一起使用,以在本地编译程序。我想找到一种工具或方法,以获取有关程序的运行时间和内存使用情况的相同信息,以便尝试对其进行调整以查看对性能的影响。

是否可以通过我的程序运行编译器选项或诸如命令行工具或VSCode扩展之类的东西,还是必须向程序中添加代码以跟踪时间和内存本身?

2 个答案:

答案 0 :(得分:4)

您可以使用valgrind查找内存泄漏或性能分析。 Google benchmark用于代码段基准测试。或者,您可以使用chrono自己测量时间。 还有一个在线基准测试工具quick-bench

更新

我在godbolt上发现了这个不错的信息,它提供了有关迭代次数或循环次数的见解...

感谢@ Peter tool llvm-mca估计每个周期的指令(IPC)以及硬件资源压力。 这是对CPU的理论模型的仿真,不是概要文件,但仍然有用。它还不涵盖缓存未命中。

答案 1 :(得分:3)

对于简单输出,可以使用gnu time

如该页面上的建议:

/usr/bin/time -f "time result\ncmd:%C\nreal %es\nuser %Us \nsys  %Ss \nmemory:%MKB \ncpu %P" <command>

对于Mac OSX上的版本,只需看一下以下答案:https://apple.stackexchange.com/a/235404