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

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

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

вывод всего, всмысле декодировать а потом что бы можно было шариться sed или там less, собсвенно можно и не докодировать весь только кусок, не принципиально.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB