Уведомления

Группа в Telegram: @pythonsu

#1 Июль 13, 2011 00:18:54

nightfog
От:
Зарегистрирован: 2011-04-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

обработка файла в несколько потоков

вопрос больше алгоритмический, есть некий бинарный файл размером в несколько гигабайт, данные хранятся кусками по несколько килобайт
есть сервер с несколькими процессорами и кучей ядер и есть много оперативной памяти, достаточно много чтобы засунуть файл в ram диск несколько раз. данные в файле это допустим содержимое ip пакетов, на текущий момент разбор такого файла стандартными средствами занимает много минут. Дисковой нагрузки вообщем нет, тем более что файлик лежит в ram диске, хотя время распаковки что на ssd диске что в памяти практически идентично.

Вопрос как открыть файлик в несколько потоков, распаковать содержимое пакетов и вывести все это дело сохраняя порядок, да и вообще стоит ли игра свеч.

спасибо.



Офлайн

#2 Июль 13, 2011 06:41:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

обработка файла в несколько потоков

nightfog
да и вообще стоит ли игра свеч
на этот вопрос отвечает профилировщик
http://docs.python.org/library/profile.html
Судя по описанию основные затраты времени в декодере, паралелиться будет идеально. Т.е. паралелить смысл есть, а открывать файл несколько раз - нет.
Правда требует пояснений фраза
nightfog
сохраняя порядок
и фраза
nightfog
и вывести все
.



Офлайн

#3 Июль 13, 2011 09:49:53

nightfog
От:
Зарегистрирован: 2011-04-18
Сообщения: 5
Репутация: +  0  -
Профиль   Отправить e-mail  

обработка файла в несколько потоков

doza_and
nightfog
да и вообще стоит ли игра свеч
на этот вопрос отвечает профилировщик
http://docs.python.org/library/profile.html
Судя по описанию основные затраты времени в декодере, паралелиться будет идеально. Т.е. паралелить смысл есть, а открывать файл несколько раз - нет.
Правда требует пояснений фраза
nightfog
сохраняя порядок
и фраза
nightfog
и вывести все
.
под порядком позразумевается то что одно из полей содержит время и когда смотришь поток вывода , вывод должен быть остсортирован то есть накладывает дополнительный overhead на сортировку.

вывод всего, всмысле декодировать а потом что бы можно было шариться sed или там less, собсвенно можно и не докодировать весь только кусок, не принципиально.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version