スタートアップ時に.NETコードを起動するVB6アプリケーションがあります。COM Interopコールドスタートを改善する
Windows XPマシンでは、コールドスタートに約22秒かかっています。ウォームスタートは同じマシンで約4秒です。
Windows Vista/7は、コールドスタートで約5秒、ウォームスタートで約3秒かかります。
上記に基づいて、私は遅延がディスクアクセスに関連し、Vista/7はSuperFetchの影響を受けていないと仮定しています。
明らかに、XPのコールドスタート性能を改善する必要があります。 Windows起動時にシステムトレイで実行される「ウォームアップ」アプリの作成を検討していますが、努力する前に他の提案があるかどうか確認したいと思っていました。
私はアセンブリを作成しようとしましたが、それは何の違いもないようです。
トレースコードを追加すると、VB6コードが.NET境界を通過するのに約1秒しかかかりませんが、.NETの初期化コードには約20秒かかります。それはいくつかの反射を行い、私は遅延がGACアセンブリをディスクからロードしていると推測しています...しかし、私は完全にはわかりません。
提案?
[.NET JITコンパイル済みコードはキャッシュされていますか?どこですか?](http://stackoverflow.com/questions/3295622/is-the-net-jit-compiled-code-cached-where) –
あなたは新しいマシンで実行しているものがないと確信していますか? )は、CLRを使用し、ブート時やログオン時に効果的に "プリロード"しますか?私は、ATIがビデオアダプタに関連するCatalystブランドのソフトウェアを購入して以来、このことを知っています。他のベンダーもこれをやっているかもしれません。 – Bob77
スプラッシュ画面は何ですか:) – tcarvin