如果有大型 Web 应用程序,可考虑执行预批编译

原创 2004年10月25日 00:14:00
每当发生对目录的第一次请求时都会执行批编译。如果目录中的页面没有被分析并编译,此功能会成批分析并编译目录中的所有页面,以便更好地利用磁盘和内存。如果这需要很长时间,则将快速分析并编译单个页面,以便请求能被处理。此功能带给 ASP.NET 性能上的好处,因为它将许多页面编译为单个程序集。从已加载的程序集访问一页比每页加载新的程序集要快。
批编译的缺点在于:如果服务器接收到许多对尚未编译的页面的请求,那么当 Web 服务器分析并编译它们时,性能可能较差。为解决这个问题,可以执行预批编译。为此,只需在应用程序激活之前向它请求一个页面,无论哪页均可。然后,当用户首次访问您的站点时,页面及其程序集将已被编译。

  没有简单的机制可以知道批编译何时发生。需一直等到 CPU 空闲或者没有更多的编译器进程(例如 csc.exe(C# 编译器)或 vbc.exe(Visual Basic 编译器))启动。

  还应尽量避免更改应用程序的 /bin 目录中的程序集。更改页面会导致重新分析和编译该页,而替换 /bin 目录中的程序集则会导致完全重新批编译该目录。

  在包含许多页面的大规模站点上,更好的办法可能是根据计划替换页面或程序集的频繁程度来设计不同的目录结构。不常更改的页面可以存储在同一目录中并在特定的时间进行预批编译。经常更改的页面应在它们自己的目录中(每个目录最多几百页)以便快速编译。

  Web 应用程序可以包含许多子目录。批编译发生在目录级,而不是应用程序级。

版权声明:本文为博主原创文章,未经博主允许不得转载。

使用命令行编译并运行应用程序

如何使用命令行工具来编译一个C#源文件呢? 前提条件:必须安装一个Visual Stdio,版本自选;建议安装2010以后的版本,本示例以Visual Stdio 2013为例; 打开记事本...
  • qq_15567051
  • qq_15567051
  • 2015年09月26日 20:46
  • 1233

大型web系统架构详解

(如果感觉有帮助,请帮忙点推荐,添加关注,谢谢!你的支持是我不断更新文章的动力。本博客会逐步推出一系列的关于大型网站架构、分布式应用、设计模式、架构模式等方面的系列文章)   动态应用,是相对于网站...
  • zhulongxi
  • zhulongxi
  • 2017年06月21日 14:41
  • 1080

大型Java Web项目的架构和部署调优问题

一位ID是jackson1225的网友在javaeye询问了一个大型Web系统的架构和部署选型问题,希望能提高现有的基于Java的Web应用的服务能力。由于架构模式和部署调优一直是Java社区的热门话...
  • u011599900
  • u011599900
  • 2014年04月09日 23:20
  • 2137

在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的?

UI:界面美观,要有个性,考虑用户使用的逻辑要简单,用起来舒适自由。使用习惯要符合大部分用户的习惯,比如少让用户输入,采用选择的方式,提供搜索和提示功能。 安全性:参照http://zhidao.b...
  • xujie_0311
  • xujie_0311
  • 2015年01月04日 10:55
  • 1875

大型高并发高负载web应用系统架构

一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单,随着互联网业务的不断丰富,网...
  • HuiGeZhang
  • HuiGeZhang
  • 2011年06月10日 15:12
  • 1437

关于Web安全趋势与核心防御机制

一. WEB安全技术产生原因 早期:万维网(World Wide Web)仅有Web站点构成,这些站点基本上是包含静态文档的信息库。这种信息流仅由服务器向浏览器单向传送。多数站点并不验证用户的合法性...
  • hj7jay
  • hj7jay
  • 2016年07月14日 11:18
  • 2693

大型web框架

大访问量如何处理:一般有两种处理方法:负载均衡和冗余技术,将两者集合在一起就形成了我们想要的超级计算机,这就是负载冗余技术。...
  • Autumn_bell
  • Autumn_bell
  • 2016年01月22日 17:29
  • 604

Timer实现定时执行

原文地址:Timer实现定时执行 原文地址: 3秒后执行: Timer timer = new Timer(); timer.schedule(new TimerTas...
  • zizidemenghanxiao
  • zizidemenghanxiao
  • 2015年10月21日 21:39
  • 259

the authentication endpoit username was not found on the configured secure token service

转载:http://luoyong0201.blog.163.com/blog/static/11293052015101395013914/ 使用Developer Toolkit在Visual S...
  • y_f123
  • y_f123
  • 2016年04月29日 17:14
  • 856

JSP之WEB服务器:Apache与Tomcat的区别 ,几种常见的web/应用服务器

APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页 如(asp,php,cgi,jsp)等动态网页的就不行 如果要在APACHE环境下运行jsp 的话就需要一...
  • strivenoend
  • strivenoend
  • 2017年08月29日 21:02
  • 201
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如果有大型 Web 应用程序,可考虑执行预批编译
举报原因:
原因补充:

(最多只允许输入30个字)