首页 arthas生成火焰图优化性能
文章
取消

arthas生成火焰图优化性能

需求

最近碰到一个集合循环,程序执行偏慢的场景,需要进行排查。

代码案例

1
2
3
4
5
6
7
8
    public static void main(String[] args) throws InterruptedException {
        String data = FileUtil.readString("/Users/test/Downloads/测试.json", Charset.defaultCharset());
        JSONObject bigObj = JSONUtil.parseObj(data);
        for (int i = 0; ; i++) {
            String dataStr = JSONUtil.toJsonStr(bigObj);
            log.info("dataStr:{}", dataStr);
        }
    }

arthas处理

1、使用 arthas 的 profiler

profiler start

等待程序执行,执行完之后生成火焰图

profiler stop –format flamegraph

可以看到hutool 的 json 工具耗时是最长的,然后就可以排查业务逻辑慢的具体原因。

经过排查,hutool的json序列化比fastjson慢了很多,后续替换为fastjson

本文由作者按照 CC BY 4.0 进行授权