[PHP-users 33027] Re: ファイルの内容が同一のファイルを検索するには

天野 潔 kiyoshi.amano @ nifty.com
2007年 12月 13日 (木) 16:08:09 JST


天野です。

これは php の問題ではなく、ハッシュ値の計算ロジック上やむをえないことだと思い
ます。

ファイルのハッシュ値を求めるには、該当ファイルをすべて読み込んでそれをハッシュ
値に変換しています。
ですから、毎回ハッシュ値を求めて比較するということは、オリジナルファイルを比較
するより却って時間がかかります。

つまり、ハッシュ値で比較するのであれば事前にハッシュ値のリストを用意していなけ
れば、時間の短縮になりません。



>ごろ猫と申します。
>
>PHP5を使っています。
>ファイルの内容が同一(ファイル名が異なる)のファイルを検索するプログラムをPHPで作
>ろうと思っています。hash_fileという関数がありますので、その関数でハッシュ値を抽出
>して重複チェックを行う事を考えています。
>
>しかし、hash_fileで1G(ギガ)位のファイルハッシュ値を求めると2分くらいかかるよう
>で大量にあるファイルを処理できません(md5,sha256の両方で試しました)。ハッシュ値な
>ので100%の同一性は求めません(無理なので)が、もっと高速に実行する方法は無いので
>しょうか?
>
>フリーの重複チェックプログラムについては、もっと高速に行っているようです。
>何かご存知の方はご回答いただけると幸いです。
>_______________________________________________
>PHP-users mailing list  PHP-users @ php.gr.jp
>http://ml.php.gr.jp/mailman/listinfo/php-users
>PHP初心者のためのページ - 質問する前にはこちらをお読みください
>http://oldwww.php.gr.jp/php/novice.php3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
天野 潔 <kiyoshi.amano @ nifty.com>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━


PHP-users メーリングリストの案内