我的问题是我的ASP.NET网站在我的生产服务器上的运行速度比我的开发服务器上慢。
在我的开发环境中120ms执行的页面需要400ms才能在服务器上执行。我使用分析器监视SQL服务器,并且在服务器上运行400ms的页面上运行的查询只需要大约50ms即可完成 - 所以我确信自己的问题不在于SQL服务器。
我的开发机器是Intel I7,配备6GB RAM,生产服务器是2x AMD四核,配备16GB内存。
答案 0 :(得分:16)
您可以考虑对网站的性能提升进行考虑。
修改强>
使用本网站衡量您的网站表现
http://www.websiteoptimization.com/services/analyze/
http://www.websitepulse.com/
答案 1 :(得分:5)
您是否在web.config中检查过debug = false?
服务器是64位吗? 尝试为应用程序创建专用应用程序池,并将应用程序池设置为以32位经典模式运行。 这有什么不同吗?
您是预编译的类还是已将其设置为在运行时编译?
答案 2 :(得分:2)
在页面中设置Trace =“true”(<%@ Page Trace =“true”...),当您在浏览器中加载页面时,您将在页面底部获得大量有用信息。您将确切知道在服务器上处理请求需要多长时间。如果时间足够低,那么问题可能出在IIS设置中。将它们与开发环境中的那些进行比较。
答案 3 :(得分:1)
您的SQL服务器是否在另一台服务器上进行生产,但是在本地进行开发?
答案 4 :(得分:1)
从阅读所有建议开始,它似乎没有任何效果,开始逐渐从您的网站中取出代码,看看这会如何影响时间。一次删除大约10行代码或HTML,看看是否存在巨大差异。
否则,它可能与IIS有关,对不起,我不是没有IIS大师。
答案 5 :(得分:0)
导致传输延迟的大量视图状态?
答案 6 :(得分:0)
这是您在服务器上唯一的网站吗? 16 GB是相当不错的内存,但如果在同一台服务器上有许多热门网站,他们可能会占用资源和CPU时间。
除此之外,我无法想到为什么您的网站在制作上比在开发中慢。
你看了索引吗?他们都在服务器上?
答案 7 :(得分:0)
您需要减少变量。
尝试消除两种环境之间的所有差异,然后逐一进行更改,直到找出它是什么。
确保web.config在两种环境中都相同 确保两个环境都指向第三个盒子上的同一个数据库服务器 确保在两种环境中都使用相同版本的IIS 确保在两种环境中IIS配置相同 在两种环境中运行相同的测试数据 等...
答案 8 :(得分:0)
在我的开发机器和生产机器的性能差异长时间撞到墙壁后,我终于陷入了深深感觉到处理器实际上比你会想。
我从基于AMD的解决方案转变为基于英特尔的解决方案(Xeon!),获得了.3GHz和更快的磁盘。
我也获得了性能提升,而不是x3和我的开发机器一样慢,现在速度慢到x0.75慢 - 显然仍然不是我的开发机器能够提供的闪电速度,但它越来越近了。 / p>
在进一步调试时,我注意到大部分性能问题(实际上并不奇怪)来自LINQ to SQL必须编译查询,对我来说似乎很奇怪的是,一旦我尝试预编译LINQ查询并运行同样在我的机器上,开发机器变得更快。