2016-05-09 8 views
0

それが短いとしっかり作るために:MD5生成 - ウェブAPI

私は、特定のファイルのMD5を返すAPIを持っています。ファイルのサイズは約50〜100 MBです。今、私の質問は:

少ないリソースを必要とするどのような/より良い文体である:すべてのためのファイルのMD5を生成

  1. は、MD5にGETがそれとを要求する最初の時間を生成
  2. をGET変更のFileSystemWatcherでファイルを見ると、ファイルが

を変更する場合には、MD5を生成することは何度過熱を作り出すことができることを私に言われたMD5をリフレッシュ。

+4

第2は常に優れており、計算量が少なく高速です。 – BWA

+0

計算による過熱?それは現代のコンピュータにとって本当の問題ですか? –

+0

@aaaabbbb私たちは、デスクトップアプリケーションではなく小さなWebアプリケーションについて話しています。それほど控えめにする方法があれば、なぜメモリと処理能力を無駄にするのでしょうか? C#が非常に優れていても、アプリケーションを開発するときはパフォーマンスに注意する必要があります。 – chris579

答えて

2

第2のオプションは、ファイルがどのくらいの頻度で変更されるかに依存します。

MD5のハッシングは、ほとんどの処理に費やされます。 MD5でファイルをハッシュする以外に選択肢がない場合は、できるだけ多くの操作を行う必要があります。理想的なシナリオは、オプション2の場合とまったく同じです。

ファイルが変更されないと想定していますが、過熱を発生させる可能性は、オプション1よりはるかに低いはずです5分ごとに1回ファイルを変更した場合でも同様です。

+0

フォルダの内容は散発的にしか変わらないので、2番目のオプションは間違いなく良いでしょう。ヒントありがとう! – chris579

0

MD5を事前に計算し、メインファイルとともにMD5を保存することをお勧めします。

最初の呼び出しで動的に計算すると、簡単に回避できる複雑さと処理時間が追加されます。

+0

それは良い、あなたが正しいだろう。しかし、ファイルが頻繁に変更されないので、webadminが一度だけ生成するよりも毎回md5を生成する方が迷惑でしょう。本当のビジネスソリューションを作る必要があるのなら、あなたが言ったようにそれをやるだろうが、これは会社で使われていないので、一世代は受け入れられると思う。 – chris579

関連する問題