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でログインしているので,
その辺も測定環境としては何とも言えない.
この結果で云々ということではなくて,
まあ,こんなものだっていう感覚だけ覚えておこう.