我一直在使用LeetCode进行C ++编程,每当提交解决方案时,它就会告诉我程序运行了多长时间以及使用了多少内存。
我正在将Mac和VSCode与g ++一起使用,以在本地编译程序。我想找到一种工具或方法,以获取有关程序的运行时间和内存使用情况的相同信息,以便尝试对其进行调整以查看对性能的影响。
是否可以通过我的程序运行编译器选项或诸如命令行工具或VSCode扩展之类的东西,还是必须向程序中添加代码以跟踪时间和内存本身?
答案 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