gpt4 book ai didi

linux - 如何确定 Linux 上多进程的 JVM 内存占用

转载 作者:IT王子 更新时间:2023-10-29 00:46:35 25 4
gpt4 key购买 nike

我正在尝试量化执行相同进程的多线程与多进程的小型 Java 应用程序的内存占用差异。

我所有的测试都是在 Linux 下进行的。

运行多线程时,确定每个线程的总体占用空间和额外开销相对容易。根据 pmap,运行单线程进程时,JVM 占用空间大(200-300M 虚拟空间)。如果我运行同一个应用程序的多个副本,我会看到内存占用 x N,并且没有任何 Java 代码在进程之间共享。

我被告知,由于 Java 代码是字节码,不可执行,因此它不会像 C 二进制文件那样在进程之间共享代码。然而,后来我得知它可能会使用 Copy-On-Write 技术来实现同样的事情。如果我使用 pmap,它只会告诉我该进程的足迹,而不会指示可以与另一个进程共享多少。

所以问题是,我如何确定进程之间通过写时复制共享了多少数据?

最佳答案

在正确配置的非嵌入式 Linux 系统上,您为什么要关心内存占用?

如果您有答案,会有什么不同?

只有当一个进程是另一个进程的真正祖先时,数据才会在进程之间共享。
还要看java程序的内存布局和页面内的数据。所有这些都可能因版本而异。

关于linux - 如何确定 Linux 上多进程的 JVM 内存占用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1328989/

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