タブ区切りの3,000行ほどのCSVファイルを CSV.table で読み込もうとすると非常に遅かったので CSV.read を試してみたところ100分の1程度で処理できました。

Benchmark.bm 10 do |r|
  r.report "read" do
    CSV.read(filename, col_sep: "\t", headers: true, header_converters: :symbol)
  end
  r.report "table" do
    CSV.table(filename, col_sep: "\t")
  end
end
                 user     system      total        real
read         0.050000   0.000000   0.050000 (  0.046571)
table        4.790000   0.010000   4.800000 (  4.814375)

CSV.tableは常にCSV.readに対してこれほど速度差があるのでしょうか、
それとも何か特別な原因がある時だけ遅くなるのでしょうか?