gpt4 book ai didi

java - 监控 RAM 占用的工具

转载 作者:行者123 更新时间:2023-12-03 20:10:23 25 4
gpt4 key购买 nike

我写了一个应用程序,需要与另一个做同样工作的应用程序进行比较。我的是 OCaml,而另一个是 Java。

我想在程序上运行两次,并在这些执行所耗时内监视 RAM 使用情况。这两个程序都是内存和 CPU 密集型的,所以我有足够的数据来比较它们,但我不知道怎么做。

我知道对用不同语言编写的应用程序进行基准测试并没有太大意义,但是是否有一种工具可以在一段时间内简单地监视程序的 RAM 使用情况,可能会提供数据集或图表作为结果?

编辑:理想的操作系统是 Mac OS X 或只是 unix

最佳答案

我使用与 ygrek 相当的解决方案。
只要您使用 Unix,它就实现语言而言是非常通用的。
一个小问题是命令 topps两者都可以用于此目的在 BSD Unix(Mac OS X 派生自)和 Linux 上的工作方式不同。我猜他的命令行是针对 Linux 的。

对于 Mac OS X,我使用:

top -s 10 -l 10000 | grep <PID or process name>

对于 Linux:
top -d 10 -n 10000 | grep <PID or process name>

10 是以秒为单位的采样周期。

如果你想从 OCaml 的 GC 中获取你的信息,你可以使用 OCaml's GC module ,但这不能直接与 Java 程序的行为相提并论。

编辑添加:在涉及 GC 的情况下,内存开销和 CPU 时间开销之间存在权衡。 GC 可以更加努力地使死 block 更快可用,从而降低内存消耗。如果您发现这使得比较您的两个程序变得困难,您可以调整 OCaml 的 GC 以使其使用与 Java GC 相同的权衡。这记录在 GC 模块中。我希望 Java 也允许调整此设置。

关于java - 监控 RAM 占用的工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3722233/

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