寻找性能瓶颈:
CPU
文件IO
网络IO
内存消耗分析
资源消耗不多,程序执行慢:
锁竞争激烈
未充分使用硬件资源
数据量增长
程序为CPU调优:
在for循环里加 thread.sleep(1000),让执行完一次循环之后稍作停留
程序为IO调优:
异步写文件,比如异步写Log
批量读写
限流
限制文件大小
程序为网络IO调优:
主要原因是同时发送或接收的包太多,调优方法主要是限流
程序为内存调优:
释放不必要的内存
使用对象缓存池
采用合理的缓存失效算法
锁竞争激烈调优:
使用并发包中的类
使用Treriber算法
使用Michael-Scott非阻塞队列算法
尽可能少用锁,降低锁的粒度,分解锁,分段锁