【问题标题】:Java 8 Memory allocationJava 8 内存分配
【发布时间】:2018-07-02 10:23:46
【问题描述】:

假设我有 JDK/JRE 8,我还添加了 JAVA_OPTS= -Xmx8G -Xms1G。

我已经说过没有任何其他参数(java -jar 1.jar;java -jar 2.jar)2 个简单的罐子。所以现在我有两个java进程。

1) 它们是在一个 JVM 中执行(作为两个 java 进程)还是每个进程将在单独的 JVM 中执行?

2) -Xmx8G -Xms1G 堆大小将分别应用于两个已执行的 jar 中的每一个,或者此堆大小对于两个已执行的 jar 来说是通用的?

3) 如果启动一个 jar (java -jar 1.jar),内存分配会怎样 另一个使用 java -jar 2.jar Xmx12G?

附:如果您有任何好的链接,我们会很好。

P.S.S 不要问我在抽什么:)

【问题讨论】:

  • 你试过了吗?
  • 有视觉虚拟机,但现在对我来说不是很清楚
  • 试试ps 或任务管理器。
  • 旁注 - 这是 P.P.S.,不是 P.S.S.
  • 根据ps,每个 jar 在单独的 JVM 中运行。应用于每个 JVM 的 JAVA_OPTS

标签: java jar out-of-memory heap-memory java-memory-model


【解决方案1】:

最好的方法是分析系统中的 JVM 实例。只需打开 JMC(Java Mission Control)。每当您执行任何应用程序时,它都会在那里显示为一个单独的 jvm。例如:如果您运行 jar1 和 jar2,JMC 将显示三个 JVM——jar1、jar2、jmc。然后,您可以在那里使用 MBean Browser 来分析您的所有 jvm。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2018-04-04
    • 2014-03-03
    • 2011-11-05
    • 1970-01-01
    相关资源
    最近更新 更多