asp.net网站第一次加载慢的原因
来源:互联网 发布:二元期权模拟软件 编辑:程序博客网 时间:2024/05/01 00:46
当向服务器发送一个ASP.NET网页的请求时,在内部执行的流程如下:
① 检查在服务器内存中是否存在这个网页对应的本地机器代码。
② 如果存在,则执行本地机器代码,将运行结果发送到客户端。
③ 如果不存在本地机器代码,则检查是否存在这个网页编译后的中间代码(以DLL的形式存在),如果存在,则将中间代码编译成本地机器代码,再执行本地机器代码将结果返回给客户端,并将本地机器代码缓存到内存中。
④ 如果不存在对应的中间代码,则将这个网页编译成中间代码,然后将中间代码编译成本地机器代码,将本地机器代码的执行结果发送给客户端,再将本地机器代码缓存到内存中。
如图所示的是ASP.NET运行时流程图。
从图中可以看出,如果在服务器没有清理掉内存中缓存的本地机器代码而再次访问同一个页面时,服务器就会直接执行缓存中的本地机器代码,本地机器代码的运行速度是相当快的。即使本地机器代码在内存中由于某些原因被清理掉了(比如服务器重启或者服务器内存不够用时被释放),也仅仅是将中间代码编译成本地机器代码,再次运行本地机器代码将运行结果发送给客户端,然后缓存本地机器代码即可,将中间代码编译成本地机器代码的速度也是很快的。
这也就是ASP.NET网页不同于其它语言编写的网页的地方:ASP.NET页面在第一次请求时会被编译成DLL文件,再由JIT编译成本地机器代码执行,并且将本地机器代码缓存,如果在缓存没有清空之前再次调用,则会直接执行缓存中的机器代码,即使内存中缓存的机器代码被清空也会再次将中间代码编译成本地机器代码运行并缓存。
不过,aspx页面第一次被打开时比较慢,因为存在着先生成中间代码再编译成本地机器代码执行的过程;以后执行时就会比较快了。因为以后执行时要么是直接运行本地机器代码,要么是将中间代码编译成本地机器代码再运行,除非修改了代码;否则就没有必要重新生成中间代码了,并且对于第一次运行时比较慢的情况也可以通过预编译来解决。
文章转载自: 为什么asp.net网站第一次加载慢 http://www.studyofnet.com/news/39.html
- asp.net网站第一次加载慢的原因
- 解决Asp.net Web网站第一次访问慢的问题
- 为什么第一次打开ASP.NET开发网站首页慢?
- paip.DEVSUIT WEB .NET ASPX网站打开慢的原因
- 网站速度慢的原因?!!!
- EF第一次加载较慢的原因以及解决方法(汇)
- ASP.Net 各类网站第一打开慢的问题解决方案
- sencha touch 第一次加载慢的解决办法
- asp.net 网站访问变慢
- 图解IIS8上解决ASP.Net第一次访问慢的处理
- arcgis加载地图特别慢的原因
- 页面加载慢的原因分析
- ASP.NET第一次加载速度优化
- 外贸网站访问速度慢的原因
- 502网站速度慢的原因
- 网站打开速度慢的原因
- ASP.NET MVC 第一次访问每一个控制器特别慢.
- WordPress 后台卡,打开慢,加载慢的原因
- 由LG 的G2手机浅析国产旗舰机的方向
- Javascript 对象类型
- 用c语言写cgi程序(3)---实现文件上传
- POJ 3321 Apple Tree
- 不同的数字组成的圆圈中删除第m 个数字
- asp.net网站第一次加载慢的原因
- Project Euler problem 26
- JS滚轮事件onmousewheel
- 用c语言写cgi程序(4)---处理请求post get。文本框,下拉列表框。
- Code Refactor-编程命名(2)
- iOS7初体验(1)——第一个应用程序HelloWorld
- C#高级编程读书笔记 - 第五章泛型
- Oauth对请求合法性的讲解
- 状态机的设计