Ivy*_*Ivy 3 asp.net asp.net-mvc performance
我已将我的ASP.NET MVC(3)站点上传到我的主机,但它在所有页面的首次加载时很慢(即使没有数据提取)?
我第一次访问startpage它需要7.30 s,如果我在1分钟后点击reaload将需要1.05 s,如果我重复点击reaload它会给我500 ms和之间800 ms.
如果我在大约5分钟之后返回并点击重载,我会7 s再次加载?
如果我从我的localhost(IIS7)运行相同的websight,我将1 s第一次650 ms获得快速重新加载.
网页使用的是数据库,但在两种情况下都是相同的数据库(放在我的主机上).
该网页是www.biss.se
我应该在哪里开始看?
编辑:
这是我的Application_Start()
protected void Application_Start()
{
AccountModel accountModel = new AccountModel();
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
MappingHandler.RegisterMappings();
#region Register Extra DataNotations for Display Attribute
ModelMetadataProviders.Current = new DisplayMetaDataProvider();
#endregion
if (!accountModel.CheckIfAdminAccountExists("adminAccount"))
{
accountModel.CreateUser("adminAccount",
"Admin",
"Admin",
"",
"",
postCode: "",
locationId: "",
inactive: false,
siteRole: Controllers.SiteRoles.Admin,
activatedByUser: true);
}
}
Run Code Online (Sandbox Code Playgroud)
当第一个请求命中ASP.NET应用程序时,Web应用程序通过创建AppDomain将该应用程序加载到内存中,并执行Application_Start中的代码.此过程可能需要更多或更少的时间,具体取决于您在此事件中执行的操作以及要加载的程序集数.在一段时间不活动或达到某些内存/ CPU阈值后,IIS可以回收应用程序并从内存中卸载它.在下一个请求中,重复相同的过程.
所以基本上你应该寻找的是你在Application_Start事件中执行的任务,这是在第一次请求时执行的.如果这些任务涉及I/O操作(如数据库访问或内容),则可以记录执行它们所需的时间.通过这种方式,您将能够确定代码的确切过程,这些过程需要很长时间,并且如果它依赖于您,则能够修复它,或者如果它是他们的问题,请联系您的托管服务提供商.
该MiniProfiler是这个分析的目的一个很好的工具.
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |