LINUX.ORG.RU

Ruby «IO.foreach» vs Python «for line in file»

 ,


0

2

Заметил тут, что такой код на руби:

File.foreach('1.txt') do |line|
  p line
end

по быстродействию отсасывает у такого кода на питоне:

file = open('1.txt')
for line in file:
    print line

Причём не на доли процента, а где-то на порядок. Размер файла в районе трёхсот мегабайт. Как правильно на руби обрабатывать такой файл построчно ?

★★

p line

По-вашему puts аналогично print?

Исправил p, получилось всего 1.5 раза.

anonymous
()
Ответ на: комментарий от spiro

даже ruby -rprofile -e «$(xsel - o)» >/dev/null с вами не согласен (1.txt ~10^6 чисел):

  %   cumulative   self              self     total
 time   seconds   seconds    calls  ms/call  ms/call  name
 43.39    18.83     18.83        1 18830.00 43400.00  IO#foreach
 42.12    37.11     18.28  1000000     0.02     0.02  Kernel.p
 14.49    43.40      6.29  1000000     0.01     0.01  String#inspect
  0.00    43.40      0.00        1     0.00     0.00  Fixnum#<
  0.00    43.40      0.00        1     0.00 43400.00  #toplevel
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.