代码优化思路


具体接口的响应时间优化:

思路:先定位耗时时间(打log,加监控),再针对性优化代码。

手段:

1. 对串行的逻辑,能并行的尽量开线程并行。(比如一个poi下两种goods,可以并行处理获取)

并行是共享什么资源?CPU资源。

在4核机器的情况下,如果你的逻辑是纯CPU计算,开4线并发就已经达到最高效果。

但是绝大多数情况下,逻辑包含IO(网络调用,磁盘等),这种情况下开多并发不只是为了穷尽CPU资源,更多是并发等待IO返回。所以会开很大的线程池。

2. 数据量大的IO,尽量分块,并行获取。(比如用一个大list批量读缓存,可以分成100个一组,多线程并行读缓存)


整体性能优化:

思路:分析程序的性能瓶颈(分析CPU,IO状况,GC是否正常。分析CPU时间耗费在哪里),针对性优化

手段:

1. netflix火焰图(profile + 转为图像)

http://blog.csdn.net/ligeforrent/article/details/74004359

2. aop打印方法耗时

使用aspectJ,用注解的方式在想研究的方法上切面,around增加耗时记录,人肉观察。

3. jmc

https://caorong.github.io/2016/09/10/tracetools-recent-used/


你可能感兴趣的:(运维,火焰图,java)