任何人都可以告诉我,当我们在不同的命令中发出以下命令时,将创建多少个jvm实例.
- command 1: c:\java -Xms32m -Xmx512m -Xss254k AccountSalary
- command 2: d:\java -Xms32m -Xmx512m -Xss254k AccountSalary
- command 3: c:\java -Xms32m -Xmx512m -Xss254k AccountSalary
Run Code Online (Sandbox Code Playgroud)
他们是否会使用save jvm heap size或者每个java进程使用不同的堆大小?
每次运行该java
命令时,都会创建一个新的JVM实例.(并且每个JVM实例将是一个独特的过程.)
因此,在您的示例中,JVM实例的数量将为3.
JVM实例不共享堆.每个人都有自己的堆.通过创建多个堆不会节省堆空间.(事实上,您可能通过创建多个JVM来使用更多堆空间...与使用多线程在同一JVM中运行应用程序的3个实例相比.)
堆大小是独立的.它们由各个JVM的命令行选项决定......
对于大多数JVM,JVM实例之间共享的唯一内存是包含JVM代码的只读段,以及(可能)共享本机库.
从历史上看,已经存在JVM,其中编译的Java代码可以在JVM之间共享.但是,它很复杂,而且(AFAIK)当前生成的JVM不支持这一点.
归档时间: |
|
查看次数: |
3401 次 |
最近记录: |