Войти

Показать полную графическую версию : Перепаковка пакетов драйверов


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 [22] 23 24 25 26 27 28

ya158
06-06-2010, 19:57
это я и сделал. А некачающееся стОит убрать из шапки, вор избежание ненужных вопросов. »
Некачающийся RPDRIVERS291.7z - это скрипт автора темы Fanzuga. Видимо когда мне передали тему сам скрипт изчез. Могу поискать где-нибудь его, но он не поддерживает последние паки, да и основные наработки в нём собственно мои. Если никому этот скрипт не нужен - я удалю на него ссылку.

И все соглашались с автопредлагаемым именем сборника графики... а я отказался... тогда скрипт видео озадачил меня вопросом »
Да это моя ошибка - перевыложил.

ShaddyR
15-06-2010, 13:20
ya158, дык, если
он не поддерживает последние паки »
то и нужды в нем нет. Оставить для истории - знач., написать в шапке, что "данный скрипт подходит для устаревших версий драйверпаков по такую-то включительно, для новых качать версию DelLangDP"

ya158
16-06-2010, 20:51
Добавил в шапку старый скрипт RPDRIVERS291.7z от Fanzuga для истории :).

BadPointer
18-08-2010, 09:22
Не заметил эту ветку, мне следовало сразу сюда написать. На этом форуме все так активно, что не уследить за ветками.

Я предлагаю при перепаковке помещать файлы inf и ini(только из корня) в начало архива, а все остальное как обычно. Это ускорит индексацию драйверпаков программами DriverPack Solution и Drivers Installer Assistant.

Вот ссылки на посты в другой ветке(может перенести их сюда?):
http://forum.oszone.net/post-1475600-986.html
http://forum.oszone.net/post-1475978-989.html

EDIT:
Просмотрел скрипт этой ветки. Использование словаря размером 128МБ совершенно не оправдано. Я сомневаюсь что такие драйверпаки вообще распакуются на системах с 256МБ оперативки. Учтите что для распаковки архивов требуется выделить непрерывный кусок оперативной памяти под словарь. У меня даже при распаковке драйверпаков со словарем 64МБ были проблемы, Windows не всегда успевает выделить виртуальной памяти.

Makaan
18-08-2010, 11:05
BadPointer, + 1

Поддерживаю, 32Мб само оптимально.

quarq
18-08-2010, 13:43
могу добавить что все последущие паки буду пакавать в этом ключе , все плюсы очевидны.

ya158
18-08-2010, 20:22
Я в принципе согласен. Сделаю, наверное, выбор словаря. Но для нового скрипта надо его проверить на последних найтах. Пока не могу определиться (http://forum.oszone.net/showpost.php?p=1476578&postcount=994) какие последние

ya158
22-08-2010, 00:11
Скачал последние паки. В пятницу на работе стал проверять. Пока получается при полной упаковки видео драйверов (с вырезанием языков и старых дров) - разница размеров паков при использовании словаря 32Мб и 64Мб - 5Мб, 64 и 128 - тоже 5Мб. Так что при использовании словаря 128 - выигрыш в размере пака только для видео - 10Мб, что для CD-дистрибутива важно. Буду делать выбор размера словаря.
Кстати, хотелось бы узнать наилучшие парамеиры запуска архиватора. Те, которые указаны в моём скрипте я где-то просто подглядел. Поэтому я не уверен, что они наилучшие. Правда мои параметры при использовании 128Мб словаря дают меньший размер по сравнению с параметрами скрипта BadPointer-а аж в ~300kб :).

BadPointer
22-08-2010, 00:18
Я в своем скрипте использую опцию отключения multithreading(не знаю как это по русски) и многоядерности: -mmt=off.
Это улучшает степень сжатия, пусть упаковка и занимает больше времени. Правда я не знаю насколько это сказывается: у меня все равно одноядерный AMD Athlon 3800+.

Эти 300кб при сравнении каких паков?

Если ты делаешь паки для CD(а не DVD), то я полагаю этот диск будет использоваться на старых компах где нет DVD привода. Но в таком случае этим паком будет сложно воспользоваться поскольку памяти там тоже наверное мало.

ya158
23-08-2010, 07:47
Эти 300кб при сравнении каких паков? »

При перепаковке видео А, В и С в один.

ли ты делаешь паки для CD(а не DVD), то я полагаю этот диск будет использоваться на старых компах где нет DVD привода. Но в таком случае этим паком будет сложно воспользоваться поскольку памяти там тоже наверное мало. »
Не обязательно. У нас на работе многие компьютеры вообще не имеют приводов. Есть просто USB-CD. И потом, по-моему, много памяти надо при упаковке, а не при распаковке.

BadPointer
23-08-2010, 09:28
Я все равно не понял что с чем ты сравнивал. Хорошо бы все поконкретней расписывать: названия паков, размеры, методы сжатия.

Так что при использовании словаря 128 - выигрыш в размере пака только для видео - 10Мб, что для CD-дистрибутива важно. Буду делать выбор размера словаря.
Это получается разница в 10%, тогда при худшем раскладе разница должна быть 4%, а обычно меньше. Я предполагаю ты используешь мой скрипт с 32МБ словарем? А какие показатели со словарем 48 и 64?

Правда мои параметры при использовании 128Мб словаря дают меньший размер по сравнению с параметрами скрипта BadPointer-а аж в ~300kб .
Тогда это с чем было сравнено.

Не обязательно. У нас на работе многие компьютеры вообще не имеют приводов. Есть просто USB-CD. И потом, по-моему, много памяти надо при упаковке, а не при распаковке
Для распаковки действительно требуется меньше памяти, но требуется выделить ее как минимум под словарь. При распаковке драйверпаков с 64мб словарем, я часто видел окно ошибки выдаваемое Windows, когда тот не успевает выделить необходимое количество виртуальной памяти за определенное время и это заканчивается тем, что после длительной пробуксовки с файлом подкачки, распаковка так и не происходит успешно. В таких случаях я распаковываю драйвер на другом компе и копирую на флешку распакованный драйвер.

Кстати, я использую 16GB флешку("Инь и Ян" от QUMO) с переключателем защиты от записи(чтобы вирусы не заражали флешку). С USB-CD все равно не всегда можно запустить загрузочный диск, тем более на старом компе.

ya158
23-08-2010, 15:33
Вот что показали тесты.
Я упаковывал папку D\V, в которой находятся драйвера из DP_Graphics_A_wnt5_x86-32_1008b1.7z, DP_Graphics_B_wnt5_x86-32_1007r1.7z, DP_Graphics_C_wnt5_x86-32_1007r1.7z после обработки моим скриптом. Размер папки 981 537 012 байт. далее упаковываю при помощи следующего скрипта:
set nameDP=DP_Graphics
Tool\hidcon Tool\7za a %nameDP%.7Z D\V\* -ssw -mmt -m0=BCJ2 -m1=LZMA:d128m:fb128 -m2=LZMA:d19:fb273 -m3=LZMA:d19:fb273 -mb0:1 -mb0s1:2 -mb0s2:3
Tool\hidcon Tool\7za a %nameDP%1.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d128m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%1.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d128m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
Tool\hidcon Tool\7za a %nameDP%2.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d64m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%2.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d64m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
Tool\hidcon Tool\7za a %nameDP%3.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d32m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\*.ini -ir!D\V\*.inf
Tool\hidcon Tool\7za a %nameDP%3.7Z -mmt=off -m0=BCJ2 -m1=LZMA:d32m:fb273 -m2=LZMA:d512k -m3=LZMA:d512k -mb0:1 -mb0s1:2 -mb0s2:3 D\V\ -xr!*.inf -x!*.ini
В результате получаю:
DP_Graphics.7Z (128 Мб) 144 324 687 байт
DP_Graphics1.7Z(128 Мб) 144 377 423 байт
DP_Graphics2.7Z(64 Мб) 149 540 262 байт
DP_Graphics3.7Z(32 Мб) 154 219 034 байт

По поводу 300 кб я ошибся (запускал упаковку с некорректными параметрами).
По поводу распаковки. Если ПКМ на папке -> "Добавить к архиву 7z", то в появившемся окне пишется память, необходимая для упаковки и распаковки. Там нет возможности выбрать 128Мб словарь, но для 24Мб словаря требуется для распаковки 26 Мб памяти, для 32 - 34Мб, для 48 - 50, для 64 - 66. То есть можно предположить, что для распаковки архива с 128Мб словарём потребуется не более 140 Мб памяти. Я думаю, что это не много.

magon
23-08-2010, 16:43
То есть можно предположить, что для распаковки архива с 128Мб словарём потребуется не более 140 Мб памяти. Я думаю, что это не много. »
Это не считая той памяти, которую занимает среда предустановки - это еще порядка 128 МБ

BadPointer
23-08-2010, 17:12
DP_Graphics.7Z (128 Мб) 144 324 687 байт (это 94% от пака 32мб или 97% от пака 64мб)
DP_Graphics1.7Z(128 Мб) 144 377 423 байт (это 94% от пака 32мб или 97% от пака 64мб)
DP_Graphics2.7Z(64 Мб) 149 540 262 байт (это 97% от пака 32мб)
DP_Graphics3.7Z(32 Мб) 154 219 034 байт
Таким образом можно сказать каждое увеличение словаря вдвое улучшает сжатие на 3%.


Может такая ситуация нераспространенная, но у меня на работе у многих относительно офисных компов 256MB, а есть еще несколько Pentum III. Также DriverPack Solution занимает в памяти порядка 20МБ(это еще не много если учесть что он чуть ли весь браузер IE подгружает). 7z при холостой работе использует порядка 10МБ. Это относительно немного, но на компах с нехваткой памяти все это будет свопиться на диск и затем подгружаться заново.
Конечно с Micorsoft Office тоже не очень комфортно работать на таких компах и некоторые добиваются того чтобы им добавили память.

Я не настаиваю на конкретном размере, просто результаты измерений показали что дальнее увеличение размера словаря дает все меньший выигрыш и поэтому я рекомендовал 32, как наиболее сбалансированный размер. Если смысл перепаковки в этой ветке добиться максимальной степени сжатия то я не возражаю.


Вообще-то всю эту перепаковку я затеивал в первую очередь чтобы ускорить индексацию паков за счет перемещения inf в начало архива, а подбор оптимального размера словаря было уже второстепенным вопросом. В этой связи я думаю тебе стоит использовать параметры без добавки "D\V\"(то есть как было в моем скрипте), а то я подозреваю сейчас такая перепаковка не увеличит скорость индексации. В идеале я бы хотел чтобы все сборщики драйверпаков упаковывали таким образом.

ya158
23-08-2010, 20:52
Таким образом можно сказать каждое увеличение словаря вдвое улучшает сжатие на 3%. »
Дело не в процентах, а в самих мегобайтах :). 10 Мб на CD - это достаточно много, можно добавить аддон или какой-нибудь драйверпак.

. Если смысл перепаковки в этой ветке добиться максимальной степени сжатия »
Не максимального сжатия, а минимального размера - для этого и удаляются языки и некоторые панели.

В этой связи я думаю тебе стоит использовать параметры без добавки "D\V\" »
Эта добавка указывает из какой папки брать драйвера (посмотри повнимательнее мой полный скрипт).

Вообщем, я решил, что добавлю выбор размера словаря при упаковке и сделаю перемещение inf в начало архива. Можно сделать выбор двумя способами:
1. Запрашивать у пользователя размер в виде числа. Но что будет при вводе например не 128 (или 32), а 127 (или 33) или же вообще 1000? Как отреагирует 7za на размер словаря 127, 33 или 1000? Правда можно сделать проверку на то, чтобы словарь был равен только одному из чисел 32, 48, 64 или 128.
2. Спрашивать у пользователя, хочет ли он использовать словарь 128 Мб или нет. При отказе словарь устанавливается равным 32. Соответственно, нельзя будет выбрать словарь 64 или 48.

Какой вариант лучше?

ЗЫ. Никто не знает как в командной строке организовать так, чтобы задавался выбор, после чего по прошествии какого-нибудь времени выбиралось бы значение по умолчанию.

BadPointer
23-08-2010, 21:09
Размер словаря меня не так интересует: сам решай что лучше. Я просто дал рекомендацию по оптимальному размеру так как эта информация может быть полезной для сборщиков паков для принятия решения.
Ты можешь сделать возможность выбора размера словаря, наподобие того как я сделал в своем скрипте. Для создания интерактивности в bat придется привлекать дополнительные утилиты. Командная строка в Windows все-таки не такая функциональная как в Linux. Я думаю размер словаря может быть любым, но размер в степени двойки более оптимален во многих случаях.

Насчет ускорения индексации.
"D\V\*.ini" - это совершенно точно неправильно. Меня интересуют не все ini, а только те что находятся в корне пака(это ini для finisher'а). Твой скрипт не помещает файлы finisher'а в начало архива. Также я подозреваю что указание пути к inf файлам может привести к тому что только inf из этой папки будут добавлены, а нужно чтобы из всех папок.

ya158
23-08-2010, 22:01
"D\V\*.ini" - это совершенно точно неправильно. Меня интересуют не все ini, а только те что находятся в корне пака(это ini для finisher'а). Твой скрипт не помещает файлы finisher'а в начало архива. Также я подозреваю что указание пути к inf файлам может привести к тому что только inf из этой папки будут добавлены, а нужно чтобы из всех папок. »
Проверю.

ya158
01-09-2010, 19:34
Обновил перепаковщик.

BadPointer
01-09-2010, 19:53
По поводу оптимизации inf'ов.

Твой скрипт добавит добавит файл DriverPack_Sound_*.ini дважды, причем во второй раз он будет добавлен где-то в центре или ближе к концу архива поскольку при втором вызове 7z этот ini файл не занесен в список исключений. В результате DPS и DIA придется распаковывать множество файлов чтобы добраться до этого единственного файла. Таким образом ускорение индексации при такой перепаковке не гарантируется.

ya158
05-09-2010, 18:48
Твой скрипт добавит добавит файл DriverPack_Sound_*.ini дважды »
Из чего это следует?




© OSzone.net 2001-2012