apache/dubbo

JVMUtil performance improvement

Open

#13,327 建立於 2023年11月7日

在 GitHub 查看
 (1 留言) (0 反應) (0 負責人)Java (26,453 fork)batch import
component/sdkhelp wantedtype/enhancement

倉庫指標

Star
 (41,524 star)
PR 合併指標
 (平均合併 7天 14小時) (30 天內合併 20 個 PR)

描述

https://github.com/apache/dubbo/blob/3.0/dubbo-common/src/main/java/org/apache/dubbo/common/utils/JVMUtil.java

JVMUtil. jstack方法调用整体使用OutputStream作为输出可提升性能,而内部JVMUtil.getThreadDumpString使用String长字符串拼接反而降低了性能。 建议修改内部JVMUtil.getThreadDumpString方法同样为流式处理,减少字符串拼接的性能开销

同时,getThreadDumpString方法内部,可能还考虑性能影响,增加了栈深度控制(默认32)。 这个深度控制、对性能的提升,可能没有流式处理改造能带来的性能提升高。建议应先修改流式处理以提升性能。是否可经测试评估性能影响,取消栈深度控制。以便dubbo的threaddump能够使用在各类Thread分析工具中(如flamegraph.pl等)。

貢獻者指南