- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
柯南君:教你如何对待大型网站平台的性能优化? 之 五web 前端性能优化策略(长篇总结)
从企业架构上(见 /sun305355024sun/article/details来说,企业架构可以分为两大部分:业务架构和IT架构,大部分企业架构方法都是从IT架构发展而来的,详细如下:
① 业务架构:是把企业的业务战略转化为日常运作的渠道,业务战略决定业务架构,它包括业务的运营模式、流程体系、组织结构、地域分布等内容。
② IT架构:指导IT投资和设计决策的IT框架,是建立企业信息系统的综合蓝图,包括数据架构、应用架构和技术架构三部分。
从企业IT架构体系上来看,特别是对于Web2.0网站来说,必须考虑的就是可扩展性:随着使用人数的增多,能够及时的扩展IT系统的能力。解决这个问题,通常有两种解决方式:Scale up和Scale out,两种扩容的方式:分别从两个维度来解决数据库压力。 这些不是本篇文章考虑重点;
本篇更多讲的是IT架构的性能调优-《web前端性能调优策略-内容篇》
一般来说,性能优化也就是下面的几个策略:
用空间换时间。各种 cache 如 CPU L1/L2/RAM 到硬盘,都是用空间来换时间的策略。这样策略基本上是把计算的过程一步一步的保存或缓存下来,这样就不用每次用的时候都要再计算一遍,比如数据缓冲,CDN,等。这样的策略还表现为冗余数据,比如数据镜象,负载均衡什么的。
用时间换空间。有时候,少量的空间可能性能会更好,比如网络传输,如果有一些压缩数据的算法,这样的算法其实很耗时,但是因为瓶颈在网络传输,所以用时间来换空间反而能省时间。
简化代码。最高效的程序就是不执行任何代码的程序,所以,代码越少性能就越高。关于代码级优化的技术大学里的教科书有很多示例了。如:减少循环的层数,减少递归,在循环中少声明变量,少做分配和释放内存的操作,尽量把循环体内的表达式抽到循环外,条件表达的中的多个条件判断的次序,尽量在程序启动时把一些东西准备好,注意函数调用的开销(栈上开销),注意面向对象语言中临时对象的开销,小心使用异常(不要用异常来检查一些可接受可忽略并经常发生的错误),…… 等等,等等,这连东西需要我们非常了解编程语言和常用的库。
并行处理。如果 CPU 只有一个核,你要玩多进程,多线程,对于计算密集型的软件会反而更慢(因为操作系统调度和切换开销很大),CPU 的核多了才能真正体现出多进程多线程的优势。并行处理需要我们的程序有 Scalability,不能水平或垂直扩展的程序无法进行并行处理。从架构上来说,这表再为——是否可以做到不改代码只是加加机器就可以完成性能提升?
总之,根据2:8原则来说,20% 的代码耗了你 80% 的性能,找到那 20% 的代码,你就可以优化那 80% 的性能。 下面的一些东西都是我的一些经验,我只例举了一些最有价值的性能调优的的方法,供你参考,也欢迎补充。
(一)web 前端性能优化策略
1.web 前端优化最佳实践之 内容篇(雅虎团队经验:网站页面性能优化的 34条黄金守则 )
1) 尽量减少HTTP请求(Make Fewer HTTP Requests)
HTTP 请求:作为第一条,可能也是最重要的一条。根据数据分析,有很大一部分用户访问会因为这一条而取得最大受益。有几种常见的方法能切实减少 HTTP 请求:
① 合并文件 比如把多个CSS文件合并成一个;
备注:可以参见
② CSS Sprites 利用CSS background 相关元素进行背景图绝对定位;
备注:可以参见 CSS Sprites简介以及优缺点
③ 图像地图 参见CSS Sprites:Image Slicing‘s Kiss of Death;
备注:可以参见 CSS Sprites图片地图
④ 内联图像 使用data:URL scheme 在实际的页面嵌入图像数据;
备注:可以参见 内联地图
2)减少 DNS 查找 (Reduce DNS Lookups)
① 了解 DNS,以及如何查找DNS?
在浏览器中打开一个网站对于大多数用户来说是很简单的事情,输入网址,回车,网站就打开了。但是对于网站开发者来说,就在这短短一秒不到的时间里,发生了很多事情,DNS查找,建立连接,服务器处 理, 下载结果,客户端渲染等等。在这里,我们着重对DNS查找讨论一下。简单来说DNS查找就是将域名翻译成具体IP地址的过程,因为IP地址才是一台电脑在互联网上的唯一地址,域名只是用来方便人们记忆网站地址的名称而已,我们不会通过身份证号去记住一位朋友,
文档评论(0)