「jvm」Tomcat中JVM内存溢出及合理配置( 四 )
4. 频繁实例化对象 , Release对象 此时尽量保存并重用对象 , 例如使用StringBuffer()和String() 。
如果你发现每次GC后 , Heap的剩余空间会是总空间的50% , 这表示你的Heap处于健康状态许多Server端的Java程序每次GC后最好能有65%的剩余空间 。
经验之谈:
1.Server端JVM最好将-Xms和-Xmx设为相同值 。 为了优化GC , 最好让-Xmn值约等于-Xmx的1/3 。
2.一个GUI程序最好是每10到20秒间运行一次GC , 每次在半秒之内完成 。
注意:
1.增加Heap的大小虽然会降低GC的频率 , 但也增加了每次GC的时间 。 并且GC运行时 , 所有的用户线程将暂停 , 也就是GC期间 , Java应用程序不做任何工作 。
2.Heap大小并不决定进程的内存使用量 。 进程的内存使用量要大于-Xmx定义的值 , 因为Java为其他任务分配内存 , 例如每个线程的Stack等 。
————————————————
由于平台限制 , 有对以上资料感兴趣的读者朋友 , 小编这里有更详尽的资料 。 对Java、jvm、面试 , 感兴趣的可以私信小编“资料”获取 。
- Java:Java JVM常见面试题及答案:类加载器篇
- 『Java』Java JVM常见面试题:JVM调优案例
- 「jvm」JVM面试题扩展:Java代码在JVM中的执行流程
- 「湖州」阿里p8必会知识点:微服务+Tomcat+NGINX+MySQL+Redis
- 『程序员BUG』真实有效),SpringBoot项目优化和Jvm调优(亲测