2013-05-17 3 views
6

wpfプログラムでは、同じ仕様の別のコンピュータの起動パフォーマンスに関して奇妙な問題があります。 1台のコンピュータでプログラムが1秒未満で読み込まれます。 同じ仕様の別のコンピュータには10秒以上の負荷がかかります。WPFプログラムは1台のコンピュータで超高速起動しますが、別のコンピュータで超高速起動します

Visualstudioパフォーマンスプロファイラの助けを借りて、私は2台のコンピュータがプログラムを別々に読み込むことに気付きました!それはとても奇妙です。

私の問題は、基本的には、この記事と同じです: はC# WPF Very slow application launch

「速い」コンピュータ(私は速いプログラムを起動する意味)のパフォーマンスプロファイラは、プログラムがSystem.Windows.Applicationから始まることを示しています。 Run() "slow"はSystem.Windows.Applicationで始まることを示します。 RunInternal(...)

2つのコンピュータが同じ仕様であり、ソースコードが同じであっても、ブーツの時間が10倍に増えました。 (実際には、単純なmvvmライトWPFの開始ファイルです)

アイデア?

+4

'Run'は' RunInternal'を呼び出します。だから私はそれは赤いニシンだと思います。 –

+0

おそらく、この[SO post](http://stackoverflow.com/questions/7610009/wpf-warm-appdomain-startup-performance-application-runinternal-xamlreader-load)があなたを助けるつもりです。これは実際には本当の答えではありませんが、アプリケーションの起動方法を最適化できる方法を示しています。 – DHN

+0

@KentBoogaart私はRunInternalをRunInternalと知っています。しかし、最初の手でRun()を呼び出すのではなく、遅いRunInternalを直接呼び出しているようです。 – user2127480

答えて

0
  1. ログに記録されない例外(アプリレベル)をログに記録します。
  2. の両方のコンピュータのユーザーが同じレベルの権限を持っているかどうかを確認します(どちらも管理者、またはそうでないユーザー)。

これは役に立ちます。

0

その他の点検はウイルス対策の可能性があります。 1台のマシンはリアルタイムAVを実行していますか?両方のユーザーが同じグループのメンバーにログインしていますか?両方のマシンは同じOUにありますか?

0

両方のコンピュータにサービスが実行されていることを確認します。 2つのシナリオで両方のCPU使用状況を確認するには、アプリケーションを実行し、アプリケーションを終了してください。

関連する問題