Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 20, 2013 14:32:09

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

Master_Sergius
И в данном случае, надо убедиться, что в первой колонке - формат даты соответсвует нуждам
нужно сделать генератор первых полей и пропустить их через генератор совпадений с регулярным выражением в all()

Master_Sergius
Вот здесь надо убедиться, что скрипт с такими-то опциями прошел успешно.
нужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения

Master_Sergius
Поковырялся с mmap - в общем почти то, что нужно.
mmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно



Офлайн

#2 Ноя. 20, 2013 15:26:37

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

py.user.next
нужно сделать генератор строк и пропустить их через конечный автомат, в котором в разных состояниях разные регулярные выражения
Вот с этого места поподробней )

py.user.next
mmap загружает всё в оперативную память, а та начинает свопиться, когда её не хватает - это всё медленно и затратно
Файл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#3 Ноя. 20, 2013 18:07:15

image
От: Иркутск
Зарегистрирован: 2013-09-10
Сообщения: 8
Репутация: +  0  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

Master_Sergius
Вы писали, что изначально реализация все складывала в одну строчку и совпадения искал grep и это работало. Видимо я что-то недопонял.. Почему нельзя сейчас проделать тоже самое только вместо grep использовать findstr?

Офлайн

#4 Ноя. 20, 2013 19:03:33

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

Image
Фокус в том, что теперь нужные куски могут располагаться в несколько строчек. Просмотрите всё общение по этому вопросу )



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#5 Ноя. 21, 2013 00:17:13

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9873
Репутация: +  853  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

Master_Sergius
Файл на 1,3 гб прочесал за 22 секунды, полностью (для проверки сделал регулярку, где нет совпадений)
открыл и прочитал файл через mmap() - всё свопится, как и предполагалось

Master_Sergius
Вот с этого места поподробней )
wiki. пример конечного автомата



Офлайн

#6 Ноя. 26, 2013 15:09:28

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

Поиск по шаблону в очень большом файле

И всё-таки она вертится!

В общем, Я ещё потестил на некоторых тачках, а также в виртуалках. Оказалось, что тот креш на фришке 7.3 с пайтоном 2.6.4, он только на той тачке и появляется. Пока причин не удалось установить, но повсюду он работает. Даже на такой же другой тачке (железо тоже приблизительно такое же). Короче говоря, mmap - решение данного вопроса. Можно тему закрывать, но не знаю как )



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version