gpt4 book ai didi

linux - 在 Linux 上分析程序的速度

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:54 24 4
gpt4 key购买 nike

我有一个程序的几个变体,我想比较它们的性能。两者执行基本相同的任务。

这一切都在 C 语言和内存中完成。另一个调用外部实用程序并执行文件 IO。

我如何可靠地比较它们?

1) 使用“time”获得“CPU 时间”有利于调用 system() 和执行 IO 的第二种变体。即使我将“系统”时间添加到“用户”时间,它仍然不会计算在 wait() 上阻塞的时间。

2) 我不能只为它们计时,因为它们在服务器上运行并且可以随时从 CPU 中退出。对 1000 次实验取平均值是一个软选项,因为我不知道我的服务器是如何使用的 - 它是集群上的虚拟机,有点复杂。

3) 分析器没有帮助,因为它们会让我花时间在代码上,这再次有利于执行 system() 的版本

我需要将这些程序消耗的所有 CPU 时间加起来,包括用户、内核、IO 和子程序递归。

我预计这是一个常见问题,但似乎仍未找到解决方案。

(用 times() 解决 - 见下文。谢谢大家)

最佳答案

如果我理解,在 bash 命令行上键入“time myapplication”并不是您要查找的内容。

如果你想要准确性,你必须使用分析器......你有来源,是吗?

试试像 Oprofile 这样的东西或 Valgrind ,或查看 this以获得更广泛的列表。

如果你没有来源,老实说我不知道​​......

关于linux - 在 Linux 上分析程序的速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/149852/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com