16

簡単な.net WPFアプリケーション (小さなウィンドウが 2 つしかない) を作成しましたが、起動が遅すぎます (約 10 ~ 20 秒)。

プロファイラーは次のように述べています。

  • Main->RunInternal(56%)
  • Main->RunInternal->ctor->LoadBaml(32%)

アプリケーションの読み込み時間の最大の部分は、関数の本体ですMain->RunInternal。これは私の関数ではなく、彼らが何をするのかわかりません。それらの実行時間をどうにかして最適化することはできますか?

Baml マークアップの読み込みには全体の 32% の時間がかかりますが、私のプログラムには 3 つの XAML ファイルしかなく、含まれるコードは 100 行未満です。このアクションに時間がかかるのはなぜですか?

質問する前に、これらのトリックを読んで試してみましたが、役に立ちませんでした:

では、アプリケーションの開始時間を短縮するにはどうすればよいでしょうか?

ありがとう。

PS。このプログラムを 2 台の同様のコンピューターでテストしましたが、結果は同じです。

4

3 に答える 3

4

上記のコメントで言及された記事を見てください。

8 (Authenticode) だと思いますが、参照しているアセンブリによって異なります

于 2013-04-30T12:33:07.573 に答える
1

私も同じ問題を抱えてる。RunInternal を使用した Google では何も得られません。

次に、以前のコードをバックアップし、ウィンドウが残るまでアセンブリとファイルを削除しようとしました。

起動時間が 10 秒から 1 秒に短縮されました。

今回は、プロファイラーは RunInternal ではなくSystem.Windows.Application.Run()のみを表示しました。

このコンピュータでは、バグのある (遅い) バージョンを再インポートした後でも、正しく動作したのは非常に奇妙です! 一方、上記の修正を行っていない私のラップトップは、プログラムを10秒以上起動します。

于 2013-05-17T05:29:33.843 に答える