ASP.NET MVC在主机上运行缓慢?

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)

Dar*_*rov 7

当第一个请求命中ASP.NET应用程序时,Web应用程序通过创建AppDomain将该应用程序加载到内存中,并执行Application_Start中的代码.此过程可能需要更多或更少的时间,具体取决于您在此事件中执行的操作以及要加载的程序集数.在一段时间不活动或达到某些内存/ CPU阈值后,IIS可以回收应用程序并从内存中卸载它.在下一个请求中,重复相同的过程.

所以基本上你应该寻找的是你在Application_Start事件中执行的任务,这是在第一次请求时执行的.如果这些任务涉及I/O操作(如数据库访问或内容),则可以记录执行它们所需的时间.通过这种方式,您将能够确定代码的确切过程,这些过程需要很长时间,并且如果它依赖于您,则能够修复它,或者如果它是他们的问题,请联系您的托管服务提供商.

MiniProfiler是这个分析的目的一个很好的工具.