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程序。
7、重新生成后,再次观察初始大小和最大值Xms=64m,Xmx=114m左右,虽然不等于128,但是很接近了,可能有些其他的占用吧。
8、这个是使用命令的方式,在eclipse中可以直接把命令:-Xms128m -Xmx256m 写在运行时配置中,比如Java application。
9、此时再去看其内存情况,发现配置生效了。