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

C++ get run time and memory usage

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

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

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

您可以使用 valgrind to find memory leaks or profiling. And Google benchmark for code snippet benchmarks. Or you can measure time yourself with chrono。 还有一个在线基准测试工具,quick-bench

更新:

我在 godbolt 上找到了这个很好的信息,它提供了关于迭代或循环次数的见解...

感谢@Peter the tool llvm-mca 估计每周期指令数 (IPC) 以及硬件资源压力。 这是对 CPU 理论模型的模拟,不是配置文件,但仍然有用。它也不包括缓存未命中。

对于简单的输出,您可以使用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