トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2013-7-2

lsにかかる時間

@mogmodが,
https://twitter.com/mogmod/status/352022431986221057
とつぶやいていたので,ためしてみたけどそんなに遅くない.
手元のはext4だった.で計ってみると

という結果に.
赤い方は,

require 'benchmark'

10000.times{|i|
 100.times{|j|
   system("touch file#{i}_#{j}")
 }
 puts (i*100).to_s + " " + Benchmark.measure{ system("ls > /dev/null") }.to_s
}

として計測した結果をプロットしたもので,
緑の方は,10000個,100000個,150000個ファイルを作って,
普通にlsしたときのウォールクロック時間をプロットしたもの.

ちなみに,調べてみるとext4ではH-tree(とWikipediaには書いていある)を採用して
探索性があがっている,ということ.
lsだとあまり関係ないような気もするけど.
グラフだと,出力にかかっているコストの影響が強いようにみえるし.
ちなみに測定したマシンへはsshでログインしているので,
その辺も測定環境としては何とも言えない.

この結果で云々ということではなくて,
まあ,こんなものだっていう感覚だけ覚えておこう.