多语言展示
当前在线:1006今日阅读:195今日分享:41

如何设置java运行内存

java有两个参数可以设置运行时堆内存,一个是设置堆内存的初始大小,另一个是设置堆内存的最大可用空间。(1)-Xms设置jvm可用堆内存的初始大小,例如:-Xms81920K,-Xms256m,一般使用后者这种方式。(2)-Xmx设置jvm堆内存的最大可用空间,例如:-Xmx81920K,-Xmx512m,一般使用后者的这种方式。当一个Java程序没有可用的内存空间分配时就会抛出:java.lang.OutOfMemoryError: Java heap space,error,此时就需要通过各种手段去调整,以解决问题,可以优化代码,但最直接的方式莫过于增加jvm的最大的可用内存。本文将通过jdk自带的工具:jmc,动态展示jvm对内存使用状态。
工具/原料
1

jdk

2

jmc.exe

方法/步骤
1

在Windows中D盘下新建个java目录,编写一个小程序,TestString类,里面就写一个sleep方法,让线程沉睡100秒。

2

编译并运行此程序。

3

打开jdk的安装目录,在bin下找到jmc.exe,双击运行。在JVM浏览器一栏,可以看到运行的TestString程序,双击MBean服务器,进入监控页面。

4

在下面有内存模块,Maximum Java Heap:堆内存的最大值。通过右侧加号,可以在memory中找到init,添加到监控项中,Initial Java Heap:堆内存的初始大小。这两个值分别对应了Xmx和Xms

5

在默认情况下Xms=128m,Xmx=1.75G;这个是我电脑默认是Java堆的分配情况

6

接下来我们看一眼在启动TestString时,定义其初始堆内存值和最大堆内存值,会是什么情况?命令:java -Xms64m -Xmx128m TestString等一会,jmc会自动删除上一个TestString程序,重新生成一个TestString程序。

8

这个是使用命令的方式,在eclipse中可以直接把命令:-Xms128m -Xmx256m 写在运行时配置中,比如Java application。

9

此时再去看其内存情况,发现配置生效了。

推荐信息