笔记:Java 性能优化权威指南 第6章 Java 应用性能分析技巧

一、性能优化的类型

1、使用更高效的算法

2、减少锁竞争

3、为算法生成更有效率的代码


二、CPU的使用

用BufferedOutputStream 替代直接的 FileOutputStream

利用缓冲、NIO改善磁盘与网络的IO瓶颈。  


三、锁竞争

利用ConcurrentHashMap 替代 Hashtable,java.util.concurrent.包中的类替代旧的同步类

利用原子类的CompareAndSet 操作替代旧的 synchronized 块,因为它是由专用的CPU指令完成的。 

利用ThreadLocal ,不为每个线程生成一个对象。


四、volatile 的使用

volatile很耗资源,不可滥用。


五、调整数据结构的大小

为StringBuffer、StringBuilder 指定初始容量,避免容量调整时候要将数据复制到新数组、废弃老数组。

为List、Set、Map指定初始容量,避免容量调整时候要将数据复制到新数组、废弃老数组。


六、增加并行性

使用多线程增加并行性。使用线程池ExecutorService复用线程。


七、过高的CPU使用率


八、其他有用的分析提示