Jos*_*osh 4 iis performance asp.net
我有一个部署到 IIS 的 ASP.NET(非 MVC)站点。我已经设置了预编译选项(用于部署/发布)。设置在图像下方。我已经尝试了以下和表面设置的变体,但我没有看到这样做有任何重大改进。为了进行测试,我将预编译和非预编译部署到两个不同的 IIS 站点。我进入并回收每个站点的应用程序池(或 IIS 重置)......在这样做之后,我分别点击了两个站点,它们都需要同样长的时间来呈现第一个页面加载(即缓存应用程序池?),并且然后对其他 aspx 页面的后续调用花费大约相同的时间(在预编译与非预编译中)。我错过了什么吗?预编译是否只适用于大型站点?挖掘具有 API 调用、数据库调用等的中型站点。
在应用程序池回收后,我是否需要进行特定设置来缩短首次点击网站的加载时间?或者一般来说,提高对尚未编译的 aspx 或 ascx 的首次命中响应时间?
“预编译”和“未预编译”之间的区别在于,“未预编译”的站点页面将在 .net 编译器 (csc.exe/vbc.exe) 首次请求每个页面时动态编译,您实际上可以在任务管理器的进程选项卡中看到它们弹出)。因此,每个页面都会占用一次编译时间,尽管通常可以忽略不计。如果您的网站在 /app_code 目录中也有代码文件,这些文件也会在网站启动之前编译,因此初始启动应该比“预编译”版本稍慢。也就是说,如果 web.config 中“非预编译”站点的编译元素将“batch”属性设置为 false,否则它会在启动时花费时间编译所有页面,编译元素(ASP.NET 设置架构)
在 /app_code 文件和例如 default.aspx 在“未预编译”站点编译后,两者之间的实际性能将没有差异。
IIS 重置或应用程序池回收也不会显示任何差异,因为在部署一个并运行这两个站点后,两个站点都会被编译。IIS 重置/应用程序池重置不会导致重新编译“未预编译”站点,只会更改文件/重新部署。
看看了解 ASP.NET 动态编译,了解比较两者的作用很重要。
归档时间: |
|
查看次数: |
3632 次 |
最近记录: |