加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

iis – 如何通过预编译ASP.NET站点来确定性能改进?

发布时间:2020-12-15 22:32:16 所属栏目:asp.Net 来源:网络整理
导读:我有一个部署到IIS的ASP.NET(非MVC)站点.我已经设置了预编译选项(用于部署/发布).设置如下图所示.我尝试过以下设置的变化,从表面上看,我没有看到这样做的任何重大改进.为了测试,我正在将预编译和非预编译部署到两个不同的IIS站点.我进入并回收每个站点的应用
我有一个部署到IIS的ASP.NET(非MVC)站点.我已经设置了预编译选项(用于部署/发布).设置如下图所示.我尝试过以下设置的变化,从表面上看,我没有看到这样做的任何重大改进.为了测试,我正在将预编译和非预编译部署到两个不同的IIS站点.我进入并回收每个站点的应用程序池(或IIS重置)…在这之后我分别打了两个站点,它们都需要花费同样长的时间来渲染第一个页面加载(即缓存应用程序池?),以及然后对其他aspx页面的后续调用花费大约相同的时间(在预编译与非预编译中).我错过了什么吗?预编译是否仅适用于大型站点?挖掘一个中型站点,具有API调用,数据库调用等.

应用程序池回收后,是否需要特定的设置来改善首次点击网站的加载时间?或者一般来说,改善尚未编译的aspx或ascx的首次响应时间?

解决方法

“预编译”和“未预编译”之间的区别在于,“未预编译”的网站页面将在首次请求通过.net编译器(csc.exe / vbc.exe)对每个页面进行动态编译,您实际上可以在任务管理器的进程选项卡中看到它们弹出窗口).所以每个页面都需要一次编译时间,但通常可以忽略不计.如果您的网站在/ app_code目录中也有代码文件,那么这些代码文件也会在网站启动之前编译,因此初始启动应该比“预编译”版本略慢.也就是说,如果您在web.config中的“非预编译”网站的编译元素将“batch”属性设置为false,否则它将花时间在启动时编译所有页面,这可能需要很长时间,具体取决于您的大小现场. compilation Element (ASP.NET Settings Schema)

在/ app_code文件之后,例如,default.aspx在“未预编译”的网站中编译,但两者之间的实际性能没有差别.

IIS重置或应用程序池回收也不会显示任何差异,因为在部署一个并运行它们之后,两个站点都会被编译. IIS重置/应用程序池重置不会导致重新编译“未预编译”的站点,只会更改文件/重新部署.

看看Understanding ASP.NET Dynamic Compilation,重要的是要了解比较两者的作用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读