2012-02-28 5 views
4

Windowsフォーム(.net 4)アプリケーションに問題があります。クライアントの1人は、ネットワーク共有からアプリケーションを実行したいと考えています(同時に20〜300人のユーザーがアプリを使用できます)。私たちは、それがネットワーク共有から実行している.netアプリケーションのパフォーマンスに関する問題

<loadFromRemoteSources enabled="true" /> 

これは、プログラムを起動すると、しばらくした後、ユーザーが作業することができますしばらく時間がかかりますがapp.configをするために、この行を追加することにより、仕事を得ることができました。残念ながら、彼らはアプリケーションがしばらく使用されておらず、再び使用したいときは、応答が非常に遅い(アプリケーションを起動するのに約1〜3分かかることに注意しました)。少なくともそれは私がコンサルタントから聞いたことです。

私はおそらく次の月曜日にそれ自身を見ることができますが、最初にすべての私は知っているしたいと思います:

  1. この動作正常であり、もしそうなら、なぜですか?
  2. この問題の調査にはどのツールを使用しますか?
+0

ローカルディスクからアプリを「起きる」にはどのくらい時間がかかりますか? –

+0

アプリケーションがインストールされ、クライアントマシンで実行されているときに、このような動作(フリーズ)に気付かなかった。 – krolik

答えて

3

管理対象外のexeでは、アプリケーションがしばらく使用されていない場合、ページアウトされます。コードを含むページは、exeまたはdllからリロードできるため、単に破棄されます。アプリケーションの使用を再開すると、ページインされ、これにはしばらく時間がかかります。アプリケーションがネットワーク共有から実行されている場合、このページングは​​ネットワーク経由で行われ、非常に遅くなる可能性があります。 editbin /swaprun:netを使用して、IMAGE_FILE_NET_RUN_FROM_SWAPフラグを設定することで回避できます。

C#アプリはもう少し複雑です。 exeとdllはまだメモリマップされていますが、すべてのコードはILから実行時に生成されます。このJITtedコードはローカルページファイルにページされますが、リソースやメタデータは破棄され、ネットワークからの要求に応じてページインされます。遅さを説明するかもしれない。

しかし、推測するのではなく、procmonを実行し、あなたのアプリが何をしているかを見てください。

関連する問題