谈谈java虚拟机中的参数。

来源:互联网 发布:邢台网络优化招聘 编辑:程序博客网 时间:2024/06/16 16:11




1.最简单的一个GC参数是:-XX:+PrintGC(使用这个参数启动虚拟机后,只要遇到这个GC,就会打印日志)

2.-XX:+PrintReferenceGC(用来跟踪系统内的(softReference)软引用,(weadReference)弱引用,(phantomReference)虚引用,显示引用过程)

3.使用参数-XX:+TraceClassUnloading和参数-XX;+TraceClassLoading执行代码,跟踪类的加载和卸载过程。

4.使用参数-XX:+PrintVMOptions可以在程序运行时,打印虚拟机接收到的命令行显式参数。

5.参数-XX:+PrintCommandLineFlags可以打印传递给虚拟机的显示和隐式参数,隐式参数未必是通过命令行直接给出的,它可能是由虚拟机启动时自行设置的。

6.使用-XX:+PrintFlagsFinal打印所有的系统参数的值。

7.-Xmx32m(系统最大可用堆空间为32m)

8.参数-Xmn可以用于设置新生代的大小,设置一个较大的新生代会减小老年代的大小,这个参数对系统性能以及GC行为有很大的影响。新生代的大小一般设置为整个堆空间的1/31/4左右。

9.参数-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例关系如:-XX:SurvivorRatio=eden/from=eden/to

10.-XX:NewRatio=老年代/新生代

11.直接内存配置时,最大可用直接内存可以使用参数-XX:MaxDirectMemorySize设置,如不设置,默认值为最大堆空间,即-Xmx。当直接内存使用量打到-XX:MaxDirectMexmorySize时就会触发垃圾回收,如果垃圾回收不能有效释放足够空间,直接内存溢出依然会引起系统的OOM

12.-client,-server 
这两个参数用于设置虚拟机使用何种运行模式,client 模式启动比较快,但运行时性能和
内存管理效率不如 server 模式,通常用于客户端应用程序。相反,server 模式启动比 client
慢,但可获得更高的运行性能。 

13.直接内存读写速度快但是在内存申请方面没有优势,堆内存读写速度慢与直接内存但是在内存申请方面强。

0 0