我差不多完成了这个在线图书馆: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秒!
答案 0 :(得分:2)
简单的答案是升级您的硬件。但是,我认为可能还有一些简单的改进点。
内存使用情况如何?你是否正在缓存正确的东西(类似NHibernate SessionFactory的东西不应该在每次请求时都是新的)。
也许您可以使用代码分析器来分析您的webapp。我已经成功地使用了JetBrains的DotTrace,它有一个试用版。您只需选择要分析的应用程序,运行一些请求并检查输出哪些方法花费太多时间。然后,您可以深入了解这些方法,以查看代码中的哪一部分需要太长时间。
衡量代码的性能非常重要,因为你(通常)不能单独感受到直觉。
[编辑] 哦,你可能已经知道的一件事:这不是文件大小问题,这意味着它也不是一个大的viewstate问题。
答案 1 :(得分:1)
这取决于很多东西:
等
所以在不知道有关您的申请的确切细节的情况下很难说出来
建议:
答案 2 :(得分:1)
离开我的头顶(并且没有看到你的代码):
我假设您正在从数据库构建列表 - 这个SQL看起来像什么?您是否优化了查询/查询?表索引是否设置正确?此外,在适当的情况下,with (nolock)
这样简单的事情可能会产生巨大的差异。
该站点最初为我加载需要一段时间,所以我假设你的数据检索速度慢了。
答案 3 :(得分:1)
Yslow和Google Page Speed等基于浏览器的工具只能提供有关客户端问题的建议。
从Firebug的时间线看,您的问题主要出现在服务器端。如果不知道服务器的规格(它可能只是负载过重),我将不得不假设您的代码太慢。
使用分析工具找出代码的哪些部分花了这么长时间,并找到优化代码的方法。通常您会发现80/20规则适用,即大部分运行时仅由代码的一小部分占用。这意味着大问题通常很容易找到并修复,但是你越是修复就越难以进一步改进。分析通常是找到大瓶颈的最简单方法,所以首先要修复它们。
答案 4 :(得分:1)
这是一个较老的问题,但如果网站没有改变,答案就太可怕了。
Libris正在加载:
Gramma正在加载:
基本上,您的网站几乎在每个方面都是双倍大小,而且您正在使用Flash,这会在客户端计算机上再次受到打击。
使用CSS Sprites并缩小你的JS肯定会有所帮助。请注意,这些数据是关于您的网站在超过10MB后一分钟下载越来越多的数据,而Libris网站更加静态。
答案 5 :(得分:0)
不要将css放在标题中的样式标记中,而是将其拉出到外部css文件。
将任何内联样式也拉出到css文件中,即顶部的div标签带有里程长样式属性。
加载这么长时间的原因是你试图在一个页面上推送太多文本。如果您将其拉出到外部文件,它会将其缓存以供下次使用,并使您的初始页面加载速度更快。
答案 6 :(得分:0)
缓存昂贵的数据库请求,减少图像大小,如果可能,从cdn加载javascript库
答案 7 :(得分:0)
除了通常的缓存优化之外,您还可以使用新的图像优化器(测试版) - VS2010扩展程序,它可以减少您的图像(png和jpg)文件大小而不会丢失质量:
http://madskristensen.net/post/Image-Optimizer-%28beta%29-VS2010-extension.aspx