《架构之美》中关于编写高效Java的几个技巧
2011-05-13 15:51
267 查看
《架构之美》中提到关于Java性能技巧:
1.优化的第一准则:不要优化。优化的第二准则(仅限于专家),还是不要优化。——Michael A Jackson
和所有的性能技巧一样,下面的技巧是指导方针,不是准则。良好设计和清晰编码的代码几乎总是优于“优化的”代码。
技巧1.创建对象不好。过多的对象尤其是短期对象会导致不好的性能,因为大量对象创建引起频繁的年轻带垃圾收集。
技巧2.静态方法,不会动态分配,更容易产生内联。
技巧3.标签集适度紧凑的switch语句比分散的要快:switch使用两种字节码:tableswitch和lookupswitch,后者慢得多。
技巧4.方法越小越好,从设计(内聚性)和JIT两方面考虑都是好的。
技巧5.Exception应该用于异常情况,而不是错误,VM会优化正常的路径。
技巧6.小心使用装饰器模式.额外间接开销大。
技巧7.对类进行instanceof操作比接口的数组搜索快。
技巧8.最低程度的使用同步,把同步的块减到最小,尽量使用volatile和原子引用。这和设计的思想一致。
技巧9.小心外部库,简单而重要的任务认真考虑内置编码实现。
回顾07年关于高效率Java的文章,因为JDK的发展从1.4到1.6,jvm的内部优化有了很多改进和变化,所以有些惯例已经不适用了,有些则可能反而导致性能不升反降。
建议参考《高质量JAVA程序设计》
1.优化的第一准则:不要优化。优化的第二准则(仅限于专家),还是不要优化。——Michael A Jackson
和所有的性能技巧一样,下面的技巧是指导方针,不是准则。良好设计和清晰编码的代码几乎总是优于“优化的”代码。
技巧1.创建对象不好。过多的对象尤其是短期对象会导致不好的性能,因为大量对象创建引起频繁的年轻带垃圾收集。
技巧2.静态方法,不会动态分配,更容易产生内联。
技巧3.标签集适度紧凑的switch语句比分散的要快:switch使用两种字节码:tableswitch和lookupswitch,后者慢得多。
技巧4.方法越小越好,从设计(内聚性)和JIT两方面考虑都是好的。
技巧5.Exception应该用于异常情况,而不是错误,VM会优化正常的路径。
技巧6.小心使用装饰器模式.额外间接开销大。
技巧7.对类进行instanceof操作比接口的数组搜索快。
技巧8.最低程度的使用同步,把同步的块减到最小,尽量使用volatile和原子引用。这和设计的思想一致。
技巧9.小心外部库,简单而重要的任务认真考虑内置编码实现。
回顾07年关于高效率Java的文章,因为JDK的发展从1.4到1.6,jvm的内部优化有了很多改进和变化,所以有些惯例已经不适用了,有些则可能反而导致性能不升反降。
建议参考《高质量JAVA程序设计》
相关文章推荐
- 关于Java:一个使用多个参数编写方法的技巧
- 编写更好的Java单元测试的 7 个技巧
- 关于HTML的几个技巧
- 关于java的几个小知识
- 关于ASP.NET网页编程的几个技巧
- Makefile关于动态库与静态库的编写技巧
- [转载]关于VC工程的几个技巧
- 高效的jQuery代码编写技巧总结
- 关于Git的几个使用技巧
- Java数据库编程中的几个常用技巧(批量更新)
- 关于JAVA聊天室编写的总结
- 高效的jQuery代码编写技巧总结
- 关于局域网中共享的几个小技巧
- 关于Android 添加系统级(java)服务和调用的编写实现说明
- 在 Java 中高效使用锁的技巧--转载
- #java#关于文本框的几个常用设置
- 提高Java性能的几个高效用法
- 在 Java 中高效使用锁的技巧--转载
- Java中几个关于时间的程序:万年历、Zeller公式、显示当前时间
- Java数据库编程中的几个常用技巧