Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 9, 2011 19:37:07

DcDr
От:
Зарегистрирован: 2011-01-09
Сообщения: 61
Репутация: +  0  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

Lexander
erl
теперь из массива не могу нормальные данные достать, все перековеркалось.
В файле не латиница есть? Может быть просто с кодировками проблема, а не с массивом.
так вроде разговор о двоичном файле. или я чего то пропустил?



Офлайн

#2 Фев. 10, 2011 15:51:32

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

Я по быстрому накидал сегодня, времени особенно не было, но там ошибка. Завтра, если будет время, доведу до ума. Может сами доделаете.
Это у меня тестовые данные генерятся
http://pastebin.com/rnkvLZiR
А вот проход по записям
http://pastebin.com/GJPWVigW



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#3 Фев. 15, 2011 22:24:30

erl
Зарегистрирован: 2011-01-30
Сообщения: 42
Репутация: +  0  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

PooH
Я по быстрому накидал сегодня, времени особенно не было, но там ошибка. Завтра, если будет время, доведу до ума. Может сами доделаете.
Это у меня тестовые данные генерятся
http://pastebin.com/rnkvLZiR
А вот проход по записям
http://pastebin.com/GJPWVigW
Спасибо, ваш код работает, но улучшений не много с 7 минут до 4 минут.
Идея классная, код меня поразил, спасибо, но вот операции ввода-вывода у Python очень медленные.
И скорее всего ни чего с этим уже поделать нельзя.



Офлайн

#4 Фев. 16, 2011 06:16:29

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

erl
И скорее всего ни чего с этим уже поделать нельзя.
Можно код получения отдельных записей вынести в расширение на С, а обрабатывать уже на питоне. Все зависит от ваших требований к задаче.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#5 Фев. 16, 2011 15:11:22

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

erl
Идея классная, код меня поразил, спасибо, но вот операции ввода-вывода у Python очень медленные.
Хмм. С чего это им быть медленными, если там все на Си написано?

И скорее всего ни чего с этим уже поделать нельзя.
Вы пробовали?



Офлайн

#6 Фев. 16, 2011 16:29:55

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ускорение обработки двоичного файла

Да erl уже вторую неделю жалуется на жизнь, а сам даже пример данных не выложил.
PooH был вынужден писать сначала генератор, а потом уже проверять на нем код.



Офлайн

#7 Фев. 16, 2011 17:55:06

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

Да я в курсе. Просто не только данных не видел, но и попыток попрофилировать предоставленный код.
Только выводы непонятно откуда “операции ввода-вывода у Python очень медленные” и, как результат безысход “скорее всего ни чего с этим уже поделать нельзя.”

PS: Если будет время сегодня из дому попробую нагенерить 500 метров данных и попрофилировать. А то ‘за державу обидно’ :)



Офлайн

#8 Фев. 16, 2011 18:10:54

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

Ed
PS: Если будет время сегодня из дому попробую нагенерить 500 метров данных и попрофилировать. А то ‘за державу обидно’ :)
Я уверен все это можно сильно ускорить. И кстати, там по моему где-то ошибка. Просто я сейчас реально могу этому делу выделить где-то три раза в день по десять минут, а соображаю я довольно медленно.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#9 Фев. 16, 2011 18:22:30

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Ускорение обработки двоичного файла

Анекдот вспомнился.

Спрашивает молодой еврей:
- Ребе, помогите мне советом. Люблю девушку, хочу женится…
- Женись!
- Но она из бедной семьи, моя мама косо будет на это смотреть…
- Не женись!
- А я без неё жить не могу…
- Женись!
- И папа у неё - странный…
- Тогда крестись!
- Эээ. Зачем, ребе?
- Будешь не мне, а попу плешь проедать!



Офлайн

#10 Фев. 16, 2011 21:35:33

Ed
От:
Зарегистрирован: 2008-12-13
Сообщения: 1032
Репутация: +  13  -
Профиль   Отправить e-mail  

Ускорение обработки двоичного файла

Помедитировал над кодом erl. Может я не до конца понял, что надо, но вот, что получилось: http://pastebin.com/BC7Hwy3W
Сгенерил 2000000 записей слегка модифицированным скриптом от PooH. Файл получился такой:
$ ls -la out
-rw-r–r– 1 ed ed 543895062 Feb 16 19:49 out

Вот результат запуска:

$ time ./test70.py out

real 0m54.015s
user 0m28.642s
sys 0m5.236s
Запуск с профайлером показал, что масса времени уходит на кодирование перед выводом.
Заменил цикл вывода на это:
    for rno, record in gen_record(inf):
outf.write("%d %d\n" % (rno, len(record)))
Вот результат:
$ time ./test70.py out

real 0m22.812s
user 0m20.954s
sys 0m1.015s
Дальше копать нет смысла. Может у меня код не то делает, что нужно. erl, гляньте, плз.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version