重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

4TBのデータのハッシュ値の算出はbashやcmd.exeでやるよりPythonでやった方が速く終わるのでしょうか?

質問者からの補足コメント

  • 11月9日の10時以降にこの質問のベストアンサーを選びます!

      補足日時:2024/11/07 11:12

A 回答 (1件)

・ほとんど変わらない


・Pythonの方が遅い
・bash、cmd.exeの方が遅い または 算出できない
のいずれか。


「4TBのデータのハッシュ値の算出」するためには
(1)ファイルからデータ読み込む
(2) (1)のデータに対してハッシュを計算する
という手順が必要です。


(1)一番時間がかかるのは、ファイルからの読み込み。
一般にファイルへのアクセスは内部処理速度に比べて桁違いに遅い。
この速度はハードウェアに起因するものなので、ソフト側の違いはほとんど無い。
よって、bashだろうがPythonだろうがほぼ同じ時間がかかる。


(2) 計算方法に何をどう使うか次第。
純粋に「bash,cmd.exeだけ」で計算するのは「ほぼ無理」。
sha256sum 等のコマンドは、bashのコマンドではなく「実行ファイルをbashから実行している」にすぎない。
純粋な「bashのコマンド」と言えるのは、マニュアルの「組み込みコマンド」に書いてあるものだけ。
https://ja.manpages.org/bash
簡単なものならなんとかできなくもないが、現在主流になっているようなものだとほぼ無理。できたとしても使いものにならいくらい遅くなると思われる。

Pythonも同じ。
計算部分を「純粋なPythonだけ」で書けなくもないが、おそらく遅くなる。
標準ライブラリにある hashlib モジュールでは、計算部分は前に回答したような方法でC言語で書かれている。
https://oshiete.goo.ne.jp/qa/13956361.html
これらを使う場合は、計算部分は sha256sum 等のコマンドと大差無い。


まとめると

・Pythonでハッシュ計算モジュールを使う
・bash,cmd.exe から ハッシュ計算コマンド(外部プログラム)を実行する
が同程度

・純粋にPythonだけでハッシュ計算する
がそれより遅くなり

・純粋にbash,cmd.exe だけでハッシュ計算する
がさらに遅い、または無理。

となります。


・純粋な bash,cmd.exe

・bash,cmd.exe から実行される外部コマンド
は分けて考えましょう。

PythonもC言語も
・言語に組込まれた機能
・インストールしたら標準で付いてくるライブラリ
・別途インストールする必要のあるライブラリ
は分けて考えた方がいいでしょう。

最近の他の質問でもそうですが、どの意味で使っているかによって回答が違ってきます。
    • good
    • 2
この回答へのお礼

ありがとう

ご回答ありがとうございました

お礼日時:2024/11/10 11:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A