job分析
这个job,是从kafka读取海量json格式的数据,依次反序列化 + transform + 写存储
主要开销在:
- 反序列化
- transform时遍历json每个元素的开销
- io耗时
- jvm gc耗时
递归和循环
- 同样的逻辑,优先使用循环,性能更好。
- 递归带来的效率问题主要是函数调用带来的额外开销(函数的入栈出栈),以及栈容量的限制(次数太多可能会stack overflow)
换用其他的垃圾回收器及其配置
- JDK15生产可用的ZGC
- JDK11 + G1GC : 全部都是yongGC,每秒钟YoungGC 耗时约170ms,
- JDK17 + ZGC: ZGC cycles 900ms+, ZGC Pauses Time 30+微秒
- 最后结果,ZGC并没有展现出明显优势