链接前端velocity (直接复制别人分享)

http://ju.outofmemory.cn/entry/49389

 

有幸再次参加velocity,每次都会遇到很多不错的人,聊聊同行业的发展实在不错。希望明年可以在velocity上分享一些我们团队实践的干货。因为这次会议PPT都已经输出,很多图标和截图我这里就不做了,只把自己的笔记分享给大家,希望大家多多交流和实践。

简单通用的性能技巧

(OmniTI的老外)

1、网络上主要的问题归咎于latency

2、除了TCP的握手,其他的hello包仍很多,比如超过4k的内容。JS,CSS等(这是pipelining和SPDY的节奏?)

3、page speed: 新的尝试 https://github.com/linkedin/ats_pagespeed

4、首先考虑优化setsockopt() TCP_INIT_CWND controls in Linux (然后考虑广告omniTI,吐槽:每年开场打广告的习惯是改不了了)

PPT:http://velocity.oreilly.com.cn/2013/ppts/simple_universal_performance_tricks.pdf

印象笔记在中国

(肖贺)

1、因为用户的数据是独立的,所以采用用户数据分片的方式存储。一个服务器上只接入若干用户。然后用户的笔记内容可以通过扩容的方式进行存储。(这里的设计思路就很简单明了,当然在多重容灾方面照即通的方式就差远了)

2、Note storage使用java系,tomcat+stripes+lucence

3、使用DRBD同步,没用HA和master-slave(主要是因为简单)

PPT:http://velocity.oreilly.com.cn/2013/ppts/evernote_in_china.pdf

HTML5 Rocks

(google doodle团队)

1、animation-sprited image (png) 传统方式,图片重复较多

2、canvas-based sprite animation

3、烟雾等,通过自研粒子系统进行随机生成。

4、google.com/doodle 很多细节的实现是对外开放的

5、整体上是对H5和CSS3布道+现场演示

Chromium resourcesscheduling

(陈智昌@google)

1、Chrome的工程师,主要是宣讲Chrome在网络优化、资源加载方面的一些优化细节;以及对开发者的一些建议。

2、浏览器在first paint之前等待加载head里的CSS,以防止FOUC(同时CSS后的JS会阻塞并行渲染和子资源,所以头部东西一定要简洁)

3、Chrome解析器会做一些预判逻辑以提升解析速度;

4、SPDY&HTTP 2.0 again 以及基本的资源加载策略HTML>CSS>JS>IMG;

PPT:http://velocity.oreilly.com.cn/2013/ppts/chromium_resource_scheduling.pdf

淘宝移动端性能优化

(曹仁@taobao)

1、移动端加载时间占比

DNS

27%

Trans

23%

2、App-cache存在资源更新的问题,保持manifest简洁,只缓存模版文件;其他文件通过local storage方式来缓存。(ajax+cors方式来获取文件内容,然后存储在本地)

3、iOS下safari可以设置禁用localstorage,同时5.1后可以强制清除。

4、google推出新的图片格式webp,可以减少30%(qzone也在使用了)

5、最佳实践: 内联css基本骨架,然后js load更多内容

4、定制子应用的方式,将流程模块化处理。(h5的border是2px ? )

5、Mix:github/mixteam/

6、图片清晰度问题:

45%的手机用户,会在手机上收藏,然后在PC上成交。

Viewport : initail-scale=0.5,maximum-scale=0.5.

借住less将css函数化,方便适应各种屏幕

字体容器布局图片放大一倍(占流量和内容)

–font-size:rem

–line-height:100%

7、心得:chrome调试,很多问题是css引起的,没有100%兼容,

PPT:http://velocity.oreilly.com.cn/2013/ppts/performance_optimizaition_of_mobile_web_page_in_taobao.pdf

前端javascript研发和维护

(omniIT)

(吐槽:主讲是自豪的生成自己写过1MB代码的汉子“We deploy over 1 MB of Javascript“,主要将了一些Common Sense的东西,但是我还是细心的写了下笔记)

1、基本的文件合并,文件位置,文件压缩(gzip)

2、choices(framework1 vs framework b? tech1 vs tech 2?)

3、不在浏览器侧build页面,server更快;

4、start with structure 、namespace、注释

5、使用常用设计模式,按场景需要(观察者和工厂)。 function是最基本的一个block。

6、init function ,在页面底部。

7、session storage 和 localstorage的区别

PPT:http://velocity.oreilly.com.cn/2013/ppts/developing_maintaining_large_JS_apps.pdf

Qzone touch实践

(yunishi@tencent)

1、多普勒测速–facebook 2011,velocity(和浏览器新的API差别小于10%,传统方式也可以达到我们的目的)

2、webp 国内已经有40-50%的浏览器的支持。

3、移动端的pipelining对开发透明,服务端配置支持(PS:重点对多请求有效,可以在CDN实现)

4、manifest更新机制:时延问题。

5、svn钩子来更新配置文件,以保证combo文件(其实也可以用watch工具)

6、nodejs直出首屏内容(前端公用JS模版)、nodejs渲染模版的时间(10k)耗时几乎可以忽略

7、在qzhttp做gzip压缩的时候,生成内容etag,性能开销很小。

8、拍照压缩上传,通过canvas将本地大尺寸图片渲染到尺寸更小的canvas,然后小图的base64字符串用来本地预览和上传。

9、iOS大于2m会被抽样压缩变形。解决方案是通过判断抽样后,采用贴瓷砖的方式。 Github/stomita/ios-imagefile-megapixel

10、android平台canvas.toDataURL()输出png,ios输出jpg且可以调整压缩质量。 Android: jpegencoder.

11、jpegmeta:判断拍照时候的旋转位

12、对特性实现,使用phonegap模式进行封装。

13、android webview.loadUrl会隐藏用户输入键盘、/ iOS不能多次调用window.location=phonegap://xxx

14、 mWebView.addJavascriptInterface(JAVA_OBJ,”OBJECT_NAME_IN_JS”), js调用oc,oc定时到js环境通过js接口getCommonds获取所需的oc函数队列。

15、对开源的态度:和聪明的人一起工作;持续跟进,追逐技术红利。和作者共鸣。

PPT:http://velocity.oreilly.com.cn/2013/ppts/web_app_performance_optimization_of_qzone_touch.pdf

携程客户端网站性能及用户行为数据采集

1、Zabbix(server-side信息采集)

2、Gomez(pseudo client)–类似webpagetest

3、Google analytics (real Client)

4、监控思路基本都是市面上常见的这里我就不赘述,大家看PPT

PPT:http://velocity.oreilly.com.cn/2013/ppts/performance_and_user_behavior_data_collection.pdf

Baidu 贴吧移动性能优化

(雷志兴@baidu)

1、概念类:重点优化那些性能差的用户(这个henry也比较赞同)

2、模块/组件化(fis的逻辑,通过module的引入和important参数–php处理模块优先逻辑)

3、和我们的处理差不多,首页尽量减少http请求,内联等方式。

4、框架同时支持同步和异步加载模块,对开发者透明

5、减少渲染: 首屏以外滚动渲染,setTimeout分片,避免前端模版渲染(gz后差别不大),通过陀螺仪检测?

6、减少资源消耗:DOM清理,缓存数据而非DOM,拒绝iScroll,CSS3d;减少CSS比JS重要;内存比CPU重要

7、动态CDN 提升10-20%

8、cache 命中,因为命中率低,baidu也没这么做;

PPT:http://velocity.oreilly.com.cn/2013/ppts/performance_optimization_of_tieba_in_baidu.pdf

在预处理时代的css性能

(吐槽:名字很大气。其实来介绍sass和oocss的,sandy同学化来说,感觉还没michel讲的给力。。)

1、Trulia project ?  http://trulia.github.io/

2、Real User Measuerments

3、问题:如何判断unused css ?

4、CSS中button重复性?

5、sass准则: 不要超过3层

6、oocss: github.com

16毫秒的优化

(zishunchen@tencent)

这个不赘述,zishun在公司内开过课,满满的干货,没看过的同学抓紧吧。

PPT:http://velocity.oreilly.com.cn/2013/ppts/16_ms_optimization–web_front-end_performance_optimization.pdf

 

更多0
 
posted @ 2015-03-29 21:54  xiezhenzhong  阅读(247)  评论(0编辑  收藏  举报