2011-08-09 6 views
2

私たちのユーザーは過去数ヶ月間、WinFormsアプリケーションのパフォーマンスについて不満を抱いています。 WinFormsのパフォーマンスを向上させる方法については、Web上に多くの記事がありますので、私はこれらの明白な提案を探していません。ユーザープロファイルを切り替えると、WinFormsのパフォーマンスが向上するのはなぜですか?

私には、うまくいくと思われるブードーの解決策がありますが、理由はありません。単にユーザーを切り替える、つまりログアウトしてから、以前にログインしたことのないユーザーでマシンにログインしてからアプリケーションを起動すると、誰もが気に入っている素晴らしいパフォーマンスが得られます。

問題は、なぜそれが動作するのかわかりません。私たちはAppDataディレクトリには何も書きません。私たちのログファイルはすべて実行ディレクトリにあります(これは悪い習慣ですが、私たちはXP上で動作しており、アプリケーションは数年前に構築されています)。私たちはレジストリに書いているわけではないので、それもできません。

私がウェブ上で見つけた最高のものは、「一時ファイルをクリアする」という非常に曖昧な主張ですが、そのためにプロセスの変更を推奨することはできません。

+0

パフォーマンスの向上はアプリにのみ行われましたか?マシンにインストールされている別のアプリはどうですか? – Martheen

+0

わかりません。私たちのビジネスの性質上、クライアントごとに1つのミッションクリティカルなアプリケーションを実際に実行する必要があります。当時は他に何も動いていません。しかし、おそらく私はそれらが遅い時にIEや何かを開いてポップアップさせてから、私たちがユーザーを切り替えた後にもう一度チェックします。 –

+0

ログアウトするとすべてのプロセスが終了します。古いXPマシンでは断片化したページングファイルが有名です。 SysInternalsのPageDefragツールを確認してください。 –

答えて

2

標準ユーザーには、マシンのバックグラウンドで実行されるいくつかの追加プロセスと、あなたのパフォーマンスを盗むプロセスがあるかもしれません。 これまでWindowsの保護モードでアプリケーションを実行しようとしましたか?

2

Red Gate Performance Profilerなどの専門的なアプリケーションを使用して問題を詳細に診断できますが、無料ではありませんが、試用期間は14日間です。しかし、ここでいくつかの一般的な\可能性のある問題である:

  • チェックアウト、アプリケーションの仮想メモリ、多分あなたがあなたのタスクマネージャを実行し、[パフォーマンス]タブに移動し、PFの使用状況を見ることができ予告なしに繰り返し増加します。..コード内で、オブジェクトまたはリソースを破棄または閉じることなしに、Disposableオブジェクトまたはリソースを作成しているかどうかを確認します。
  • Log4Netのようなよりプロフェッショナルなライブラリを使用する必要がありますが、自分自身でログを記録する場合は、EventLogを使用するように切り替えて、非同期でログを作成してみてください。
関連する問題