减少网站响应时间 优化Waiting (TTFB)
在谷歌开发工具里,加载网页时有一个Waiting (TTFB),这是服务器处理数据的时间。这个时间反应的是服务器性能。打开或刷新一个网页时,谷歌浏览器的加载图标是灰色并逆时针旋转,就表示处在服务器响应阶段,浏览器在获取网页代码。如果图标变成蓝色并且顺时针旋转,表示在加载资源了,这时候网页代码已经加载完成,在加载如图片之类的东西了。
Waiting (TTFB)时间的判断标准。我们拿百度首页做比较吧,百度首页的Waiting (TTFB)时间在40-80ms之间。这已经是非常快了。你要比百度还要快吗?一般在500ms以下就算不错了。
动态页面的Waiting (TTFB)时间会比较长。因为要读取数据库,并执行一些程序。如wordpress的php页面。如果要优化就需要优化PHP性能,或者启用PHP动态缓存了。动态的300ms以下算优秀了。动态页面的优化本文不深入讨论。wordpress也可以静态化,这就进入下一个讨论话题了。
重点说下静态页面,我有一个静态的小站叫中午吃什么。纯静态的一个站点。因为新购买了一个云服务器,所以就拿这个站来做性能测试。Copy了一份代码到新服务器,配置了一个二级域名。然后用浏览器打开测试。 结果让我很费解,新服务器居然要80ms响应,旧服务器只要40多ms。是什么影响了Waiting (TTFB)时间呢?
我首先想到的是服务器配置,因为两个服务器配置不一样。老服务器是双核2G内存,带宽200M不限;新服务器是1核1G内存,5M带宽。我首先是把旧服务器的带宽调低到5M和新服务器一样。不过结果还是一样,看来带宽不是影响Waiting (TTFB)的因素。然后我又把新服务器的内存调到2G,还是没什么卵用。。。。
那就从环境入手了。都是Nginx,而且这个站不用数据库,不用PHP。。。折腾一天就下班回家了。回家路上还在想,是不是新服务器不好。。
今天再次坐到电脑前。测试了另外一个新服务器上的静态站,这是一个在主站下面的一个二级站点。结果是40ms!!!新服务器的Waiting (TTFB)时间可以到40ms啊。那为什么昨天测试就是不行呢?
再来看看二者的区别了。进到后台研究了一下。真有一个设置不一样。。。是否写访问日志。赶紧把访问日志关掉。不出所料。40ms!
结论就是:写访问日志会影响网页Waiting (TTFB)时间。
如果没有必要,就不要记录访问日志了。