对网站速度提升的建议?

时间:2010-11-09 20:41:22

标签: c# asp.net optimization

我差不多完成了这个在线图书馆:http://gramma.ro

我在YSlow中有C级,但我仍然不满意平均消耗的时间 要加载的网站(我的网络连接约7秒)。

也许你们中的一些人会说它运作良好但请与这个速度相比:http://www.libris.ro/这绝对是快速的。

您对我的申请有什么建议吗?您是否看到了我可以改进的关键位置,这会严重缩短我网站的加载时间?

使用

数据库:sql server 2008。

使用

语言:c#+ asp.net

使用

硬件:专用服务器,AMD 64 2.2 Ghz,2 GB Ram

提前致谢...

更新:我在我的页面上使用了OutputCache(1小时或1天)选项,用于4个用户控件,这使得网站的加载时间缩短了3秒!

8 个答案:

答案 0 :(得分:2)

简单的答案是升级您的硬件。但是,我认为可能还有一些简单的改进点。

内存使用情况如何?你是否正在缓存正确的东西(类似NHibernate SessionFactory的东西不应该在每次请求时都是新的)。

也许您可以使用代码分析器来分析您的webapp。我已经成功地使用了JetBrains的DotTrace,它有一个试用版。您只需选择要分析的应用程序,运行一些请求并检查输出哪些方法花费太多时间。然后,您可以深入了解这些方法,以查看代码中的哪一部分需要太长时间。

衡量代码的性能非常重要,因为你(通常)不能单独感受到直觉。

[编辑] 哦,你可能已经知道的一件事:这不是文件大小问题,这意味着它也不是一个大的viewstate问题。

答案 1 :(得分:1)

这取决于很多东西:

  1. 往返数据库服务器
  2. 是否编译代码
  3. 大型viewstate导致巨大的下载文件
  4. 需要下载大量图片
  5. 所以在不知道有关您的申请的确切细节的情况下很难说出来

    建议:

    1. 为静态资源(如images,js和css文件)创建静态主机头
    2. 编译应用程序(发布)
    3. 优化网络图片
    4. 使用缓存

答案 2 :(得分:1)

离开我的头顶(并且没有看到你的代码): 我假设您正在从数据库构建列表 - 这个SQL看起来像什么?您是否优化了查询/查询?表索引是否设置正确?此外,在适当的情况下,with (nolock)这样简单的事情可能会产生巨大的差异。

该站点最初为我加载需要一段时间,所以我假设你的数据检索速度慢了。

答案 3 :(得分:1)

Yslow和Google Page Speed等基于浏览器的工具只能提供有关客户端问题的建议。

从Firebug的时间线看,您的问题主要出现在服务器端。如果不知道服务器的规格(它可能只是负载过重),我将不得不假设您的代码太慢。

使用分析工具找出代码的哪些部分花了这么长时间,并找到优化代码的方法。通常您会发现80/20规则适用,即大部分运行时仅由代码的一小部分占用。这意味着大问题通常很容易找到并修复,但是你越是修复就越难以进一步改进。分析通常是找到大瓶颈的最简单方法,所以首先要修复它们。

答案 4 :(得分:1)

这是一个较老的问题,但如果网站没有改变,答案就太可怕了。

Libris正在加载:

  • ~500KB的图片
  • 140KB for JS
  • 仅85个HTTP请求
  • 总下载:737KB

Gramma正在加载:

  • ~1050KB的图片
  • 275KB for JS
  • 有113个HTTP请求
  • 总下载:1537KB

基本上,您的网站几乎在每个方面都是双倍大小,而且您正在使用Flash,这会在客户端计算机上再次受到打击。

使用CSS Sprites并缩小你的JS肯定会有所帮助。请注意,这些数据是关于您的网站在超过10MB后一分钟下载越来越多的数据,而Libris网站更加静态。

答案 5 :(得分:0)

  1. 不要将css放在标题中的样式标记中,而是将其拉出到外部css文件。

  2. 将任何内联样式也拉出到css文件中,即顶部的div标签带有里程长样式属性。

  3. 加载这么长时间的原因是你试图在一个页面上推送太多文本。如果您将其拉出到外部文件,它会将其缓存以供下次使用,并使您的初始页面加载速度更快。

答案 6 :(得分:0)

缓存昂贵的数据库请求,减少图像大小,如果可能,从cdn加载javascript库

答案 7 :(得分:0)

除了通常的缓存优化之外,您还可以使用新的图像优化器(测试版) - VS2010扩展程序,它可以减少您的图像(png和jpg)文件大小而不会丢失质量:

http://madskristensen.net/post/Image-Optimizer-%28beta%29-VS2010-extension.aspx