- - PR -
JITコンパイルされたモジュールの初期化
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-07 14:14
現在C#でWindowsアプリを作成しております。
.NETで作成したWindowsアプリで、起動時間が問題となっており、調査の結果 CLRがILをネイティブコンパイルしているところで結構な時間をくっていることがわかりました。 そこで、下記URLの「コードはいつ JIT で処理されるのか?」 http://www.microsoft.com/japan/msdn/net/general/dotnetperftechs.asp を参考にOS起動時にスタートアップでWindowsアプリが動くように細工したところ CLRの処理時間を80%ほど削減することができました。 ここで疑問なのが「JITコンパイルされたモジュールはいつクリアされるのか」です。 通常、OS再起動後初めて.NETアプリを動かすと非常に起動時間がかかりますが 同様のアプリを再度実行するとかなり早く起動します。 これはJITコンパイルされたモジュールがキャッシングされて利用されているからだと思いますが このキャッシュがクリアされるタイミングはOSが再起動されるタイミングなのでしょうか? それとも、OSを再起動しなくても一定時間でクリアされてしまうのでしょうか。 この情報にどうしてもたどり着けなかったので、質問させて頂きます。 答えや情報ソースなどご存知の方がいらしたら、教えて頂けませんでしょうか。 よろしくお願いします。 [ メッセージ編集済み 編集者: やんたん 編集日時 2005-01-07 14:15 ] | ||||
|
投稿日時: 2005-01-07 15:58
GotDotNet Japan 掲示板
姉妹スレリンク (w _________________ じゃんぬ @Home じゃんぬねっと @Blog じゃんぬねっと Blog [ メッセージ編集済み 編集者: じゃんぬねっと 編集日時 2005-03-15 19:53 ] | ||||
|
投稿日時: 2005-01-07 21:37
マルチポスト先で紹介されているスレッドで、この記事が紹介されており、その中に
と書かれていますね。 じゃぁ、何で2回目の起動は早いんだ?という答えが出ていませんが、ディスクキャッシュじゃないですかねぇ?ディスクから読み込むより、メモリにキャッシュしてある内容を読み込む方が早そうですから。 _________________ | ||||
|
投稿日時: 2005-01-09 13:06
Jittaさん、アドバイスありがとうございます。
ディスクキャッシュが2回目の起動を早くしている要因か調べてみますね。 ディスクキャッシュを小さくして(最小で512KBみたいですが)起動時間を計測してみます。結果はまたこちらに連絡させて頂きます! | ||||
|
投稿日時: 2005-01-09 15:28
> マルチポスト先で紹介されているスレッドで、この記事が紹介されており、その中に
その記事 2002/08/22 って事で .NET Framework 1.0についてではないでしょうか。 1.1は色々なパフォーマンス面の修正が入ってます #2.0にもそういった修正がはいってくるでしょう JITバイナリキャッシュがされないという結論にもってくにはソース記事の時期が ちょっと古い気がします。 | ||||
|
投稿日時: 2005-01-09 21:20
みゅみゅ。では、Ver1.1用の改訂版 http://www.atmarkit.co.jp/fdotnet/technology/idnfw11_05/idnfw11_05_04.html _________________ |
1