Linux和Windows之间的Java内存使用差异

时间:2010-01-29 18:43:45

标签: java memory-management

当在Windows和Linux(Debian)下运行相同的java进程(jar)时,Linux进程使用了​​更多(12MB对36 MB),就在启动时。即使尝试使用-Xmx / Xms / etc限制堆大小,它也保持不变。我尝试的任何东西似乎都没有帮助,这个过程总是需要36 MB。是什么解释了Linux和Windows之间的这种差异?如何减少内存使用?

编辑: 我用windows任务管理器和Linux top命令测量内存。 JVM是相同的,它们都是32位系统。

3 个答案:

答案 0 :(得分:2)

我建议使用VisualVM之类的探查器来更详细地了解正在发生的事情。

答案 1 :(得分:0)

我要问的一个问题是帮助我更好地理解问题:

我的Java应用程序的内存配置文件在两个平台上看起来有很大不同吗?您可以通过运行-loggc并在像HPjmeter这样的gc可视化工具中查看输出来回答这个问题。您应该尝试查看具有统计上显着数据量的样本集,可能是1000或10000 gc图。如果答案是否定的,那么我很想将您看到的差异归因于启动时的JVM堆分配要求。正如'nos'指出的那样,确定差异可能是出了名的难度。在Linux上指定-Xmx值时,内存利用率是否超过了Xmx值?

答案 2 :(得分:0)

它可能也在测量共享内存