この質問はどこから始めるのが本当にわかりませんが、時には作業しているサイトにはかなり遅いページがロードされています。特にビルドを行った後には、必ずしもそうではありません。私は通常、実際に現れる前にページを5-10回更新する必要があります。私は、どこを見始めるべきかを見極めようとしていると思う。ASP.NET MVC 3サイト読み込みが極端に遅い
ASP.NET MVC 3 Ninject AutoMapper Entity Frameworkのコードファースト4.1 SQL Server 2008の レイザー
UPDATES
質問のいくつかについては、それはすべての上で、この長いロードを行うことができますそれはすべてのページでかなり速く読み込まれた後です。
これを投稿して返信を受け取った後、私はアプリケーションを起動しましたが、まだロードされていて、ブラウザのリロードをクリックしない限りロードされません。
キャッシングなしで、EFモデルは巨大ではありません。
6GBのメモリとI7プロセッサを搭載したRazorとVisual Studio 2010を使用しています。
デバッグ時にIIS ExpressとデフォルトWebサーバーを使用しています。これは、メインサーバーのIIS7でも行います。
MVC ProfilerとGlimpseを見て、私が見つけたものを見ることができます。
以下、ホームページにヒットしたときに実行するコードがあります。最初にサーバを起動したときに、ロードされることはありません。私は決して打撃を受けないvarモデルにブレークポイントを設定します。私がページをリロードすると、それが実行されます。
public ActionResult Index()
{
var model = new HomeViewModel();
model.RecentHeadlines = _headlineService.GetHeadlines(1, Config.RecentHeadlinesPageSize, string.Empty);
return View(model);
}
以下は私のdatacontext設定です。
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();
}
}
さらに詳しい情報が必要です。これは最初のページに当たったことですか?すべてのページ?特定のページのみ?一貫してまたは散発的に起こりますか? – Lester
あなたのEFモデルの大きさはどれくらいですか?アプリケーションにキャッシュがありますか?特にビルド後、または初めてビルドした後にアプリケーションにアクセスするとき(アプリケーションの再起動時)はいつですか? –
遅いマシンの場合もあります。どのくらいの記憶がありますか?いくつのCPUコア?それはラップトップですか、ワークステーションですか? – danludwig