想要提及我的C程序的CPU使用率和内存使用率

时间:2012-02-27 06:08:22

标签: c linux embedded cpu cpu-usage

这里我做了一个函数来计算任何文件的CRC16。我在C中完成了这个功能和程序。

现在我想了解我的CRC16计算功能的CPU使用率和内存使用情况。

我知道top命令。在这里,我没有更多的时间在其他标签上看到这个东西,并且用户不友好使用它。

我发现了一个链接,但我无法对此有所了解。

link

有没有做这些事情并给我结果的功能?

请任何人帮我找出这件事。

3 个答案:

答案 0 :(得分:1)

输入man 2 getrusage了解详情。

我希望ru_idrss是内存使用所需的。它应该在更新版本的Linux内核中填写。或者您可以使用procps并从/ proc目录获取信息。计算前后ru_utime的差异将为您提供CPU时间

此问题中有更多信息:How to get memory usage at run time in c++?

答案 1 :(得分:1)

除了上面的答案,您还可以使用linuxtools中的pmapmmapoprpfile以及我个人最喜欢的perf。希望它有所帮助。

答案 2 :(得分:0)

如果你对x86或x64上的表演和工作很挑剔,你可以试试valgrind及其 callgrind 工具,以及更精确(但更难掌握) cachegrind 替代方案。

通过发行版的软件包管理器安装后,只需要:

valgrind --tool=cachegrind ./a.out
valgrind --tool=callgrind ./a.out

请注意,您可以使用可视化工具kcachegrind轻松查看效果数据。我链接到维基百科关于valgrind的文章,因为它是succint并且非常完整。 The official Valgrind website is here

我通常使用此工具将热循环性能提高几个数量级!