No public Twitter messages.


Этот блог устарел и, скорее всего, больше не будет обновляться. В ближайшем будущем он переедет сюда.
24 августа 2013 // Программинг

Производительность простых парсеров for fun

Сегодня в скайп-конфе попросили написать простой парсер удаляющий из большого файла все строки содержащие определённое ключевое слово. Быстро набросал достаточно грубый скрипт на Node.JS, который разбивал все 550мб на массив по переносу строки и проверял каждый элемент в цикле и изумился — файл в 530мб и ~1.7млн строк нода умудрилась преобразовать всего за 3 секунды.

Вот его код:

fs = require('fs')

fs.readFile 'data.txt', 'utf8', (err, data) ->
  file = data.split '\n'
  out = ''

  for string in file
    if string.search('/partner/') is -1
      out += string + '\n'

  fs.appendFile 'node_out.txt', out, (err) -> console.error err

Время исполнения — 2,9 секунды.

Стало интересно, как с такой задачкой справятся другие языки и я попросил друга написать такой же парсер на Perl, а затем подтянулись спецы по другим языкам появились и варианты на Python, Bash и Java. Примеры кода и время исполнения следуют дальше: Дальше →

теги: , , , , , ,

2 комментария.



  • twitter
  • rss
  • хабр
  • жежека
  • ластфм