ASP.NET MVC 3 de Chargement du Site Est Extrêmement Lent

Je ne sais vraiment pas par où commencer avec cette question, mais le site que je suis en train de travailler times a vraiment ralentir le chargement de la page. Surtout après avoir fait un build, mais pas toujours. J'ai l'habitude d'actualiser la page 5 à 10 fois avant de réellement se lève. Je suppose que je suis en train de voir où exactement je devrais commencer à chercher.

ASP.NET MVC 3
Ninject
AutoMapper
Entity Framework Code First 4.1
SQL Server 2008
Rasoir

MISES à jour

Concernant certaines questions, il peut faire ce long chargement sur chaque page, mais après il charge son assez rapide sur toutes les pages.

Après cette annonce et l'obtention de vos réponses, j'ai commencé à l'application et il est toujours en cours de chargement et probablement ne sera jamais la charge à moins que je clique sur recharger sur le navigateur.

Pas de mise en cache, et l'EF modèles ne sont pas énormes.

Je suis en utilisant la lame de Rasoir et Visual Studio 2010 avec 6 GO de mémoire et un processeur I7.

Je suis à l'aide de IIS Express et le serveur web par défaut lors du débogage. Il le fait aussi sur IIS7 sur le serveur principal.

Je peut regarder dans le MVC Profiler et Aperçu pour voir ce que je peux trouver.

Ci-dessous j'ai un code cela fonctionne quand il frappe la page d'accueil. Je dirais qu'il ne se charge jamais quand j'ai démarrer le serveur. J'ai mis un point d'arrêt au modèle de la var qui n'est jamais touché. Si je recharge la page, alors il n'.

public ActionResult Index()
        {
            var model = new HomeViewModel();

            model.RecentHeadlines = _headlineService.GetHeadlines(1, Config.RecentHeadlinesPageSize, string.Empty);

            return View(model);
        }

Ci-dessous est mon datacontext le programme d'installation.

public class DatabaseFactory : Disposable, IDatabaseFactory
    {
        private DataContext _dataContext;
        public DataContext Get()
        {
            return _dataContext ?? (_dataContext = new DataContext());
        }
        protected override void DisposeCore()
        {
            if (_dataContext != null)
                _dataContext.Dispose();
        }
    }

public class Disposable : IDisposable
    {
        private bool isDisposed;

        ~Disposable()
        {
            Dispose(false);
        }

        public void Dispose()
        {
            Dispose(true);
            GC.SuppressFinalize(this);
        }
        private void Dispose(bool disposing)
        {
            if (!isDisposed && disposing)
            {
                DisposeCore();
            }

            isDisposed = true;
        }

        protected virtual void DisposeCore()
        {
        }
    }

public class UnitOfWork : IUnitOfWork
    {
        private readonly IDatabaseFactory _databaseFactory;
        private DataContext _dataContext;

        public UnitOfWork(IDatabaseFactory databaseFactory)
        {
            _databaseFactory = databaseFactory;
        }

        protected DataContext DataContext
        {
            get { return _dataContext ?? (_dataContext = _databaseFactory.Get()); }
        }

        public void Commit()
        {
            DataContext.Commit();
        }
    }
  • Besoin d'un peu plus de détails. Est-ce pour frapper la première page? Chaque page? Seulement certaines pages? Il arrive régulièrement ou sporadiquement?
  • Quelle est la taille de votre modèle EF? Est-il de la mise en cache dans votre application? C'est surtout après la construction ou toujours lorsque vous accédez à l'application après la construction, pour la première fois (redémarrage de l'application)?
  • Il pourrait aussi être due à une machine lente. De combien de mémoire avez-vous? Combien de cœurs de PROCESSEUR? Est-ce un ordinateur portable ou un poste de travail?
  • Ce Moteur d'Affichage utilisez-vous?
InformationsquelleAutor Mike Flynn | 2011-12-15