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

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

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

Сообщение 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
Последний раз редактировалось piroJOKE Вт фев 20, 2007 5:34 pm, всего редактировалось 3 раза.
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Lims
Нууууп
Сообщения: 723
Зарегистрирован: Чт ноя 09, 2006 7:55 pm

Сообщение Lims »

piroJOKE
а оперативку и проц не загружают эти мапы? по идее ведь опенкора должна их распаковать в оперативку...
Аватара пользователя
piroJOKE
Модератор
Сообщения: 8205
Зарегистрирован: Сб ноя 04, 2006 2:20 am
Сервер RO:: localhost
Откуда: Molvania

Сообщение 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
Use brain against brain, ai against ai... · как правильно задавать вопросы · faq · download
Ответить