怪兽大做战--解析网站打开慢的缘由

在开始前,博主先百度下“为何xx打开慢”,结果以下前端

传统巨头chrome

百度 30,200,000   新浪 48,200,000   搜狐   4,420,000浏览器

新兴贵族服务器

知乎 47,100,000   豆瓣   6,230,000   优酷   2,310,000网络

为何互联网技术发展到今天,依然没法完全解决网站打开慢的问题?这是IT行业的顽疾不可治愈吗?前端工程师

从数据上能够看到 知乎虽然是新兴贵族,但其网站打开慢的次数却比传统巨头百度还要多,几乎和新浪并肩,新浪有数十年打开慢次数的积累,才险胜知乎,知乎做为后期只秀真是使人另眼相看。并发

而优酷则是出现打开慢次数最少的一家,可见 各大互联网公司在技术的储备和运用上仍是有差异的。dom

用户打开浏览器,输入网址,页面就加载出来。这简简单单的背后到底隐藏这什么怪兽,让各大互联网势力忙的不可开交?分布式

首先请看一张图,这是在浏览器打开一个页面,浏览器都干了些什么的时间表,高并发

在高级浏览器例如chrome,能够经过js脚本window.performance.timing 拿到这些数据,oneapm 的Browser Insight 就是以此为基础开发出来的

c4bc83668f2ad472179d88f60ab3051a

看着一堆英文,你必定晕了,其实我也晕了。

一般诊断网站打开慢,把这个时间表能够简单的分为3个过程,来进行分析就行了 ,每一个过程都包含一些细节

1 网络连接的时间 (fetchStart-responseStart)

2 浏览器接受数据构建页面(responseStart-domContentLoadedEventStart)

3 页面加载资源并渲染页面(domContentLoadedEventStart-loadEventEnd)

 

分身兽

致使网站打开慢的第一只怪兽必然是 网络连接时间,互联网公司中土豪勉强和这只怪兽打个平手,其余互联网公司均早早鸣金收兵。

由于这只怪兽居然会分身,首先分身为电信网络和联通网络,而后又都分身为全国34个行政区,若是有时候你以为你打开网站速度很快,可是某些地区的用户打开网站很慢,那必定是这个地区的怪兽太强了~,对付这只怪兽一般用的武器

1 dns 加速 例如 dnspod,加速你在全国的域名解析速度

2 网站镜像,解决多线路互通的问题,例如 联通 电信 移动

3 cdn加速,让你的资源距离用户更近一些,打开速度天然更快

遗憾的是 这3招都是烧钱的,一口气全用上,不是土豪根本用不起,因此要分析清楚本身的访客群在哪,有的放矢的花点银子

幻化兽

致使网站打开慢的第二只怪兽 就是接受数据的速度,在解决第一只怪兽后,能影响接受数据速度的主要是服务器的响应时间,尤为是当用户量比较大,数据比较多,业务比较复杂的时候,这只怪兽居然 会跟着幻化,例如高并发下的分布式事务锁(电商),海量数据的快速检索(搜索),图片、视频快速加载(多媒体)

和这头怪兽做战,主要是靠人才和常年累月的技术积累,各大互联网公司也只一致的,均采起拥抱开源+垄断人才的措施,这就是为何最近几年应届毕业生的价码愈来愈高,垄断人才的战斗从这里就开始了。

分裂兽

致使网站打开慢的第三只怪兽是最近几年才出现,之前页面比较简单,承载的业务也单一,随着时间的推移,一个页面愈来愈大,业务愈来愈复杂,进而问题也就跟着来了。

这是一只分裂兽,这只怪兽一般喜欢和用户呆在一块儿,却你玩作迷藏的游戏,如今主要分裂为 ie、火狐、chrome、各大浏览器的移动版 和国产手机上的国产浏览器,国产的太复杂就不一一列举了。

这里一 新浪微博为例,微博登陆后的首页,累计发起了281个请求用来加载各类各样的资源,一个简简单单的发微博的页面都是如此的复杂,更不用说你们平时用其余系统了。

image

这是错误日志

image

 

各大互联网公司在同分裂兽做战的过程当中,胜多败少,这样的战绩,中小公司难以望其项背

缘由以下

1 一个页面都加载这么多资源,一个站点N个页面加载的资源更多遇到的问题也会更多,可见和分身兽交战是多磨灿烈,没有大量的技术人才,和准确的分析,难有胜算,一线互联网公司由于在这一块有着丰富的积累,因此平手居多,你看新浪也是用了近 10秒才完成全部资源的加载。

2 对这些资源进行管理须要用到 前端工程师,而网页变的复杂也是最近几年的事情,前端工程师的培养有个过程,除了老牌互联网公司有技术储备和人才储备可以稳住阵脚,其余公司都是疲于应战例如 随便打QQ商城   http://www.wanggou.com/  一个电子商务的首页, 就报js错误,至于这个错误影不影响业务,我就不清楚了

image

对js错误日志的收集和分析,也是一件复杂的事情,由于访问量越大,数据量越大,除了大公司,小公司作本身业务都人手不够,更不用说浏览器日志收集这些和业务无关的事情了。

服务器端能够随便打日志,看日志,而浏览器端只能闭着眼睛,猜!用户遇到什么故障了每每只有打电话吐诉后远程桌面,才能知道,效率十分低下。

相关文章
相关标签/搜索