2016年2月22日 (月曜日)

17:05:34 # Life sha1の計算速度。 手元にあるいくつかの実装を比較してみた。openssl, gpg で使っている libgcrypt、そしてGitで他の実装がないときに使われれる block-sha1。 openssl の libcryptが corei7 でも raspberry pi でも一番高速で、block-sha1が一番低速だったけど一割くらいしか差がないので誤差範囲だなぁという印象。もっと倍速くらいかわるかと期待していたのだけど。 SHA1は順序に依存関係があるので、並列アルゴリズムとかはないっぽいので、大きなファイルのSHA1を計算するのは問題になる。よくあるのはブロックに分割してブロック単位でSHA1を取れば済むように設計するという手法みたい。Gitはその点ファイル全体のハッシュが高速にとれることに依存してしまっているので微妙だなぁ。 Raspberry Pi で 25MB/s くらい出て、Corei7では300MB/sくらい出てる気がする。

Junichi Uekawa