网站技术分析报告之——开心网 - 编程随谈 - 三路友社论坛 娱乐交友社区论坛 - SNS
返回列表 回复 发帖

网站技术分析报告之——开心网

一直在研究互联网技术,经常访问这样那样的网站,突发奇想,为什么我们不去看看这些网站的技术架构是怎么样的呢?研究一下源代码?于是便有了这个系列,首先找谁呢?还是找山寨版的开心网开刀吧,这个开心网,不是那个开心网,呵呵。
  坦白说,我不太想注册,也不想研究太多太多,一般来说,一个网站最重要的是首页,Ok,那我们就从首页开始吧。
  本系列文章仅仅是个人研究发布,仅供参考。
  分析工具:各种浏览器,firebug(一个基于firefox的插件)
  开心网首页是一个简单的登陆页,居然做到了385.2KB之大,像开心网这么大的流量,每多1kb就意味着每天N多的钱哪。我没有找到官方的pv 或独立Ip的数据,根据alexa的数据参考一下吧,估计日均独立IP为528,000,我们估计按每独立IP访问一次登陆吧,实际上可能少一些,因为很多用户可能直接在首页上登陆了(alexa的数据也不是那么可靠,供参考吧)。
  开心网的网页每增加1k,我们需要多少带宽?算一下,我们需要528,000/1024=515MB/天的带宽,然后我们平均一下,按一天24小时用户访问很平均来计算(实际上不可能,一般峰值访问会是平均值的一倍以上),每秒需要消耗带宽是528000 / (24小时 * 60分钟 * 60秒)=6Kb,考虑到峰值,估计要到12k以上。
  看官,像开心网这么简单的登陆,完全可以控制在100k以内的大小,为什么要这么多呢,一会儿看网页的分析就可以知道了。这是什么概念?385-100=285k,再算出带宽得出:285k * 12k / 1024 = 3.3M.乖乖,开心网每天需要添加3.3M的独享带宽。3.3M的带宽会是多少钱呢?我们就以中档的机房来举例,北京中档的3M独立带宽,怎么也得3-5万块吧,再加上CDN的带宽,估计开心网每年需要为此增加5-8万的费用。
  分析一下开心网存在的问题:
  1. Javascript文件直接写在了网页当中
  开心网的登陆页有大量的javascript的代码,这样的代码一方面不利于维护,另一方面,也不利用用户加载页面。大致计算了一下,开心网登陆页一个有180余行的javascript代码,而总代码仅在336行,也就是说代码中的javascript代码占了1/2 强。
  2. 网页没有开启gzip
  根据文件头返回的信息可以看到,开心网应该在linux上搭建了nginx ,添加gzip应该不会是很难的事吧?而且像html及静态js/css这些文件,gzip后起码可以减少50%的传输量,当是这一项,就可以每年省下上百万的费用。
  当然有人会反对,认为gzip会加重服务器的压力,并且客户端解压的时间与减小文件大小带来的传输速度不会有太多好处。但我认为,对于静态文件来说,可以放到独立的服务器,这个服务器可以把文件压缩后放到缓存中,这样不用去读IO,响应速度会提高。同时,虽然现在用户的带宽都已经是512k的 adsl以上了,但是为什么我不可以让用户更快的看到我们的网页呢?退一万步说,用户真的在乎这个快几秒的,那么我们为什么不可以减小带宽的压力以节省成本呢?如果把节省下的这些钱去奖励员工,没准他们可以给我带来更多的惊喜呢。
  3. Javascript没有做任何处理
  开心网的 javascript可真有意思,他们的开发人员代码质量还不错,起码注释写得还不错,可是问题是,你需要把这些注释都发到客户端么,难道开心网想教我们怎么写javascript代码?这样的代码发到客户端,既占带宽又会泄密网站的代码。
  开心网的核心javascript文件xn.core.js有105k,这么大的其中注释占了不少的代码,我尝试使用yahoo和google的压缩工具进行压缩,但因为代码中有错误无法完成,所以只好放弃。但我估计这个js,最基本的压缩去除空行和注释,可以减少1/5左右的大小,如果进行一些混淆的话,应该可以在40k左右,如果再gzip的话,应该就只有15k以内了。
  4. 图片文件过大
  登录页有一个157k的sys-bj2.jpeg文件,天啦,这么大的。我下载这张图片一看,发现这个图片实际是同几张图片组合的。他们的设计人员其实是想减少网页对服务器的请求数,所以把几个图片合并到一块。但是,他们这种做法是错误的。
  我们要减少请求数,一般是把小图片,一般是几k的36 px* 36px以下的小图片合并,而不是把大图片也合并。因为小图片数量多,而大图的合并,也会增加图片的大小。我将这个图片用ps再优化一下,优化到 66k,也没发现明显的失真。所以我认为,就算是大图,也可以优化到80k以内,而不是如此157k大小的图片。
  再多一句,这个图片总量才5个合并是完全没有必要的,并且图片最大的有600px*255px,而最小的只有10px*10px以下,这种合并没有任何益处,百害而无一益!
  总结
  开心网作为一个访问量非常大的网站,网页结构也非常简单,理应做得更小,比如在100k以内。从我的分析中可以看出,主要问题集中在 javascript,gzip和图片上,代码质量总体还可以。当然,我们不仅只是挑刺,也应该看到一些好的地方,如下:
  1. 首页处理得比较到位,虽然javascript也没有压缩,但总大小只有108k
  2. 文件请求数较少,这个和开心网本身有关,开心网本来就不是一个网页结构复杂的网站,所以文件数自然会比较少了
  3. 静态文件和网页分开部署
  4. Javascript注释比较好,但不应该发到客户端
  重要建议:
  1. 开启gzip压缩
  2. 压缩javascript及css,并将这些文件缓存起来
  最后,这次的分析就写到这里了,就事论事而已,和任何网站及相关的人员没有任何关系,呵呵。
  来源:版权声明:本文授转月光博客刊登,其他非授权网站媒体转载,需要添加作者网站地址http://iove.net,否则视为侵权。
大家可能都会认为,要想学好英语口语,练就一口纯正的口语英语,当然要去模仿纯正的,标准的发音啦。但是事实上却是相反的,我们用日本人的一个试验来说明。
  日本人是出了名的英语说的难听,发音不标准,是什么原因造成的呢?很多人答曰日本人舌头硬。其实日本人跟大家一样,舌头并不特殊,发音不准的原因是因为他们的日语造成的。大家都知道英语有大约44个发音(元音加辅音),而日语只有大约30个。(按照标准音图,日语是有50个音的,但是有一些音实际上是相同的,没什么区别)于是日本人在说英文时,很多音是发不出来的。比如“日 r”的音,日语中没有,所以不会说。很常用的read and write,日本人只能说成 lead and light,用“l”代替“r”,是个很典型的例子。为了找到确切的原因,有人做了这样一个实验,让这些日本人听许多“r”或“l”打头的词(不给看拼写),二选一的答案,做完了测试,发现大家的正确率是50%。各位已经发现问题了,二选一能答对一半,实际就是根本不会,纯粹瞎懵,命中率当然是一半。这个结果说明,这些日本人根本就没有听出来这些音的区别,这就可以理解他们说不准的原因了,即然都分不出区别,怎么可能说出区别。
  其实发音不准主要是因为耳朵听不准这件事,大家是有实际观察经验的。比如有人唱歌走调,是什么原因呀?是不是嗓子不好?不是,主要是耳朵听不准,所以唱歌走调的人唱完了觉得自己唱得挺对的,你们怎么都说我走调呢?原因是他们的耳朵听不准音,自己听不出走调了。(如果您唱歌不走调,自己堵上耳朵唱一个试试,别人保证说您走调了)。
  科学实验告诉我们,只有小孩子的耳朵对各种语言有高分辨率,才可以听准任何语言的发音而模仿到位,成年人不行了。具体说,大多数人到十二岁以上就不行了,这个能力失去了。这就导致了成年人为了纠正外语发音时或提高发音准确度,单纯听和模仿标准外语发音不行,因为做不到,所以如何纠正成年人的发音的最重要环节就是提高成年人的听音准确度。而实践经验证明,多听各种各样的发音,有助于成年人提高听力敏感度和分辨力,从而达到定准和自然纠正自己发音的效果。
        在这里给大家推荐一款超分贝英语学习软件,其中的语音内容非常丰富,发音的有男的、女的、老的、少的,而且都是实际的语音氛围,在学习的过程中能够听到各种风格的发音,而且在学习时压力不大,但是实际效果却非常好,不但可以提高英语听力的分辨能力,提高实战水平,而且还能够应对各种英语考试,适合多年龄层次的人员学习英语。其范围包括:幼儿英语少儿英语儿童英语小学英语初级 英语初中英语高中英语高考英语职称英语大学英语英语四级考研英语商务英语外贸英语等等。
         超分贝英语网站:www.yiEnglish.com 注:如果您觉得本文对你有用,欢迎告诉您的朋友。转载请以链接的形式注明出处。
返回列表