3

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

4

3 回答 3

1

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

于 2009-11-05T19:56:02.560 回答
0

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

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

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

(直接取自维基百科页面)很好地解释了编译代码而不是脚本代码(如 php 或类 ASP)的好处。

于 2009-11-11T05:14:04.413 回答
0

据我所知,在这种特定情况下,由于问题中列出的原因,当 WAP 设置为可更新时,预编译 WAP 并没有性能优势。

于 2010-01-18T07:53:51.170 回答