Java性能调优(四)

设计调优

常用优化组件和方法

  1. 对象复用——“池”(数据库连接池)
  2. 并行替代串行、异步替代同步
  3. 负载均衡
  4. 时间换空间
  5. 空间换时间
  6. 缓存(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对象,实现了延迟加载,通过内部类实现又对多线程友好。

享元模式

 

它的核心思想是:如果一个系统中存在多个相同的对象,那么只需要共享一份对象的拷贝,而不必为每一次使用而创建对象。

观察者模式

在软件系统中,当一个对象的行为依赖于另一个对象的状态时,若不使用观察者模式,则只能在另一个线程中不停监听对象所依赖的状态,这将是系统的性能产生额外的负担。

 

posted @ 2017-04-24 10:28  leafsunday  阅读(126)  评论(0编辑  收藏  举报