Страница 1 из 1

Насчет хранения полей (.fld) в сжатом виде - плюсы и минусы

Добавлено: Вт фев 20, 2007 5:12 pm
piroJOKE
OpenKore поддерживает хранение .fld ( fields ) в сжатом виде. Если вы сожмете свои "поля", вы сэкономите ~40 Мб места на винчестере, плюс, возможно, немного времени, если будете копировать каталог OpenKore.

Началом темы можно считать пост viewtopic.php?p=16292#16292 в топике про KA-Pro, где было сказано о том, что оный хранит поля в сжатом виде.
Вот копия из того поста:
Карты [в KA-Pro]лежат в сжатом ввиде, и занимают на диске менее 1 Мб! Что есть очень и очень правильно.
Кстати, было заявлено когда-то о поддержке .gz для fields, причем уже давным-давно. Мы можем использовать это под Виндой? Как?
* * *
PPS: Ага... насчет компрессии, оказывается такая штука объявилась и в OpenKore, причем сделал ее какой-то мужик из России под ником n0rd ...
Вот топик про сие: http://forums.openkore.com/viewtopic.php?t=24702 ; Ке-ке-ке, переходим на сжатые fields'ы?
PPPS: Уж если мы занимаемся изобретением велосипеда, то пусть это будет опен-сурсный велосипед!
Казалось бы, почему бы нам не включить упакованные поля в релиз? Ан нет, кое-что останавливает.

- Внешний мап-вьювер "не хавает" .gz - файлы. (( (Но встроенный в WX-интерфейс работает, тут всё окей).
- Учитывая, что основная среда запуска - Windows NT, это вообще довольно бессмысленная процедура, ведь у "Винды", у NTFS, есть поддержка сжатых каталогов!
и
- Степень сжатия не играет никакого значения - ведь файл, вероятно, будет всё равно меньше размера кластера на диске.
- Сам VCL пишет, что... "fieldpack will still include .fld files, because archive compresses better this way".

* * *

Однако, вот я такой bat-нег написал, который пережмет ваши .fld --> .fld.gz , и таким образом, весь каталог с полями будет занимать всего лишь 1 Мб! Может кому нада (fields2gzip.cmd). Нужен установленный 7z, ну и прописать в бат-нике путь к нему, в первой строчке:

Код: Выделить всё

@set my7z=C:\Soft\7-Zip\7z.exe
@For %%a In (*.fld) Do @%my7z% a -tgzip -mx9 %%a.gz %%a

Добавлено: Вт фев 20, 2007 5:27 pm
Lims
piroJOKE
а оперативку и проц не загружают эти мапы? по идее ведь опенкора должна их распаковать в оперативку...

Добавлено: Вт фев 20, 2007 5:30 pm
piroJOKE
Я полагаю, это всё касается только их хранения на диске...

* * *

Может кто-то подсказать, как с командной строки сделать файл в NT "compressed"? :o

* * *

Ога, уже подсказали на ру-боарде (тут).
Вот-с:

compact /c *.fld

Однако... Учитывая размер кластеров, при сжатии .gz размер папки выходит 2.1 Мб, а с атрибутом "compressed" 6.7 Мб - сжатие гораздо хуже. Для сравнения несжатые .fld занимают 43,1 Мб (это тоже учитывая кластеры, т.е., полный размер).

PS: У этой команды есть ключ /s - "обрабатывать с подкаталогами". Таким образом мы можем одной командой сразу обработать все поля в нескольких папках OpenKore, запустив приблизительно такой bat-файл:
compact /C /S *.dist
compact /C /S *.fld
compact /C /S *.pl
compact /C /S *.pm
* * *

В общем, кажется, картина обрисована достаточно полно. Как говориццо, думайте сами - "иметь или не иметь". :P