Aug22

Velocity 2012 Day three

六月二十七日,是Velocity 2012的第三天。今天早上的会议就更加软,更加吹水了,一上午12个session,只有2个和性能相关,其中一个是DEMO展示,另一个是讲在智能机上web和Native app的差别。我们干脆没去会场,在Hotel好好的睡了一觉。 在旧金山地区罕有出租车,但在这个会议中心,出租车反而变得比较常见。 下午的内容相对昨天含金量也稍低了一些,Mobile的场变成了Velocity Culture,其实就是一些偏软素质方面的session。另外,赞助商的场次也多了很多。 web性能的第一场是Opera、Chrome、Firefox的Demo,我便转战到Velocity Culture大厅。这边是一个金发美女 —— 是Delve Networks的CTO —— 在讲职业成长的内容:Leveling Up – Taking Your Operations and Engineering Role to the Next Level.,演讲风格很有轻松,尤其是美女,所以大家乐得开心。不过内容就比较粗浅了,更像是给职场新人的鼓励和打气。如果你有相关需求,还是去看看《程序员修炼之道 —— 从小工到专家》吧。 回到web性能大厅,是Nicholas Zakas(《High Performance JavaScript》的作者)在讲Javascript timer的性能:JavaScript Timers, Power Consumption, and Performance,研究得真够细的!整个演讲都是在介绍JS语言中的计时器性能。包括setTimeout、CSS的动画在各个平台下的实现原理、效率和耗电量(针对移动设备),以及简单介绍了几项新技术:W3C的web workers草案,IE的setImmediate。对Timer有兴趣的可以看看他的slide。 接着是Etsy的人来讲A Picture Is Worth a Thousand Logs,基本思路是将数据尽量地可视化,举的例子很有冲击力。不过在现在来看,不管是大公司和小公司,把数据从log日志里面具体化成图表已经成为RD的标配了。 后面是一个女顾问讲测试UI性能的工具:5 Essential Tools for UI Performance,都是一些常用的工具,而且会后迟迟没有放出slide,有些让人失望。 最后一个session是JSPerf的人来讲各种Javascript执行的性能,过程很激烈,如果对JS内部一些细节优化点有兴趣,建议看看视频。JSPerf是一个做Javascript性能测试的平台,能够覆盖到各种浏览器,各种平台,并且能做多次测试,做统计平均。 在我看来,很多在本机测试的Javascript执行效果是很不靠谱的,测试的结果会受到当前cpu利用率、杀毒软件、电池还是外接电源等等因素影响,并且每次测试的偏差会很大。当然了,你更不可能测全所有的浏览器。因此JSPerf这个网站的出现倒是能让我们做更靠谱的性能测试。 三天的Velocity就这么结束了,第一次来国外开会,而且是这么经典的会议。简单谈一下自己的感受: 国外的研究通常会做得很细致,总能从一些细节之处挖出能对产品产生影响的点。 […]

trackback Tags: 评论 (2)

Aug21

Velocity 2012 Day Two

6月26日开始就是正经的velocity 2012了,会场里面的人明显比前一天多很多,转场的时候人山人海。美国的胖子真够多的,我经常能在会场或者路上看到超级大吨位的胖子,男女老少都有。 最开始是Steve Souders的吹水和开场。一上午的主题演讲几乎和性能没啥关系,基本上是赞助商和运维的话题。 中间Steve Souders介绍了httparchive.org从2010年10月就开始跟踪网站的性能指标,这样就能看到网站的历史性能状况,或许对我们了解自己的网站和竞争对手的网站有一定帮助。当然,对中国的网站参考意义又会小一些,不过,文件体积这些硬指标还是值得参考的。 中午仍然是不变的自助餐,下午整个大会的“正餐”终于来了。 首先是Google带来的SPDY介绍,这一场略微有点扫兴。主要是介绍了他们自己研发的SPDY技术,里面的优化点很多,包括对连接、加载、前后端运行的优化。唯一也是最重要的不便是,这个技术要求服务端和客户端同时具备相应的支持才能完成性能优化,他们开发了各大web server的mod,但是浏览器只有chrome支持。在国内来说,花这么大的成本,受益却颇小。 接着是LogNormal和Facebook三个人混搭讲RUM for Breakfast – Distilling Insights From the Noise。这个session的入手点很细,这也是老外们比国人钻研的更深入的一个体现,他们主要的思路是从一大堆数据里面,找到和收益(PV、跳出率)存在明确关系的部分,然后有针对性的优化。 对CDN做优化,他们不是用传统的ip库来解决问题,而是通过对没一个用户随机的请求一个anyname.dns.fb.com 的空图片,计算请求时间,来为所有的ip段寻找最优的服务器。 在做数据分析的时候,他们发现很多时候,曲线并不服从正态分布,他们认为是由于数据噪音引起的。他们做了一些简单的过滤,把异常数据去除。 将性能数据和收益数据结合来做分析,他们统计了跳出率和加载、DOM load等时间的关系,并且发明了一个LD50的指标,就是当跳出率大于50%时,这些性能指标的值,这样能更精确地来进行优化。 接下来是Google的人讲Selecting and Deploying Automated Optimization Solutions。这个session内容比较少,就介绍了一个自动做web前端代码优化的思路,以及相应的服务提供商。 他的主要思路是通过在前端服务器之前架一个代理,用户从这个代理请求到的代码是经过自动优化的,主要是优化可以通过机器来自动化的部分: 为不同的浏览器生成不同的代码 图片转成URI、WebP 自动压缩图片,cache 根据用户访问路径预加载 此外,他还提出了一些通过修改原有页面逻辑的方法来做优化的思路,包括根据用户的行为,来对页面的不同部分做优先级判断,然后将代码重组。不知道这块他们具体效果怎么样,很科幻啊。 他们的思路和FIS的相似,只是把我们线下处理放到了线上。好处是能做到更好的实时和动态性,不过这让线上服务的复杂度提高了很多,运维更难了。 下面一个Session是讲CDN优化的:Getting A Grip On CDN Performance: Why And How,前面的一堆数据和中国国情差距比较大,主要是为每个关键国家、州找到最快的CDN,没太细听。后面的测量方式还有点意思: 不要用服务器到服务器的速度来做测量,要用真实用户 不要用Google Analytics来做测量,用Resource Timing API 测量的文件应该是16kB,这是他们统计中占比最大的文件大小 排除那些不靠谱的数据(今天多个session都提到了这一点) CDN和我现在的工作距离比较远,中间跑到隔壁的Using Node.js to […]

trackback Tags: 评论 (2)

Aug12

Velocity 2012 Day One

第一天的内容是tutorials,来参会的人也不多,想来主要是以介绍概念为主。 我主要听的是Web Performance。第一场Understanding and Optimizing Web Performance Metrics,分五部分: 介绍和网络请求相关的基本知识,包括DNS,连接建立,SSL握手时间等; HTML解释过程,包括DOM树的建立,JS和CSS的加载过程; 和渲染相关的度量指标:loading、interactive、DOMContentLoaded,DocumentLoaded 和用户感受时间相关的指标,元素开始渲染时间,可交互时间什么的 听了这一场以后,基本上就对今天的内容失去信心了 —— 果然很tutorial嘛。 第二场是A Web Perf Dashboard: Up & Running in 90 Minutes,主要介绍的是收集性能数据,然后展现成一个dashboard的实践过程。中间简单介绍了Piwik这个分析工具,唯一的优势是能架在自己的服务器上,看功能远远没有GA强大。 上午的会议没有什么让人兴奋的点,中午在会场吃了自助午餐,可是午餐没有咖啡,下午就有点疲劳了。 下午第一场是Dev vs. Prod: Optimizing Your Site Without Making Your Build Process Suck,一个有点冷幽默的小伙子在讲。里面的内容很浅显,主要是靠nginx的几个插件来解决问题,但是提出的核心概念值得借鉴:性能优化不应该让源码和系统构建过程复杂化。 第一场完了后有下午茶,终于有久违的咖啡了。 下午的第二场是关于无线方面的 The 90-Minute Mobile Optimization Life Cycle,前面介绍了一堆关于无线的数据,市场数据,流量数据等,国外的增速明显比中国要快得多;然后是和性能有关的数据,主要是性能对pv,跳出率,转换率的影响,看数据挺惊人的。其实我们也应当加上这部分监控。接着介绍了一堆用于性能分析的工具,教大家如何看瀑布图和数据表格。从DNS开始,一直到页面渲染结束,介绍了一些简单的性能优化规则和方法。 总的来说,第一天没有什么值得圈点的内容。但每个slide都是很用心的总结和归类过的,如果你还没有接触过性能优化,不妨找到里面的slide看一遍,你会对整个性能优化的过程产生全面的初步认识。 我的twitter是 @cnberg ;新浪微博是 @berg ,后面两天的会议总结也会很快发出,请勿错过。

trackback Tags: 评论