2011-07-14 16 views
0

私のwinformsアプリケーションは、共有上にある実行可能ファイルを実行する必要があります。 exeは約50MBです(これはsetup.exe形式のファイルです)。私のアプリは、さまざまな速度(いくつか高速ですが、いくつかの非常に遅い、ほとんど10baseTの速度のような)を持つ多くの異なるマシン/ネットワーク上で実行されます。ファイルをネットワーク経由で実行するか、最初にローカルにコピーする方が良いですか?

ファイルを直接共有から実行する方が良いですか、ローカルにコピーして実行する方が効率的ですか?私はユーザを悩ませるという点で話している。

答えて

1

ローカルより優れています。コピーはファイルの各バイトを1回だけ読み込みます。あなたが実行するときに、あなたはキャッシュなどのコードを再訪して、再び引っ張られるかもしれません。

セットアッププログラムとして、エンジンは何らかのCRCやその他の整合性チェックもしたいと思うでしょう。つまり、ファイル全体を読み込んでいます。

1

ネットワーク経由で実行するよりも、ローカルで実行する方が良いです。

1

アプリケーションが小さく、ランタイム中に多くの異なるリソースをロードする必要がない場合は、ネットワーク経由で実行することができます。ネットワーク上で実行すると、ファイルを手動でダウンロードすることに反対するコードが1回読み込まれ(メモリにダウンロードされてロードされる)、2つの読み取りコードを使用するため実行される可能性があります。たとえば、ネットワーク経由で時計ウィジェットアプリケーションを実行できます。

一方、アプリケーションがランタイム中に多くのリソースを読み込んだ場合、リソースの各読み込みがネットワークを経由するため非常に遅いため、ネットワーク経由でアプリケーションを実行することは絶対にお勧めしません。たとえば、おそらくあなたはネットワーク上でEclipseを実行したくないでしょう。

同時に考慮する必要があるもう1つの要因は、同時に複数のユーザーがアプリケーションにアクセスすることです。多くの場合は、アプリケーションをローカルにコピーしてそこから実行する必要があります。

0

OSは、実際に実行される前に、ファイルをローカルの一時フォルダにコピーすると考えています。コピーを取得した後はネットワークからの往復はありません。一度だけ実行されます。これはブラウザーの仕組みのようなものです。最初にファイルを取得し、ローカルに保存してから、ローカルの一時的な一時的な場所からファイルを保存した場合に実行されます。つまり、自分でコピーを保持しない限り、手動でコピーする必要はありません。

+0

ブラウザが異なります。もし彼らがキャッシュ(HTTPヘッダー属性)を有効にしている場合はサイトに依存します。そうでなければ、リクエストが行われるたびに常にデータを取得します。 –

関連する問題