java

导航

java入门教程:数据类型_JVM参数调优实例

来源 :中华考试网 2016-05-07

JVM 参数调优实例

  由于 Java 字节码是运行在 JVM 虚拟机上的,同样的字节码使用不同的 JVM 虚拟机参数运行,其性能表现可能各不一样。为了能使系统性能最优,就需要选择使用合适的 JVM 参数运行 Java 应用程序。

  设置最大堆内存

  JVM 内存结构分配对 Java 应用程序的性能有较大的影响。

  Java 应用程序可以使用的最大堆可以用-Xmx 参数指定。最大堆指的是新生代和老生代的大小之和的最大值,它是 Java 应用程序的堆上限。清单 9 所示代码是在堆上分配空间直到内存溢出。-Xmx 参数的大小不同,将直接决定程序能够走过几个循环,本例配置为-Xmx5M,设置最大堆上限为 5MB。

  清单 9 .Java 堆分配空间

import java.util.Vector;

public class maxHeapTest {

public static void main(String[] args){

Vector v = new Vector();

for(int i=0;i<=10;i++){

byte[] b = new byte[1024*1024];

v.add(b);

System.out.println(i+"M is allocated");

}

System.out.println("Max memory:"+Runtime.getRuntime().maxMemory());

}

}

  清单 10. 运行输出

0M is allocated

1M is allocated

2M is allocated

3M is allocated

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

at maxHeapTest.main(maxHeapTest.java:8)

  此时表明在完成 4MB 数据分配后系统空闲的堆内存大小已经不足 1MB 了。

分享到

相关资讯