Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> архивирование больших файлов при помощи pyLZMA, архивирование больших файлов - LZMA 
V
    Опции темы
pythonwin
Дата 6.6.2006, 12:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Всем доброго времени суток!

Предлагаю рассмотреть код и прошу всех помочь "ускорить" работу скрипта, не снижать уровень сжатия (желательно даже увеличить, если можно):

Код

import pylzma
import time, profile
d1=time.time()
f=open('C:\\Big_File.my','rb',2**20*20)
f1=open('C:\\Big_File.my.7z','wb',2**20*20)
j=-1
while True:
##    s1=f.readline()
    s1=f.read(2**20*10)
    if not s1: break
    j+=1
    print j, len(s1)
    f1.write(pylzma.compress(s1, dictionary=25, fastBytes=128, literalContextBits=4, literalPosBits=2, posBits=2, algorithm=2, eos=1, multithreading=1, matchfinder='bt4'))
f.close()
f1.close()
d2=time.time()
print '-'*50
print d1, d2, d2-d1
raw_input()


размер файла C:\\Big_File.my == 800Мб
  

Это сообщение отредактировал(а) pythonwin - 6.6.2006, 12:39
PM WWW GTalk Jabber   Вверх
pythonwin
Дата 6.6.2006, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Для примера файл может быть создан:
Код

f=open('C:\\Big_File.my','w',2**20*100)
for x in range(3276800):
    f.write('1'*256+'\n')
    print x
f.close()


 
PM WWW GTalk Jabber   Вверх
setq
Дата 6.6.2006, 14:32 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Почему не pylzma.compressfile()? 
  Вверх
pythonwin
Дата 6.6.2006, 14:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



а чем он лучше? 
PM WWW GTalk Jabber   Вверх
slav0nic
Дата 6.6.2006, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 129
Регистрация: 17.5.2006

Репутация: 4
Всего: 5



pythonwin, lzma жмёт хорошо, но поему зип быстрее... + зависит от типа сжимаемой инфы, короче если тебе важна скорость, то наверно лучше юзать gzip 
--------------------
                                 python.com.ua 
PM MAIL WWW Jabber   Вверх
pythonwin
Дата 6.6.2006, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Приоритеты:
1) уровень сжатия
2) скорость
3) загрузка железа

Данные:
папка, в которой есть много разных файлов: и архивы, и рисунки, и текстовые файлы разных форматов (txt, doc, xls и др.)

 
PM WWW GTalk Jabber   Вверх
setq
Дата 6.6.2006, 16:37 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered












Цитата(setq @  6.6.2006,  14:32 Найти цитируемый пост)
Почему не pylzma.compressfile()?  


Цитата(pythonwin @  6.6.2006,  14:48 Найти цитируемый пост)
а чем он лучше?  


http://www.joachim-bauch.de/projects/python/pylzma/ до конца (примеры) 
  Вверх
J2A
Дата 7.6.2006, 06:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 171
Регистрация: 17.11.2005
Где: Омск

Репутация: 16
Всего: 18



Производительность упирается в pylzma.compress. Быстрее чем он сжимает данные, твой скрипт не заработает. 

Это сообщение отредактировал(а) J2A - 7.6.2006, 06:29
--------------------
Be easy, stay cool
PM MAIL WWW Jabber   Вверх
pythonwin
Дата 12.6.2006, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



Спасибо за помощь! smile  
PM WWW GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0638 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.