建议一百三十一:CyclicBarrier让线程齐步走
建议一百三十二:提升java性能的基本方法
(1)不要在循环条件中计算
(2)尽可能把变量,方法声明为static final类型
(3)缩小变量的作用范围
(4)频繁字符串操作使用StringBuilder或StringBuffer
(5)使用非线性检索
(6)覆写Exception的fillStackTrace方法
如果开发时不需要关注栈信息,则可覆盖该方法
class Myexception extends Exception{
@Override
public Throwable fillInStackTrace(){
return this;
}
}
(7)不建立冗余对象
建议一百三十三:若非必要,不要克隆对象
建议一百三十四:推荐使用“望闻问切”的方式诊断性能
望:观察性能问题的症状
闻:关注项目被动产生的信息,包括项目组的技术能力,文化氛围,群体习惯等
问:技术人员(缔造者)和业务人员(使用者)一起讨论该问题
切:给出定论:问题出在什么地方,该如何处理
建议一百三十五:必须定义性能衡量标准
建议一百三十六:解决首要系统性能问题
建议一百三十七:调整JVM参数以提升性能
(1)调整堆内存大小
(2)调整堆内存内各分区的比例
(3)变更GC的垃圾回收策略
(4)更换JVM
建议一百三十八:性能是一个大“咕咚”
(1)没有慢的系统,只有不满足业务的系统
(2)没有慢的系统,只有架构不良的系统
(3)没有慢的系统,只有懒惰的技术人员
(4)没有慢的系统,只有不愿意投入的系统
建议一百三十九:大胆采用开源工具
再选择开源工具时要遵循一定的原则:普适性原则,唯一性原则,“大树纳凉”原则,精而专原则,高热度原则
建议一百四十:推荐使用Guava扩展工具包
Guava是Google的工具包