Velocity会议的一点小结
前2天,去参加了Velocity Web性能和运维大会,听了不少的讲座
有一些讲座还是不错的,感觉能收获不少东西,像FaceBook,Yahoo,Taobao...
也有不少,听了后基本没啥收获,有些是一些理论性的东西,框架性的东西,和实际应用完全不搭边,听了后也没啥感觉
总体感觉:这个会还是不错的,去参加还是挺值得的
下面是我总结的几点,可能对我们有用的东西:
1. Lvs + KeepAlived做负载均衡,实现F5的功能。DBA那边现在据说是在尝试使用KeepAlived做数据库的故障自动切换
2. Cache,不光是服务器端的缓存(有效利用新机器的大内存),Client端也可以多Cache一些东西,提高响应速度。Taobao说他们的一些后端Cache命中率能达到98%
3. 多使用YSlow和PageSpeed工具做前端性能调优,利用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的性能,这就是创新...