这里我做了一个计算任何文件的CRC16的函数。我用C编写了这个函数和程序。想要记下我的C程序的CPU使用情况和内存使用情况
现在我想找出我的CRC16计算函数的CPU使用情况和内存使用情况。
我知道关于top
的命令。在这里,我没有更多时间在其他选项卡上看到这个东西,并且它没有用户友好来使用它。
我发现了一个链接,但我不能得到更多关于这个。
有哪些做这些事情,给我造成任何功能?
请任何机构帮我找出这个东西。
这里我做了一个计算任何文件的CRC16的函数。我用C编写了这个函数和程序。想要记下我的C程序的CPU使用情况和内存使用情况
现在我想找出我的CRC16计算函数的CPU使用情况和内存使用情况。
我知道关于top
的命令。在这里,我没有更多时间在其他选项卡上看到这个东西,并且它没有用户友好来使用它。
我发现了一个链接,但我不能得到更多关于这个。
有哪些做这些事情,给我造成任何功能?
请任何机构帮我找出这个东西。
请输入man 2 getrusage
了解更多信息。
我预计ru_idrss
是你需要的内存使用。它应该填入更新版本的Linux内核中。或者你可以使用procps并从/ proc目录获取信息。前和计算后ru_utime
的差异会给你的CPU时间
有一个在这个问题的详细信息:How to get memory usage at run time in c++?
如果你是挑剔的演出和工作在x86或x64,你可以尝试valgrind和其callgrind工具,以及它更精确(但更难掌握)cachegrind替代。
通过发行版的包管理器安装后,它会是一个简单的问题:
valgrind --tool=cachegrind ./a.out
valgrind --tool=callgrind ./a.out
注意,您可以使用可视化工具kcachegrind轻松visialize性能数据。我链接到valgrind的维基百科文章,因为它是缓和而且相当完整的。 The official Valgrind website is here。
我通常使用此工具将热循环性能提高一些数量级!
除了上面的答案,您还可以使用pmap
,mmap
,oprpfile
和,我个人最喜欢的,perf
,在linuxtools中找到。希望能帮助到你。
但是我怎么可以给我例子 – user1089679 2012-02-27 17:18:09
尝试'时间'和'/ usr/bin/time'。 – 2012-02-27 06:25:13
@KerrekSB但我该如何使用它? – user1089679 2012-02-27 06:30:22
如果你的程序是'prog',把它作为'时间编程'运行' – 2012-02-27 07:40:21