因为第一次访问ASP.NET MVC时程序需要预编译导致初次的访问页面反应会慢一些.
我搭建的网站第一次访问的加载时间大概3秒左右.
有哪些优化方案可以降低这个反应时间?
如果是因为预编译的问题,你应该编译后再发布。
如何预编译,能给出步骤吗,谢谢。我对这个不是很了解。
@paseo: 你建一个应用程序项目,点击发布,它会先编译完成后生成最终的结果。网站项目也可以发布,同时勾选允许预编译。或者你看看这篇文章:http://www.cnblogs.com/dudu/archive/2011/02/07/aspnet_compiler_precompilation.html
主要是了解下什么叫预编译,为什么会有预编译,也就是为什部署到IIS中还需要编译后运行,而Winform程序直接就能运行。
@Launcher: 你的意思是我右键项目点击发布按钮发布产生的文件实际上已经进行了预编译?如果是这样的话,问题就回到了原点,我的网站一直就是点击项目的发布按钮发布的。所以我碰到的问题应该是建立在已经预编译了的前提下。
@paseo:上面那篇文章中有个链接,显然你没有看完, 你应该把文章读完,并按照文章中的步骤来做,预编译也有两种模式。
我建设你的程序在编译上不存在任何问题,那么请你使用ClrProfiler来分析下你的网站启动时都做了些什么,从中找到执行时间较长的方法,然后有针对性的来解决此问题或者判定为不能解决。
@Launcher: 编译的问题我再研究一下官方文档.另外我在无意间看到EF官方文档上说EF在加载时也会导致反应的延迟.关于EF的优化,有没有好的建议?
@paseo: 每个模块尽量包含较少的实体,可以按照DDD中的Bound-Context来划分你的Module .
应该是第一个访问的比较的慢吧,是不是有太多的资源需要下载,第一次?还是数据库的操作比较的多?
如果是“第一次访问ASP.NET MVC时程序需要预编译导致初次的访问页面反应会慢一些.”
我想,还是先不要考虑到优化了
应该是第一次加载慢。这个慢是能理解,但是慢到3秒就不好了,我希望这个反应时间在没有涉及数据库操作的时候也能降到毫秒级以内。