2

.NET アプリケーションの起動時間を増やす方法を探しています。

アイデアは、起動初期化の直後にプロセス メモリ ダンプを作成し、ディスクに保存することです。2 回目の実行では、プロセス メモリをそのダンプに置き換えて、アプリケーションの起動を高速化するとよいでしょう。

だから、私の質問:

  1. .NET プロセス メモリのダンプを作成する方法はありますか?
  2. そのダンプからプロセス メモリの状態を復元する方法はありますか?
  3. ソリューション (存在する場合) は、IIS でホストされる ASP.NET アプリケーションに適用できますか?

ありがとう。

4

2 に答える 2

5

生のメモリ ダンプは、実際にはそのようには機能しません。多くのものがその単一のプロセスのにあるものへのハンドルになり、それを再生しようとすると非常にひどく爆発します。あなたがする必要があるのは、起動が遅い原因を調べることです。たとえば、問題が構成およびセットアップ データのロード (たとえば、データベースから) である場合、その情報をシリアル化して、単純なストアからローカルに再ロードできるようにする何らかの方法がある可能性があります。"ilmerge" や "ngen" (それぞれ "fusion" と "jit" の時間を短縮する) などのツールを見るかもしれませんが、率直に言って、これらはほとんどすべてのシナリオでやり過ぎです。

IIS の場合: サーバーのクラスターを考えてみましょう。サーバーがその時点でクラスター内にない場合、サーバーの起動にどれだけ時間がかかるかは問題ではありません。

ただし、まず測定してから行動します。

于 2013-01-17T21:08:04.083 に答える
2

(おそらく、開発者のマシンについて話している前の投稿への最後の著者のコメントを見るとトピックから外れています...)

ASP.Netの起動を高速化するために、メモリ管理の悪夢を掘り下げる前に、次の解決策をすでに検討しましたか?

.Netメモリダンプがどのように見えるかを確認するために、ここに回答があります:.NETメモリプロファイリングツール (そして、それが非常に巨大であることがわかります!)

于 2013-01-17T21:26:48.350 に答える