随笔分类 - 网站性能
摘要:接上一篇:speeding up your web site 前端性能优化规则(一)---------------------------------------------------------------------------优化加载顺序我们上面的提到的不管是预加载或延迟加载,其实也是加载顺序的一部分。这们这里再次说到的就是页面onload之前的加载顺序。其实这里一个主要原因是几乎所有的浏览器在处理js时的策略:因为js文件可能会改变页面内容和页面的布局,因此浏览器在碰到script标签时会推迟其后内容的呈现,直到这段js下载、解析和执行完成。因此,我们尽可能的应该把js引用放到页面底
阅读全文
摘要:接上一篇:speeding up your web site 前端性能优化---------------------------------------------------------------------------启用浏览器缓存请参考 http://www.cnblogs.com/forcertain/archive/2012/08/29/2662203.html减少http请求我们的页面除了本身的html结构之外,都会包含诸如图片、样式、脚本、flash等组件,这些对于我们来说都去向服务器发起请求,然后服务器响应,然后输出到客户端,由浏览器来呈现。如果能降低这些请求的数量,肯定会提
阅读全文
摘要:内部分享时总结了一下fiddler的使用,总是想写一篇fiddler的文章,写之前搜了一下,发现园子里已经有介绍的大作了:Fiddler 教程 ,不过还是总结下,如有雷同,还请见谅啊,哈哈。fiddler是什么相信大家都很清楚了,用句通俗的话就是抓包工具,下面我们就从实际的功能来说下它是什么,能干什么?工作原理先上个图此图一目了然,可以看出fiddler在请求中所处的位置,我们就可以确定它能干些什么。它实际工作在本机的8888端口http代理,我们启动fiddler时,它会自动更改代理设置:从此我们可以看出,只要是http的请求,在请求发起离开本机之前都会经过fiddler,当respons.
阅读全文
摘要:关注网站前端性能不得不提到一篇文章,Best Practices for Speeding Up Your Web Site,他来自yahoo性能研究团队,文章列出了7类35条网站提速的最佳实践。Yahoo的最佳实践1,内容减少HTTP请求、减少DNS查找、避免重定向、缓存Ajax、按需加载组件、预加载组件、减少DOM元素的数量、分离组件到不同的域名、尽量不使用iframe、避免4042,服务器使用CDN、启用浏览器缓存(添加Expires或Cache-Control、配置ETags)、启用Gzip压缩、尽早刷新缓冲区、Ajax使用GET请求方式、避免Image标签src属性为空3,Cook.
阅读全文
摘要:这是读书笔记的最后一篇,说的是数据库,就像之前分享的缓存,不管是读缓存或写缓存,可以减轻数据库的压力,但是缓存随时可能失效或过时,也并不是所有的情况都适用缓存,数据库的优化和扩展也是必须重视的。运行状况 如何对已运行的数据库进行优化和扩展,以及我们的优化后效果如何,这不是我们想象的,必须在数据的基础上。首先介绍的就是运行状态的监控,书中以mysql为例子,除了自带的命令:mysql> show status;mysql> show innodb status;之外,还有mysqlreport工具可用,它把上述命令的输出内容进行处理,以更容易理解的方式呈现给我们。 对于sql ser
阅读全文
摘要:这一篇之所以命名分离之后,是因为当我们前面负载均衡的介绍,假设每台实际服务器都是相同的,就是拥有相同的文件和程序。实际上如何要实现的每台实际服务器都有相同的资源呢?这篇我们将分享网络共享、内容分发同步和分布式文件系统。网络共享 这个方式就是把资源放到一个网络上的服务器,多个实际请求处理服务器都可以以相同的方式访问到这些资源,像我们常见的数据库服务器,我们的程序都可以网络的方式访问数据库,获得数据后,生成HTML,返回给用户,还有我们前面关于缓存中提到的缓存服务器,这里我们再介绍下文件共享系统。 文件共享系统让你不必考虑网络访问和传输的细节,你可以像访问本地文件系统一样访问网络上其它服务器文件.
阅读全文
摘要:很多的网站一开始并不需要太大的规模,但是做为网站设计者从一开始就必须考虑到扩展,做一个可扩展性强的架构。所谓可扩展性就是系统通过规模的扩展来提高系统的承载能力,毕竟服务器自身的垂直扩展很快就会受到制约,单机很快便不能满足我们的需求,因此这种能力往往通过增加物理服务器或集群节点等方面来实现,这种能力越强,承载能力可提升的空间也越大。而web站点的水平扩展,负载均衡是一种最常见的手段。下面介绍一下几种实现负载均衡的方式。HTTP重定向 HTTP重定向,相信对于所有web程序员都不陌生,例如我们请求某个页面时,被转向登录页,登录页面之后又被转到了某个页面。大致来说就是,浏览器请求某个URL后,服务.
阅读全文
摘要:组件分离可以说是很多网站都在采用、最基础的提高网站吞吐的策略。比如我们看淘宝:像fuzhuang.taobao.com、home.taobao.com这样二级站点的分离,再比img01.taobaocdn.com、img02.taobaocdn.com的图片分离,a.tbcdn.cn样式的分离等,都是组件分离。什么是组件分离 这里的组件就是所有基于url访问的资源,如动态内容、图片、脚本、样式等;组件的分离就是这些组件的垂直分割,不同的资源分布到不同的服务器或相同服务器的不同逻辑单元,并且配以独立的域名(顶级域名或二级域名)。从请求表面上,请求不同站点的资源,但是他们仍可以完美组成一个完整..
阅读全文
摘要:其实在说缓存之前,还有其它关于网络和服务器硬件、系统的基础知识,其中在网络一节中:着重介绍了网络模型和带宽的概念,提供了一个我们去计算一次网络传输时间的方法,以及在当前联通、电信网络的情况下,如何部署服务器,做好互联互通。在服务器硬件、系统能力方面,突出了一个服务器能力的指标:吞吐率,介绍了各个主要部件和系统的基础知识。了解并熟悉这方面的知识,对我们构建一个优秀的系统是不可缺少的,笔者所有的这些这方面的知识也是各种资料,没有太多的实践的经历,这里就不摘抄了,推荐大家去看此书或其它相关资料了解这方面的知识。 下面进入本篇的主题,缓存我们再熟悉不过了,不仅体现空间换时间的体现,也能节省不少的资源.
阅读全文
摘要:作为程序开发人员,都梦想着有朝一日,能构建一个能稳定、扩展性强应用程序。当看到《构建高性能的web站点》时,感觉这本书可以帮助我们去接近这个目标:他实用性很强,从网站各个方面来讲,从网络、服务器软件、脚本语言以及到缓存、负载均衡、数据库的优化、文件共享、性能监控等都有涉及,可以让没有实际去体验这一个个场景的开发人员获得这样的经验,增长知识。等待什么 首先让我们看一下从输入一个url到页面呈现到我们眼前,我们在等待什么? 从一个网址输入,不只是页面的一个请求,还有图片、样式、脚本等这些文件请求,每个请求又会经历一些相同的历程:数据在网络的传输(传出和传入)、服务器对请求的处理返回数据、还有本地.
阅读全文