前2天,去参加了Velocity Web性能和运维大会,听了不少的讲座

有一些讲座还是不错的,感觉能收获不少东西,像FaceBookYahooTaobao...

也有不少,听了后基本没啥收获,有些是一些理论性的东西,框架性的东西,和实际应用完全不搭边,听了后也没啥感觉

总体感觉:这个会还是不错的,去参加还是挺值得的

下面是我总结的几点,可能对我们有用的东西:

1.  Lvs + KeepAlived做负载均衡,实现F5的功能。DBA那边现在据说是在尝试使用KeepAlived做数据库的故障自动切换

2.  Cache,不光是服务器端的缓存(有效利用新机器的大内存),Client端也可以多Cache一些东西,提高响应速度。Taobao说他们的一些后端Cache命中率能达到98%

3.  多使用YSlowPageSpeed工具做前端性能调优,利用webpagetest.org去测试自己的页面

4.  BigPipe,可以尝试下FaceBook的这个技术,将大页面划分为一个一个的pagelet,然后并行输出和render

5.  合并一些http请求,尽量减少请求数量,mail中需要做很多改进,像udisk,mobile,passport,vote...

6.  前端js的打包,拆分策略,并不是包越少越好,需要根据各js的用途,还有log信息去分析,如何合并js,使用户尽快进到欢迎页面...

7.  尽量使用无阻塞的js,让页面元素去并行的加载(可以结合页面的WaterFall图去改进),尽快将部分页面呈现给用户

8.  严格控制cookie数量,减小cookie的大小,可以尝试服务器端的session去代替一些cookie。也许可以借鉴下FaceBook经验,写一个小程序自动清除不认识的cookie...

9.  Prefetch预加载策略,并不是所有人,在任何时间段都需要预加载,要根据用户的活跃情况,服务器的负载,用户的终端(比如通过3G上网卡上网)等来确定是否预加载。在mail中,是否所有用户都需要预加载第二页的列表呢?也许只有第一页中有未显示完的未读邮件,才需要去preload第二页...

10.前端优化是一个长期的工作,需要坚持,并不断的改进提高...

最后还有很重要的一点,就是Innovation(创新)

像FaceBook提出的Quickling, BigPipe等一些理论

听了人家的讲解后,发现也挺简单的

但最关键的问题是它们有效的组合了现有的技术

创造性的提出想法,并实施,最终提高Web的性能,这就是创新...