重要なお知らせ

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

【GOLF me!】初月無料お試し

こんにちは。現在Rubyの学習中です。Rubyに限らずプログラムに関しての質問なのですが、ファイルを保存する場所によって処理速度は変わるのでしょうか。

CドライブにOSが入っていると知りました。Rubyのプログラムを動かすには、Ruby本体とプログラムファイルが必要ですが、これら二つはやはりDドライブよりもCドライブに保存した方が処理速度は速いのでしょうか。よろしくお願いします。

A 回答 (2件)

物理的なディスクが何かによります。


一般的には、1つのハードディスクをCドライブとDドライブに分けて使用することが多いですが、この場合には同じハードディスクを使用しているのでほとんど差は無いでしょう。プログラムと処理データをCドライブに配置するとハードディスクの構造上、読取りヘッドが位置決めをするための時間がごくわずかに減少するかもしれませんが人が速くなったと認知できるほどの改善はまず期待できません。
Cドライブがハードディスクで、DドライブがUSBメモリなどである場合には、プログラムの処理データが大きいほど(300MBなど)、処理時間が短縮されることが期待できます。これは、ハードディスクよりもUSBメモリの方が読み書きにかかる時間が短いためです。
このため、WindowsではUSBメモリの高速性を利用した高速化機能Readyboostがあります。

もっとも、速くなっても意味(価値)があるのか・・・? という問題は残ります。

現代では、実用性や利便性、特に経済性が優先されるので、必要に迫られないかぎり高速化を考える必要はありません。プログラムが実用的な処理時間の範囲内で結果を返せるなら、内部の処理効率が悪いことを気にするのは無益です。Rubyなどを使うのなら、生産性(経済性)が高いことが最重要なのですから。
また、プログラムの処理速度が遅いときに、プログラムを改善するよりも、ディスクをSSDに置換える、メモリを増設する、CPUを増設または置換える方が経済的であることが多々あります。もっとも、扱うデータ量が多い場合はプログラムが遅いことによって失われる時間などが大きくなる場合には、プログラムを改善するべきでしょう。

というわけで、やや批判的になりますが、プログラムの実行速度を気にするよりもプログラムの恩恵(貢献)を重視してくださいが結論です。
# まあ、チューニングして目に見えて高速化したときは、うれしいですよね♪
    • good
    • 0
この回答へのお礼

なるほど!
CドライブとDドライブが同じハードディスクに存在している場合はほどんど差異はないのですね。非常に分かりやすい回答で理解できました。ありがとうございました。

お礼日時:2011/09/24 04:04

「他の要因によるものの方が影響が大きいので、ファイルの場所による違いなど誤差のうち」でしょう。

    • good
    • 0
この回答へのお礼

他の要因とはプログラムのアルゴリズムのことですよね。
回答ありがとうございました。

お礼日時:2011/09/24 04:02

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