У меня есть простой текстовый файл, ~ 150 МБ.Мой код будет читать каждую строку, и если он соответствует определенным регулярным выражениям, он записывается в выходной файл.Но сейчас, просто требуется много времени, чтобы перебрать все строки файла (несколько минут), делая это как
File.open(filename).each do |line|
# do some stuff
end
Я знаю, что это цикл по строкам файла, которыйзанимает некоторое время, потому что даже если я ничего не делаю с данными в «#do что-то», это все равно занимает много времени.
Я знаю, что некоторые программы Unix могут анализировать большие файлы, такие как этот, почти мгновенно (например, grep), поэтому мне интересно, почему ruby (MRI 1.9) занимает так много времени, чтобы прочитать файл, и есть ли способ сделатьэто быстрее?