C++/CLI を介して C#.NET 2.0 DLL でビルドされたインプット メソッド (IME) プログラムがあります。IME は常に別のアプリケーションに接続しているため、C#.NET DLL はイメージ アドレスのリベースを回避できないようです。
ngen を適用してその C#.NET 2.0 DLL のネイティブ イメージを作成し、グローバル アセンブリ キャッシュにインストールしましたが、あまり改善されず、約 12 秒かかりました。9秒まで。遅い PIII レベルの PC で。
したがって、起動時に C#.NET DLL によって参照されるすべてのコンポーネントをロードする小さなアプリケーションを使用して、その DLL のネイティブ イメージを "ウォームアップ" します。読み込み時間を 0.5 秒に短縮することは問題なく機能します。
しかし、それはしばらくの間しか機能しませんでした。約30分 後で、再び「クールダウン」するようです。
GAC またはネイティブ イメージの動作を常に「ホット」に制御する方法はありますか? これはまさにイメージアドレスのリベースの問題ですか?