我已经将用ASP.NET 2.0编写的应用程序部署到生产环境中,并且遇到了一些延迟问题。页面加载大约需要4-5秒。 GridView刷新大约需要同时加载。
应用程序在开发盒上正常运行。我在服务器上进行了以下调查
服务器配置
Windows Server 2003 Sp2 双2.0 GZH 2GB RAM
仅运行SQL Server 2005和IIS
还有什么我可以排除故障吗?我还检查了事件日志中的错误,它很干净。
EDITED~我刚拿到的唯一区别是在DEV盒子上我使用的是IE7而客户端正在使用IE6 - 这可能是个问题吗?
更新〜我将所有客户更新到IE8并注意到性能提高了30%。我终于发现我在web.config文件中留下了我的debug = true。设置为flase使应用程序恢复稳定的性能...我仍然无法相信我做到了。
答案 0 :(得分:2)
我要做的第一件事是启用跟踪。 (见:http://www.4guysfromrolla.com/webtech/081501-1.shtml)
然后在页面生成代码中添加跟踪点,以便了解页面构建的每个部分需要多长时间:
System.Diagnostics.Trace.Write(
"Starting Page init",
"TraceCheck");
//Init page
System.Diagnostics.Trace.Write(
"End Page init",
"TraceCheck");
System.Diagnostics.Trace.Write(
"Starting Data Fetch",
"TraceCheck");
//Get Data
System.Diagnostics.Trace.Write(
"End Data Fetch",
"TraceCheck");
等
通过这种方式,您可以准确了解每个阶段的持续时间,然后定位该区域。
答案 1 :(得分:1)
同时检查您的页面大小。我的一位开发人员朋友曾将整个表格加载到viewstate中。在本地计算机上进行开发时,12兆字节的页面将会消失,但在生产中会立即变得明显。
答案 2 :(得分:1)
仔细检查您的应用程序是否未在调试模式下运行。在web.config
文件中,检查debug
下的system.web\compilation
属性是否设置为false。
除了使应用程序运行速度更慢并且使用更多系统内存之外,您还会遇到页面加载速度慢的问题,因为在调试模式下会记录缓存。
答案 3 :(得分:0)
您是否针对与测试中的SQL Server相同或不同的SQL Server运行?
为了找出来自您的时间可以在页面加载中添加一些跟踪语句,然后在打开跟踪的情况下加载页面。这可能有助于指出问题。
另外,您的开发盒有哪些规格?同样的?
答案 4 :(得分:0)
根据您拥有的Visual Studio版本,Team Developer有一个您可能想要调查的性能向导。
此外,如果你使用IE 8,它有一个Profiler,它可以让你看到网站在浏览器中加载多长时间。首先要确定的是时间是客户端还是服务器端。
如果是客户端,请开始查看您拥有的javascript并优化/删除它。
如果是服务器端,则需要查看所有性能计数器(perfmon)。例如,由于大量的JIT正在进行,我们有一个在生产服务器上爬行的应用程序。
您还需要查看Web和数据库服务器之间的通信。查询需要多长时间?盒子是否会颠覆磁盘驱动器?等