nightfog
Июль 13, 2011 00:18:54
вопрос больше алгоритмический, есть некий бинарный файл размером в несколько гигабайт, данные хранятся кусками по несколько килобайт
есть сервер с несколькими процессорами и кучей ядер и есть много оперативной памяти, достаточно много чтобы засунуть файл в ram диск несколько раз. данные в файле это допустим содержимое ip пакетов, на текущий момент разбор такого файла стандартными средствами занимает много минут. Дисковой нагрузки вообщем нет, тем более что файлик лежит в ram диске, хотя время распаковки что на ssd диске что в памяти практически идентично.
Вопрос как открыть файлик в несколько потоков, распаковать содержимое пакетов и вывести все это дело сохраняя порядок, да и вообще стоит ли игра свеч.
спасибо.
doza_and
Июль 13, 2011 06:41:39
nightfog
да и вообще стоит ли игра свеч
на этот вопрос отвечает профилировщик
http://docs.python.org/library/profile.htmlСудя по описанию основные затраты времени в декодере, паралелиться будет идеально. Т.е. паралелить смысл есть, а открывать файл несколько раз - нет.
Правда требует пояснений фраза
nightfog
сохраняя порядок
и фраза
nightfog
и вывести все
.
nightfog
Июль 13, 2011 09:49:53
doza_and
nightfog
да и вообще стоит ли игра свеч
на этот вопрос отвечает профилировщик
http://docs.python.org/library/profile.html
Судя по описанию основные затраты времени в декодере, паралелиться будет идеально. Т.е. паралелить смысл есть, а открывать файл несколько раз - нет.
Правда требует пояснений фраза nightfog
сохраняя порядок
и фраза nightfog
и вывести все
.
под порядком позразумевается то что одно из полей содержит время и когда смотришь поток вывода , вывод должен быть остсортирован то есть накладывает дополнительный overhead на сортировку.
вывод всего, всмысле декодировать а потом что бы можно было шариться sed или там less, собсвенно можно и не докодировать весь только кусок, не принципиально.