`
Jummy
  • 浏览: 61628 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论
阅读更多

本来想直接发到javaeye上的,但是这里只能上传3个图片文件,所以还是选择了自己的网站。
本文以http://www.eaful.com网站为例,为刚做完第一阶段的性能优化作一个总结,希望能给大家抛砖引玉。
我的这个网站刚上线不久,因为时间比较仓促,所以先发布,再来优化性能。经过优化后从数据看是非常明显的,不过你访问的时候可能还是比较慢,因为目前我的服务器带宽只有电信2M独享,呵呵,见笑了吧!穷,没办法。这个网站主要以分享图片为主题,功能比较简单。将来也不会做的复杂,因为你从名字中就可以看出 eaful , easy is beautiful. 呵呵。

我的性能优化分两个阶段实现:
第一阶段:前台性能优化
主要指减小页面输出流,完善客户端cache策略。
第二阶段:后台性能优化
主要包括数据库优化,cache优化,算法优化和Page Stream Cache。
目前完成了第一阶段,第二阶段估计在10月国庆节完成。下面详细介绍第一阶段的性能优化。

1)为静态文件独立域名
因为我的网站主要是图片,每张图片就有50-60K,以后访问量大的时候会独立一台图片服务器,以减轻应用服务器的压力,所以为静态文件的URL独立一个二级域名(img.eaful.com),为什么不独立一个顶级域名,因为考虑到cookie共享等因素,比如有些图片必须登陆后访问。

2)优化客户端cache
比如一些静态文件,如图片,css文件,js文件等不用每次都更新,所以使用永久cache。方法是在response头中设置Cache-Control 为max-age=99999999,大概缓存3年左右吧。如果css文件修改了怎么办呢,所以这里的关键点是在URL中放入版本参数。如:http://img.eaful.com/virtual/all.css.v1222319367387其中v1222319367387是版本信息,当文件修改后,就修改这个版本号输出链接。这样浏览器发现这是一个新URL,所以会重新请求。
这里要注意的是只对有含有版本号的URL缓存,否则一旦客户端永久cache你就不能让他何时更新了。如更改了js文件,客户端没有更新,这样可能报错了你也不知道。
对图片的链接,就算不包含版本号,也至少让他缓存到凌晨过期(使用Expires头)。这样不会每次刷新页面都更新图片。而且就算图片有修改,最多也是晚一天看到罢了。

3)合并css,js文件
我本来有3个css文件,5个js文件。首次打开的时候要请求8次,虽然现代浏览器支持长连接,但还是没有放到一个文件中快,只要下载一次就够了。我把css文件合并为一个,js文件合并为一个,效果很明显。我这里使用的合并不是发布期手工合并,而是运行期根据配置合并,在应用启动时合并载入在内存中。
谢谢quake wang的提醒:把css中的小图片合成一张大图片,然后在css中调节显示位置。但这里需要注意的是修改图片时,要保持原图片的位置不变,并且不影响其他图片的位置。我目前的做法是给每个小图片一定的空余空间,如一个30*30px的图片,我给它在大图中的空间是50×50px,这样的话以后这个图片需要变大的话,不会影响右边和下边的图片了。如果超过50×50px,就给它100×100px,反正是某个整数的倍数,这样便于在css中调节显示位置。

4)压缩文本输出
css文件,js文件,html文件都是文本输出,都可以用gzip压缩,而且有立竿见影的效果。我的200K的js文件压缩后只有49K了,还是很满意的。也可以考虑在压缩前用ShrinkSafe先瘦身,它可以把注释去掉,缩短变量名的方法减小js文件,以我200K的js文件为例,瘦身后只有 100K了,但是用gzip压缩,只能压到39K,感觉效果不是很明显,而且据说有eval的bug,所以我这里没有采用。还可以考虑对css文件, html文件进行瘦身,比如删除两边的空格,回车等,但我觉的使用了gzip压缩,删除和不删除空格,压缩效果应该不会相差太大,所以也没有采用。

以下是我在firefox中使用firebug测试性能的截图,优化前和优化后的效果比较。

优化前:


优化后:


以上是firfox首次打开http://www.eaful.com/myforum/forum/list.ef的截图,整整提高了1秒多。第二次打开就更快了,几乎所有东西静态文件都在客户端有缓存。

也可以使用http://www.websiteoptimization.com/services/analyze/index.html来分析页面下载性能。
优化前:
Object Size Totals
Object type Size (bytes) Download @ 56K (seconds) Download @ T1 (seconds)
HTML: 46442 9.46 0.45
HTML Images: 10354 2.46 0.45
CSS Images: 19620 6.31 2.50
Total Images: 29974 8.77 2.95
Javascript: 186931 38.66 2.39
CSS: 16635 4.12 0.89
Multimedia: 0 0.00 0.00
Other: 0 0.00 0.00

优化后:
Object Size Totals
Object type Size (bytes) Download @ 56K (seconds) Download @ T1 (seconds)
HTML: 45412 9.25 0.44
HTML Images: 10354 2.46 0.45
CSS Images: 0 0.00 0.00
Total Images: 10354 2.46 0.45
Javascript: 47708 9.71 0.45
CSS: 4028 1.00 0.22
Multimedia: 0 0.00 0.00
Other: 0 0.00 0.00

优化前和优化后的效果还是很明显的,但是js文件中使用了prototype.js这个js文件,有126K,以后有时间的话会把这个文件替换掉

分享到:
评论
1 楼 Jummy 2008-10-08  
  转的别人的一篇文章,不错.写的挺有技术深度...

相关推荐

    网站优化对网站的作用

    文章首先介绍了网站优化的基本思想,包括对用户、搜索引擎以及网站运营维护的优化,然后详细阐述了网站优化的主要内容,并对幻剑书盟网站的优化现状进行了问题分析,最后提出了针对性的优化建议。 绪论: 网站优化...

    网站优化10条

    网站优化10条 网站优化是一个很大的话题,有一些通用的原则,也有针对不同开发平台的一些建议。雅虎的工程师团队曾经给出过 35 个最佳实践,可以参照Best Practices for Speeding Up Your Web Site。同时,他们还...

    seo优化 网站优化

    网站优化不仅仅是关于关键词的堆砌,而是涵盖了多个方面,包括但不限于内容质量、用户体验、技术优化等。本篇文章将深入探讨SEO的基础知识,帮助你理解如何通过有效的优化策略提升网站的搜索引擎排名。 首先,我们...

    seo网站优化-资料

    SEO(Search Engine Optimization)是网站优化的重要组成部分,其主要目标是提高网站在搜索引擎中的自然排名,从而增加网站的可见度和吸引更多的潜在用户。在这个"seo网站优化-资料"的压缩包中,包含了多份关于SEO的...

    网站优化Seo教程网站优化Seo教程

    网站优化和SEO(搜索引擎优化)是提升网站在线可见度的关键技术,主要目的是为了在搜索引擎的自然搜索结果中获得更高的排名,从而吸引更多的有机流量。本教程将深入探讨这两个概念及其重要性,帮助你掌握有效提高...

    18个网站优化技巧

    ### 18个网站优化技巧:首页响应慢与首页速度优化 #### 一、引言 随着互联网技术的发展,用户对网页加载速度的要求越来越高。快速的页面加载不仅能够提升搜索引擎排名,还能显著改善网站转化率及用户体验。然而,...

    润心油茶网站优化方案

    【润心油茶网站优化方案】是一份针对中小型企业网站提升搜索引擎排名和网络营销效果的全面策划。该方案由宜春动网网络科技有限公司提供,旨在帮助企业在Google等搜索引擎中获得更好的左侧排名,从而增加网站曝光度,...

    网站优化计划方案

    网站优化计划方案是提升网站在搜索引擎中的可见性和用户体验的关键步骤,主要目标是提高搜索引擎排名,增加网站流量,最终实现业务增长。以下是对标题和描述中所提及知识点的详细说明: 一、SEO综合查询竞争度分析 ...

    网站优化.rar

    网站优化,特别是搜索引擎优化(SEO),是提升网站在搜索引擎结果页面排名、增加可见性和吸引潜在用户访问的关键策略。"网站优化.rar"这个压缩包可能包含了关于SEO优化的各种资源和工具,比如"网站优化.exe"可能是一...

    大型网站优化策略.ppt

    【大型网站优化策略】 在构建和管理大型网站时,优化策略是至关重要的,因为它直接影响到网站的可发现性、用户体验和搜索引擎排名。以下是一些关键的优化策略: 1. **关键词分析**: - **选择原则**:了解用户的...

    seo网站优化步骤

    SEO网站优化步骤 SEO流程操作及网站优化技巧网站的SEO流程,假设需要花一年的时间来完成。大致可以分为以下四个阶段: 第一阶段是准备期,主要要完成以下三个工作: 站点分析---形成站点分析报告 竞争对手分析---...

    旺道SEO网站优化大师

    **旺道SEO网站优化大师**是一款专业的搜索引擎优化(SEO)工具,旨在帮助用户提升网站在搜索引擎中的排名,增加流量,并优化关键词以获取更多的有机搜索曝光。SEO是网络营销的重要组成部分,通过改善网站的技术性能...

    网站优化和推广方法的分析.doc

    ### 网站优化与推广方法的深度解析 #### 一、网站优化的重要性与方法 **1.1 网站优化的必要性** 在互联网时代,网站优化成为了提升网站可见度的关键步骤之一。通过优化,可以使搜索引擎更容易识别并收录网站内容...

    最完整的网站优化工具

    网站优化是提升网页加载速度和用户体验的关键步骤,尤其在当今互联网竞争激烈的环境下,快速响应的网站更能吸引并留住用户。本文将详细介绍两个重要的网站优化工具——JSMIN和YUICompressor,以及它们如何帮助优化...

    网站优化手册:SEOBOOK(中文PDF版)

    《网站优化手册:SEOBOOK(中文PDF版)》是一本深度探讨搜索引擎优化(SEO)的专业指南,旨在帮助读者掌握如何提升网站在搜索引擎结果页的排名,从而增加网站的可见度和流量。SEO是互联网营销策略的重要组成部分,...

    深入理解网站优化:提升网站转化率的艺术与科学

    网站优化是互联网行业中至关重要的一个领域,其核心目标是提高网站的用户体验,进而提升网站的转化率。转化率是指访问者在网站上完成特定目标(如购买产品、填写表单或订阅服务)的比例。深入理解网站优化,既需要...

    大型网站优化方案

    在构建和运行大型网站时,优化是至关重要的...以上方案涵盖了大型网站优化的主要方面,实施这些措施可以显著提升网站的性能和用户体验。然而,每个网站都有其独特性,因此在实际操作中,应根据具体情况灵活调整和优化。

    seo网站优化发文章快速排名要点

    seo网站优化发文章快速排名要点,很多seo网站优化人员不知道文章怎样快速可以获取排名,那就来看看这个发文章要掌握的要点所在!

Global site tag (gtag.js) - Google Analytics