预编译Web应用程序项目的性能优势是否可以更新?

时间:2009-11-05 19:13:23

标签: asp.net msbuild web-application-project web-deployment-project precompile

如果将asp.net Web应用程序设置为可更新,预编译是否有任何性能优势?通过设置预编译器可更新标志,它不预编译aspx,ascx等,因此仍然必须在第一次页面加载时在运行时编译。尽管如此,ASP.NET Web应用程序项目中的其他所有内容都已经编译好了,那么在WAP上运行预编译器并将updateable标志设置为true是什么意思?

3 个答案:

答案 0 :(得分:1)

唯一的性能优势是它预先编译了ASPX和ASCX文件的相关代码隐藏文件。

答案 1 :(得分:0)

ASP.NET通过将服务器端代码编译为Web服务器上的一个或多个DLL文件,旨在提高性能优于其他基于脚本的技术(包括Classic ASP)。[18]此编译在第一次请求页面时自动发生(这意味着开发人员无需为页面执行单独的编译步骤)。此功能提供了脚本语言提供的易于开发以及编译二进制文件的性能优势。但是,当首次从Web服务器请求新编辑的页面时,编译可能会对Web用户造成明显但短暂的延迟,但除非请求的页面进一步更新,否则不会再次进行编译。

ASPX和其他资源文件放在Internet Information Services服务器(或其他兼容的ASP.NET服务器上的虚拟主机中;请参阅下面的其他实现)。客户端第一次请求页面时,.NET框架将文件解析并编译为.NET程序集并发送响应;后续请求由DLL文件提供。默认情况下,ASP.NET将在首次请求时以1000个文件的批量编译整个站点。如果编译延迟导致问题,则可以调整批量大小或编译策略。

开发人员还可以选择在部署之前预编译代码,从而无需在生产环境中进行即时编译。这也消除了在Web服务器上使用源代码的需要。

(直接来自维基百科页面)很好地解释了编写代码而不是像PHP或类ASP这样的脚本代码的好处。

答案 2 :(得分:0)

从这个具体案例中我可以看出,当因为问题中列出的原因将WAP设置为可更新时,预编译WAP没有性能优势。