前言
在高并发下,Java程序的GC问题属于很典型的一类问题,带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」,由于GC期间都存在Stop The World问题,因此很容易导致服务超时,引发性能问题。
我们团队负责的广告系统承接了比较大的C端流量,平峰期间的请求量基本达到了上千QPS,过去也遇到了很多次GC相关的线上问题。
这篇文章,我再分享一个更棘手的Young GC耗时过长的线上案例,同时会整理下YGC相关的知识点,希望让你有所收获。内容分成以下2个部分:
- 从一次YGC耗时过长的案例说起
- YGC的相关知识点总结
正文
我的第一份工作是在一家外企,当时抱着“逃离”上海的想法去了二线城市的分公司,但是管理文化氛围跟总部几乎都是一样的,这份工作经历对我后面的工作不论是做事风格、习惯上还是思考问题的方式方法上都有很大的影响。后面陆续进入国企,民企,再进入初创公司,从公司规模上可以说各种类型的都有过体验。下面从环境因素,平台效应因素等几个角度说说自己的感受。
1. 环境因素
环境对一个人的影响还是很重要的,不论是大家熟知的“近朱者赤近墨者黑”的说法,还是令我们中国人挤破脑袋的“学区房”现象,都说明环境对一个人的成长起着至关重要的作用。
小公司与大公司的环境差异首先体现在人员的素养、水平上。大公司的准入门槛相对高一些,所以人员的素质、水平也相对要高一些,如果你周围牛人比较多的话,跟牛人待久了,你也可能慢慢就步入牛人之列了——“近朱者赤”。而小公司,尤其是初创公司,为了尽快招人干活&#x