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,重要的是要了解比较两者的作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 从MVC控制器调用异步方法
- ASP.NET Razor查看Html.TextBox大小/宽度
- Asp.Net Core ModelState 验证总是false
- asp.net – 为什么当StateProvider不是InProc时,不会引发Se
- oauth-2.0 – 在MVC6应用程序中的OAuth令牌到期
- asp.net-mvc – 域实体,DTO和查看模型
- asp.net-mvc – 设计ASP.NET MVC 3站点以支持客户特定的视图
- asp.net-mvc – 带网格的MVC3 Bootstrap tablular数据
- asp.net-mvc – ASP.NET MVC:奇怪的POST行为
- asp.net-mvc – 在PasswordSignInAsync成功后,User.Identit
推荐文章
站长推荐
热点阅读