1、为什么需要优化性能?
系统性能优化对每个系统都很重要,尤其是对大型门户网站非常重要,一般做系统优化的人水平非常高,当然薪水也是,一般访问量大于10万就很有必要优化。
为什么要进行性能优化,比如一个十万访问量的网站,查看某种商品时,会同时建立十万个数据库链接,每个数据的最大链接(socket)一般为2000,那么其他用户就会处于等待的状态,在某一时间内1万人会跟数据库发生一万次交互,那么有8000个等待状态,假设等待超时时间为30秒。处理的链接为5000,那么还剩下3000个处理不了,那么结果是有2000个用户会很快就可以到达页面,5000个访问页面比较慢,3000个提示超时/服务器出现例外。
2、性能优化的解决方案
一、 页面静态化(在数据添加或修改时生成页面模板)(只能处理不经常改变的网页,使用模板技术(velocity[9-10]/Freemarket[5-6])),将需要访问数据库的页面生成为静态页面,用户访问到得都是这个静态页面,那么一万人访问时与数据库交互的次数为0
二、缓存技术,缓存主要分为两种缓存
1、页面缓存(view层):缺点。不能做到实时更新,优点是比二级缓存的性能更高
2二级缓存(model层/业务层):一般缓存的是domain对象
什么时候该使用页面缓存什么时候该使用二级缓存?
页面缓存:在允许在一段时间内不改变已经修改的内容时可以使用页面缓存,可以在修改时清除缓存,但是这样也不算是实时更新
二级缓存:必要要实时更新的数据,比如订单,后态修改了状态前台需要实时更新
三、数据源 连接池放一些连接对象
如果不适用连接池的话每次都要跟数据库建立连接 socket(client)----socket(数据库),这样不但耗时,还会对数据库造成压力
四、SSI技术(使用JSP页面包含也能使用,性能稍差) 有一定的作用,不是很明显