常用的优化组件
- 缓冲Buffer
原理:采用漏斗 解释得很形象
应用:IO的BufferedWriter等 NIO的Buffer类族都是典型的代表 - 缓存(Cache)
原理:缓存的主要作用就是暂存数据处理结果,并提供下次访问使用。
应用:内存的一级Cache/二级Cache/三级Cache。
专门的Cache解决方案:Memcache、Redis等 - 对象复用——“池”
原理:如果一个类别频繁请求使用,那么不必每次都生成一个实例,可以将这个类的一些实例保存在一个“池”中,待需要使用的时候直接从池中获取。
应用:线程池和数据库连接池。省去了频繁创建和销毁的开销。
常用的优化方法
- 并行代替串行
- 负载均衡
原理:多台计算机协同工作,将系统负载尽可能均匀地分配到各个计算机节点上。
应用:硬件级负载均衡F5,软件负载均衡LVS/nginx、Apache,Tomcat集群。
扩展:Terracotta。分布式缓存的框架。使用Terracotta可以实现Tomcat的Session共享。 - 时间换空间
由于系统资源是有限的,为了在有限的资源内,达成某些特定的性能目标,就需要使用时间换空间或空间换时间的方法。
应用:a/b变量交换
a=a+b;
b=a-b;
a=a-b; - 空间换时间
典型应用:缓存。