- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!lsにかかる時間
@mogmodが,
https://twitter.com/mogmod/status/352022431986221057
とつぶやいていたので,ためしてみたけどそんなに遅くない.
手元のはext4だった.で計ってみると
{{ref_image ls.png}}
という結果に.
赤い方は,
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でログインしているので,
その辺も測定環境としては何とも言えない.
""
この結果で云々ということではなくて,
まあ,こんなものだっていう感覚だけ覚えておこう.
""