Java性能调优
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java性能调优相关的知识,希望对你有一定的参考价值。
设计调优
常用优化组件和方法
- 对象复用——“池”(数据库连接池)
- 并行替代串行、异步替代同步
- 负载均衡
- 时间换空间
- 空间换时间
- 缓存(EhCache、Memcached、Redis)
- Memcached
多线程,非阻塞IO复用的网络模型。
基本只支持简单的key-value存储
提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题
……
- Redis
单线程的IO复用模型
除key/value之外,还支持list,set,zset,hash等众多数据结构
支持事务
支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用
……
善用设计模式
单例模式
public class Singleton { private Singleton(){}; private static class SingletonHolder{ private static Singleton instance = new Singleton(); } public static Singleton getInstance(){ return SingletonHolder.instance; } }
调用方法getInstance才会去实例会instance对象,实现了延迟加载,通过内部类实现又对多线程友好。
享元模式
它的核心思想是:如果一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用而创建对象。
观察者模式
在软件系统中,当一个对象的行为依赖于另一个对象的状态时,若不使用观察者模式,则只能在另一个线程中不停监听对象所依赖的状态,这将是系统的性能产生额外的负担。
以上是关于Java性能调优的主要内容,如果未能解决你的问题,请参考以下文章
14.VisualVM使用详解15.VisualVM堆查看器使用的内存不足19.class文件--文件结构--魔数20.文件结构--常量池21.文件结构访问标志(2个字节)22.类加载机制概(代码片段