返回信息流在技术面试之中经常会被问到有关Java内存管理和GC方面的内容,请问在实际开发之中,什么情况下会很关注Java程序的内存使用效率或者GC情况?另外,程序在内存方面的效率低下可以不可以通过改善硬件条件来解决,比如添加更多的内存条?如果可以,是不是说,就没有必要再进行内存调优了?
这是一条镜像帖。来源:北邮人论坛 / java / #57100同步于 2017/8/16
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
有关Java程序的内存调优
gxlihao
2017/8/16镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
程序员少不了要和内存打交道的。拿java后端开发来说,实际遇到的很多bug都是与内存相关的。程序在运行过程中一旦OOM了,整个程序就挂掉。这个时候你不得不重新启动程序,平台的稳定性就会受到影响。加内存只能延缓OOM的时间,并不能从根本上解决问题。所以,你不得不去分析OOM的原因,是什么把内存撑爆了,为什么GC没有及时将这块内存回收,是程序有bug还是jvm参数设置存在问题?因为这种情况太常见了,所以面试官才会问这些问题~
【 在 gxlihao 的大作中提到: 】
: 在技术面试之中经常会被问到有关Java内存管理和GC方面的内容,请问在实际开发之中,什么情况下会很关注Java程序的内存使用效率或者GC情况?另外,程序在内存方面的效率低下可以不可以通过改善硬件条件来解决,比如添加更多的内存条?如果可以,是不是说,就没有必要再进行内存调优了?
像你提到的内存调优技术,这里是指在合适的位置显示触发内存回收吧,以防止OOM让程序暂停的情况?另外,有关内存调优有什么技术书籍或者文章介绍么?
【 在 guanzhe 的大作中提到: 】
: 程序员少不了要和内存打交道的。拿java后端开发来说,实际遇到的很多bug都是与内存相关的。程序在运行过程中一旦OOM了,整个程序就挂掉。这个时候你不得不重新启动程序,平台的稳定性就会受到影响。加内存只能延缓OOM的时间,并不能从根本上解决问题。所以,你不得不去分析OOM的原因,是什么把内存撑爆了,为什么GC没有及时将这块内存回收,是程序有bug还是jvm参数设置存在问题?因为这种情况太常见了,所以面试官才会问这些问题~
oom很多时候是错误的代码或者bug引发的,需要了解jvm去定位分析
加大内存条,可以解决内存不够的问题,那么GC引发的stop-the-world该怎么办
加大内存导致stop-the-world时间变长怎么办
很多问题在特定场景会暴露出来
深入理解Java虚拟机。网上也有很多博客
【 在 gxlihao 的大作中提到: 】
: 像你提到的内存调优技术,这里是指在合适的位置显示触发内存回收吧,以防止OOM让程序暂停的情况?另外,有关内存调优有什么技术书籍或者文章介绍么?
: