性能低 - 单击重定向链接后运行的ASP .NET ASPNET_WP.EXE和CSC.EXE

Dan*_*7el 3 c# asp.net performance

我点击一个链接从一个页面重定向到另一个页面(Response.Redirect(page.aspx)).

浏览器搅拌约30秒,页面显示.我试图找出加载页面需要这么长时间的原因.

该页面包含两个其他自定义控件.

我已经注释掉了每个控件和两个控件的代码行,页面仍然需要大约30秒才能加载.

我已经为每个控件和page.aspx设置了Page_Load事件的断点,并且点击带有Response.Redirect的链接到第一个断点也需要大约30秒.

我加载了任务管理器并点击了链接.我注意到在此30秒的时间范围内运行aspnet_wp.exe和csc.exe.

我想知道在等待页面加载时是否存在某种代码隐藏的shinanigans.

这仅在我第一次点击链接时发生.之后,它并没有那么慢.

我用Google搜索了,但没有很多有用的信息.有人有主意吗?

谢谢,

- -担 - -

Ari*_*tos 8

第一次加载页面时,asp.net会编译很多页面,几乎每个页面都找到相同的dir,包括模块和bin上的dll.

要加速(开发),请尝试在web.config上使用此选项(仅在您的开发计算机上).

<compilation batch="false" ... >
Run Code Online (Sandbox Code Playgroud)

使用batch ="false"asp.net只编译一个页面,就是你在它上面的那个页面,所以你第一次获得dll的时间很长,但是之后,如果你有200个页面就会少得多,而你只更改一个,您只开发/调试一个.

如果可以,请尝试不要使用App_Code目录,并将所有代码放在dll中.查看有关web.config上的编译选项的更多信息,以使其运行更快,例如将临时目录更改为比C:更快的不同磁盘.

第二招

我想说一下我在stackoverflow上找到的另一个技巧.

<compilation optimizeCompilations="true">
Run Code Online (Sandbox Code Playgroud)

您只需要安装一个ms补丁http://support.microsoft.com/kb/961884 我已经测试了它,结果非常好.

.net 4和Visual Studio 2010

同样的想法,但你不需要运行补丁.

网络农场

我注意到在第一次运行应用程序时在Web场上,如果你在应用程序启动时有很多关于global.asax的工作,那么我重新使用Mutex并且只让一个池进行页面编译!否则,有可能发生冲突和启动应用程序的巨大延迟 - 特别是如果您在程序的其他部分使用互斥锁.