7

私が作成した約 5 つの参照アセンブリと、サード パーティによる約 8 つの参照アセンブリを持つ WinForms アプリケーションに取り組んできました (何かひどく問題が発生しない限り、将来的には更新する予定はありません - Infragistics/DevExpress コンポーネント! )。

私たちの起動時間は、コールド ブーツでは少し長すぎます。私が疑問に思っているのは、コールド ブーツを Gac に追加して ngen 化する方法があるかどうかです。

NGen キャッシュにインストールする場合、gac にもある必要がありますか? 2つの関係は何ですか?どれを目指せばいい?exe が 1 つあり、ILMerge を実行しますが、それがシナリオで機能するかどうかはわかりません - 長い話です。

また、私のexeがどれだけのメモリを消費しているかを取得することは可能ですか - Javaアプリケーションが行うのと同じように(Netbeansのように!)

4

3 に答える 3

0

.netFrameworkの3.5SP1を使用していない場合は、そのプラットフォームでのベンチマークを検討して、違いが生じるかどうかを確認する必要があります。アプリの起動時間を改善する可能性のある改善が行われました:.NET Framework3.5SP1でのCLRの最適化

この記事には、いくつかの優れた一般的なガイドライン、ngenのベストプラクティス、およびアセンブリのリベースを回避するための秘訣も含まれています(ただし、使用している5つほどの参照アセンブリでは、奇跡を期待しないでください)。

ただし、他の場所で簡単な修正を見つけるのではなく、特定のアプリの特定のボトルネックを探すことで、起動時間を大幅に短縮できる可能性があります。

于 2009-06-25T06:22:17.700 に答える
0

あなたの問題定義は、どういうわけかあなたの解決策を暗示しているように思えます ☺</p>

言い換えれば、アセンブリの読み込みから起動時間が来ることをどうやって知るのでしょうか?

あなたがすべきことは、アプリをプロファイリングして、それが事実であることを確認することです. それは可能ですが、いくつかの初期化が進行中で、間違った場所を最適化することに集中しすぎている場合はどうなるでしょうか?

アンマネージド アプリのプロファイリングに役立つツールをいくつか紹介します。

Winforms アプリについて話しているので、Visual Studio があると仮定します。その場合は、そのプロファイラーをマネージド アプリに使用できます。

幸運を!

于 2009-06-25T05:03:12.660 に答える