2011-12-01 44 views
2

这是一个非常普遍的问题,所以我不会提供任何代码,因为我的项目相当大。ASP.NET应用程序 - 关于如何加速它的想法

我有一个ASP.NET项目,我一直在维护并添加到你现在一年。总共有大约30页,每个页面大部分都有一对gridview和SqlDataSource,并且在代码隐藏中通常不超过10-15个方法。还有一个相当大的LINQ到SQL的dbml文件 - 大约有40-50个表。

该应用程序需要大约30-40秒的时间进行编译,我认为这不是太糟糕 - 但主要问题是,在部署时,与同一服务器和应用程序池中的其他应用程序相比,加载简单页面可能需要10秒左右的时间。我非常有信心,这个问题并没有孤立于任何特定的页面 - 它似乎更像是一个全球性的应用程序问题。

我只是想知道是否有任何设置在web.config等我可以用来帮助加快速度?或者只是关于常见“错误”或开发人员遇到的问题的一般提示,而不是可能导致此问题的提示。我的应用即将完成,速度问题实际上污染了客户对它的看法。

+0

是调试属性集? –

+0

首先,确保你指定'debug =“false”(正如其他人指出的那样)。如果这没有帮助,那么启动一个分析器,看看最需要花费的时间,然后修复它。重复,直到网站足够快。 – dlev

+0

你也可以检查是否有任何嵌套循环。我想你可以使用PLINQ。 –

回答

3

作为第一步找出问题的根源,无论是应用程序还是数据库方面。

应用方面:

开始通过启用慢网页跟踪和看到的ViewState的大小,有时大的ViewState原因缓慢的页面加载。

数据库方面:

使用SQL事件探查知道到底需要大量的时间来完成

相关链接:

2

最常见的监督可能是:不要忘记在部署之前关闭web.config中的调试。

<compilation debug="false" targetFramework="4.0"> 

几个人:

  • 不要启用会话状态或视图状态,你不使用它
  • 使用输出缓存在可能情况下,可以考虑对数据库一般即缓存层查询(memcached的,Redis的等)
  • 缩减大小,并结合CSS
  • 缩小JavaScript
0

什么现在要做的:

  1. 看在Firebug或Chrome开发者工具的页面加载。检查以确保你没有通过电线发送巨大的有效载荷。
  2. 打开跟踪输出以查看服务器如何花费时间。
  3. 检查您的服务器的网络吞吐量。

如何避免这种情况在未来:

记住,速度功能。如果你的应用程序作为一只狗很慢,客户不禁觉得它很糟糕。这意味着您希望尽快在“生产”硬件上运行应用程序并定期进行部署,以便在引入时捕获性能问题。有一个几乎完成的应用需要10秒才能发送一个页面是没有意义的。希望你运气好,并且可以通过配置来解决大部分问题。如果你不走运,你可能会有一些严重的重构。例如,如果你已经使用ViewState假装它是魔术和免费的,你可能不得不重做一些这种依赖关系。

保持一段短小的皮带。你的应用会很快,而且人们会认为你太棒了。

相关问题