2012-02-27 56 views
1

这里我做了一个计算任何文件的CRC16的函数。我用C编写了这个函数和程序。想要记下我的C程序的CPU使用情况和内存使用情况

现在我想找出我的CRC16计算函数的CPU使用情况和内存使用情况。

我知道关于top的命令。在这里,我没有更多时间在其他选项卡上看到这个东西,并且它没有用户友好来使用它。

我发现了一个链接,但我不能得到更多关于这个。

link

有哪些做这些事情,给我造成任何功能?

请任何机构帮我找出这个东西。

+0

尝试'时间'和'/ usr/bin/time'。 – 2012-02-27 06:25:13

+0

@KerrekSB但我该如何使用它? – user1089679 2012-02-27 06:30:22

+0

如果你的程序是'prog',把它作为'时间编程'运行' – 2012-02-27 07:40:21

回答

1

请输入man 2 getrusage了解更多信息。

我预计ru_idrss是你需要的内存使用。它应该填入更新版本的Linux内核中。或者你可以使用procps并从/ proc目录获取信息。前和计算后ru_utime的差异会给你的CPU时间

有一个在这个问题的详细信息:How to get memory usage at run time in c++?

0

如果你是挑剔的演出和工作在x86或x64,你可以尝试valgrind和其callgrind工具,以及它更精确(但更难掌握)cachegrind替代。

通过发行版的包管理器安装后,它会是一个简单的问题:

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

注意,您可以使用可视化工具kcachegrind轻松visialize性能数据。我链接到valgrind的维基百科文章,因为它是缓和而且相当完整的。 The official Valgrind website is here

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

1

除了上面的答案,您还可以使用pmap,mmap,oprpfile和,我个人最喜欢的,perf,在linuxtools中找到。希望能帮助到你。

+0

但是我怎么可以给我例子 – user1089679 2012-02-27 17:18:09