我在生产服务器上有一个asp.net webforms应用程序,它真的很慢。所以我决定从我的SO用户那里获得一些性能提示。
我已应用这些来增加我的asp.net网站性能,
设置debug=false
转动off
追踪
图像缓存
<caching>
<profiles>
<add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
<add extension=".jpg" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
<add extension=".gif" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
</profiles>
</caching>
你知道其他任何真正的表演助推器吗?任何建议......
答案 0 :(得分:3)
网页只有设计才能快速。
一个简单的选项无法使您的页面加载速度更快。 debug = off只消除了额外的调试功能,实际上如果你不使用它们就不会让很多人想到。
我同意保罗所说的一切,你可以found them here with more details而且我必须多说...
你需要遵循一些指南并做很多工作才能使它们真正快速。 我关注的是什么。
如何查看您的网页速度:http://code.google.com/speed/page-speed/docs/using.html
优化缓存:http://code.google.com/speed/page-speed/docs/caching.html
谷歌的许多一般主题都可以在这里找到:http://code.google.com/speed/articles/
关于缓存:http://www.mnot.net/cache_docs/
希望得到这个帮助。
答案 1 :(得分:2)
不是直接ASP.NET,而是
1)确保在IIS中启用压缩。
2)如果您的网站是一个单独的域内的cookie“重”主机静态文件(图像,CSS和JS)。每个返回服务器的请求都需要将所有站点cookie信息发送回服务器。因此,如果您的cookie使用量为10kb +,则页面中的20个静态文件引用将导致额外的200kb被发送回服务器。如果将静态文件移动到没有cookie要求的域,则可以消除此开销。值得注意的是,由于IE处理事务的“错误”,您在使用子域时没有任何好处,IE似乎坚持将所有域cookie发送到子域。这样做的另一个好处是允许更多HTTP requests in parallel
答案 2 :(得分:1)
停止攻击您的生产服务器(可能会引入功能性错误)并退后一步。您能否在非生产环境中重现性能问题?如果没有,那么就去做尝试。
您应该尝试按如下方式重现问题:
现在你有机会在测试中重现问题,你可以尝试解决方案。
通常数据库驱动的网站会受到数据库的瓶颈,所以我从那里开始。主要技巧是
但是你做的任何改变,在测试系统上尝试,测量结果,如果没有帮助,请回滚。
一般来说,配置更改可能只会产生细微差别,但您也可以尝试这些。
如果所有这些听起来都太费劲,那么试着抛出硬件来解决问题 - 开发人员的时间比硬件贵得多。在您完成上述操作的时间(可能是数月,取决于应用程序的复杂性),您可能已经购买了一些内容丰富的生产箱。但请确保它会有所帮助。
您的数据库是否适合RAM?它可能适合于ram吗?如果这些问题的答案分别为no和yes,请为数据库购买更多ram。这是在没有代码更改的情况下使数据库速度更快的最便宜的方法之一。