笔者调优之前先用jmap -heap PID指令查看了一下整个应用程序中堆内存的使用情况,发现默认的堆内存大小太小了,只有120M,而笔者的应用经常要进行文件上传,所以大对象比较多而且这些大对象几乎都是临时对象用完后就需要销毁的对象,所以需要将年轻代(新生代)调整的大一些,然后在百度查出了这个配置-XX:NewSize,使用的时候就报错了。如下图:
笔者在BUG1没修复之前,尝试了一下直接调整年轻代和老年代的比例来扩大年轻代的大小,但没想到还是出BUG了,笔者原本是想使用小数表示比例的,因为原来-XX:NewRatio=4表示的是年轻代和老年代的大小比是1:4,那改成0.5后两者的比例应该是2:1。可实际上这样写根本无法生效,甚至JVM都无法创建成功,如下图
由于笔者之前启动了一个应用实例已经使用了一个端口号7002,所以之后的端口为了不和之前的冲突,所以使用了新的端口号7003,但是配置这个端口参数的时候出问题了,如下图:
笔者亲身尝试,只要将JVM参数放在java和XXXX.jar之间,且该参数在当前JDK版本上是有效参数,那么这些参数就能生效(无论你使用还是没有使用-server标识参数)。感觉上-jar指令和这些JVM参数是同一个等级的参数,所以JVM参数可以和-jar参数混合使用,不知道笔者理解的对不对,还希望各位看官大佬指点指点。
因篇幅问题不能全部显示,请点此查看更多更全内容