答:做过,主要是根据项目特点选择什么样的垃圾收集器
感觉回答怪怪的,所以想问下怎么回答比较好
1
lol0 2019-05-02 23:35:05 +08:00 via Android
不用调优阿,我们广告服务器每天全球加起来发出 2 万亿请求吧, c++阿笨蛋
|
2
p2pCoder 2019-05-02 23:49:02 +08:00 via Android 3
既然已经选择了不同的垃圾收集器,为啥选择,以及各种垃圾收集器的优劣 以及调优点可以说下
性能优化的步骤要熟悉,基准测试,以及监控日志 寻找瓶颈,压测这些关键步骤要熟悉,不要简单的说调优点,否则一看就是背面试题 然后就是工具的使用 jdk 带的各种命令要清楚 ,btrace arthas 这些开源工具要有了解,核心问题都在于定位问题,然后才是优化 监控日志定位瓶颈所在,然后用 btrace.或者 arthas.更细节的调用链 关于 gc,首先就是要打印出 gc 日志,然后能读懂 gc 日志 堆分析 的话,还要分析具体哪些对象 堆内实在不好搞,有些转到堆外会不错,能说出一些堆外应用实例会不错 还有就是最蛋疼的线程池调优,针对 各种类型的应用,有啥调优选择 当然,最好的还是要有真正的经验 如果你没有真正经验的话,一定要把调优的流程说清,基础测试,日志监控,定位瓶颈,压测对比分析这些,其余的 jvm 调优,就死记硬背,看能记住多少 |
3
MrCourtier 2019-05-02 23:58:38 +08:00
@p2pCoder 有相关文章查看?深入理解 jvm 的那个调优是否可以借鉴
|
4
p2pCoder 2019-05-02 23:59:10 +08:00 via Android
@lol0 我们计算广告场景 ctr 预估有个模型服务 qps.维持在 1w 左右,也用的 java,不过 gc 也的确操蛋,调的让人心累,有些也在用堆外
|
5
p2pCoder 2019-05-03 00:04:18 +08:00 via Android 1
@MrCourtier 我最近一两个月都在做性能优化,推荐 java 性能权威指南 ,这本对于性能调优调优很有用,而且是针对于调优场景,不像只讲 jvm 的书,更贴近实践
|
6
chunrong918 OP @p2pCoder 如果我这样子答:
做过,有段时间用户反馈网站变慢,线上查看 gc 日志,发现 GC 时间变长,用 jmap 去查看了一下,定位到具体的代码块,发现没有及时垃圾回收的代码做了缓存,仔细查看代码,去掉了缓存,同时针对业务是 cpu 计算密集型,选择使用 CMS 作为垃圾收集器。 这样子有哪些不妥的地方,大佬指正一下? |
7
wenweihu86 2019-05-05 13:16:15 +08:00
@p2pCoder 什么公司广告系统用 java ?
|
8
p2pCoder 2019-05-05 13:41:11 +08:00
|
9
lol0 2019-05-05 13:53:31 +08:00 via Android
vivo 大佬!
|
10
muzi 2019-05-05 23:28:10 +08:00
广告 SDK 开发的路过
|