PDA

Просмотр полной версии : ФЛЕЙМ - сжатие ассемблерных файлов архиваторами



HardWareMan
31.12.2016, 17:39
Это 8 мб RAR-архивов, из одних текстов. Степень сжатия текстов 2-3%. Так что при распаковке получается несколько сотен мегабайт текста.
А можно посмотреть скриншот статистики свойств архива? Ато я вот тут с середины 90х пользуюсь разными версиями RARа (от DOS до Win x64 версий) и для текстов лучше 10% сжатия не получал, даже если создавать непрерывный архив (это который с общим словарем и которого не было у простого ZIPа а появился только у 7zip). Вот не верю я что текст можно сжать RARом плотнее 10%.

barsik
31.12.2016, 20:48
Извиняюсь, за кодировку, но нижеследующий текст искажён при попытке редактировать на другой машине в свеже инсталлированной Win XP Pro SP1, а надо SP3.


я с середины 90-х пользуюсь разными версиями RAR-а и для текстов лучше 10% сжатия не получал

Я ничего, кроме текстов выкладывать не могу, хотя надеюсь, что когда-нибудь это изменится, т.к вчера сменил модем. Ð*анее выходил в Интернет через телефон 3G, используемый в качестве модема. Отчего многие чересчур умные сайты считали меня телефоном, а не компьютером, отчего и были проблемы с сайтами (не мог ничего скачивать, - сайты нагло посылали версии программ для мобильного телефона, а версии для компьютера скачивать не давали). Но увы, 2 дня назад произошло трагическое событие, - дорогой мобильный телефон сгорел в хлам, не выдержал 12 вольт вместо 3.6. Ненадёжные ныне делают мобильные телефоны. Поэтому пришлось сменить Интернет аппаратуру.

Некоторые ASM-архивы у меня сжаты с фактором 1%. Ð‘ÐµÐ»Ð»ÐµÑ‚Ñ€Ð¸ÑÑ‚Ð¸ÐºÑ ƒ RAR сжимает до 10-30%. Программы на СИ и Паскале объёмом до 30К сжимаются на 8-13%. А большие ассемблерные исходники в среднем 3-4%. Сожмите ассемблерные исходники какой-нибудь программы в 70-100 Кб в нескольких её версиях и сами убедитесь. А если комментариев нет и метки малобуквенныРµ или архивируется несколько релизов, то будет 1%. Учтите также, что ассемблерные мнемоники Z80 сжимаются лучше, чем мнемоники КÐ*580. Например, исходники для СПЕЦИАЛИСТА сжались всего на 10% именно из-за того, что они в кодах КÐ*580 (а также из-за Ñ€Ð°Ð·Ð½Ð¾Ð¼Ð°ÑÑ‚Ð½Ð¾ÑÑ ‚и). В этом тоже убедитесь (есть у Вас наверно какая-нибудь программа для конверсии исходников КÐ*580 в исходники Z80, кстати программ обратного назначения в природе не существует).

Привожу выборку данных о сжатии лишь некоторых своих архивов исходников. Б`ольшие цифры фактора сжатия говорят о Ñ€Ð°Ð·Ð½Ð¾Ð¼Ð°ÑÑ‚Ð½Ð¾ÑÑ ‚и файлов в архиве или о наличии в архиве History- и ДОК-тексты, REL-файлы, а иногда и COM-файлы (для ASM 80x86 также TASMX.EXE, TLINK.EXE и другие файлы для трансляции программ для PC).

Привожу список некоторых RAR-архивов с указанием степени их сжатия. Если в архив входят тысячи одинаковых файлов (например драйверов, стандартных INCLUDE-файлов и т.п.), то достигается степень сжатия исходников и 0.5%. Степерь сжатия меньше, где файлы разномастные, а также там где в архив входят History- и ДОК-тексты, REL-файлы, COM-файлы (для ASM-исходников 86-го также TASMX.EXE, TLINK.EXE и другие файлы для трансляции программ для PC).



.
RK-KNGMD”.rar - 1115Kš 1%
NC & LORD.rar - 256K 1%
MICRO-DOS.rar - 281K 1%
CPM 2003.rar - 415Kš 1%
TURBO-DOS.rar - 496K 2%
EM RK86 OR.rar - 200K 2%
EM_RK86.rar - 252Kš 2%
EMULATORS.rar - 1815Kš 3%
CPM 1997.rar - 463Kš 3%
EKR_drivers.rar - 390Kš 4%
CPM 1991.rar - 263Kš 4%
EM_CPM.rar - 340Kš 5%
S-DOS.rar - 81K 6%
Formaters‹.rar - 45K 6%
ROM F800.rar - 211K 7%
Raznoe.rar - 180K 7%
FONTS‹.rar - 347Kš 7%
CPM 1990.rar - 80K 8%
SPECIALIST.rar - 250Kš 10%
ALIEN_disasm.rar - 380K 10%
CPM 1992.rar - 82K 14%
Subroutines.rar - 32Kš 19%


Уважаемый HardWareMan поздравляю Вас с Новым Годом, желаю Вам счастья и успехов в Вашем хобби. В личных интересах хотелось бы Вам пожелать стать подобрее к коллегам по хобби (это выгоднее, т.к зло всегда возвращается).

- - - Добавлено - - -

Извиняюсь, за кодировку, но вышеприведённый текст был редактирован на другой машине в свеже инсталлированной Win XP Pro SP1, а надо SP3. Отчего на этом сайте почему-то при попытке использовать пункт "редактировать" меняется кодировка на 16-ти битную кодировку UTF-8. Т.е при исходном вводе текста всё уходит в нормальной кодировке, но при попытке исправить грамматические ошибки, используя пункт "редактировать" происходит отсылка "мусора", т.е текста в иной кодировке.

Это может исправить только админ сайта или модератор perestoronin. Который уже один раз делал это используя какой-то таинственный внешний сервис: https://2cyr.com/decode/?lang=ru. Не знаю, что это значит и не знаю как это исправить. Это может исправить любой модератор, кто также сумеет воспользоваться эти сервисом. Но модератор может поступить ещё проще. - он может просто взять резервированную исходную версию этого текста (первая версия, то что уходит из пункта "ответить в теме" или "быстрый ответ", всегда при этом глюке в верной кодировке).

Помочь может и обычный продвинутый пользователь, кто выложит исправленный текст моего сообщения в своём сообщении (или пошлёт его мне по личке, но не E-mail-ом), а я его скопирую и вставлю вместо "мусора". Этот текст пишу на другой машине, где могу редактировать русскими буквами. Таким образом у всех появляется возможность научиться пользоваться вышеприведённым сервисом по перекодированию текстов.

Поздравляю всех с Новым Годом ! Новых творческих успехов в области рэтро ЭВМ.

DIMKA55
31.12.2016, 21:24
Заген зи мир битте цурюк

HardWareMan
01.01.2017, 00:01
А если комментариев нет и метки малобуквенные или архивируется несколько релизов, то будет 1%. Учтите также, что ассемблерные мнемоники Z80 сжимаются лучше, чем мнемоники КР580. Например, исходники для СПЕЦИАЛИСТА сжались всего на 10% именно из-за того, что они в кодах КР580 (а также из-за разномастности). В этом тоже убедитесь (есть у Вас наверно какая-нибудь программа для конверсии исходников КР580 в исходники Z80, кстати программ обратного назначения в природе не существует).
Из архива вот этого поста (http://zx-pk.ru/threads/25617-iskhodniki-i-kody-moikh-narabotok-na-z80-pod-spektrum.html) взят файл ZRSH-TXT.$C (да простит меня автор, но я науки ради). Из него удалены все комментарии, сокращены все длинные и не системные метки (в ручную, правда, может чего упустил). Результат сжатия (тестовый файл в аттаче):
http://savepic.ru/12536894.png
http://savepic.ru/12533822.png
http://savepic.ru/12534846.png
Т.е., я даже не достиг 10%. Так я еще раз спрашиваю, откуда 1%? Покажите мне реальный архив с такой степенью сжатия.

PS В свое время интересовался темой и изучал разные алгоритмы (правда не на столько, чтобы написать свой архиватор, но все же). Даже собирал по методичке свои архивные бомбы (https://ru.wikipedia.org/wiki/Zip-%D0%B1%D0%BE%D0%BC%D0%B1%D0%B0). Вот еще интересный вариант. (https://xakep.ru/2015/09/03/png-bomb/)

b2m
01.01.2017, 00:11
Ассемблерные исходники жмутся лучше.

barsik
01.01.2017, 15:16
При желании можно иметь степень сжатия в 0.5%. Не надо брать крошечные файлики в 30 килобайт, а надо брать многофайловые архивы по 30 Мб. Тогда в них много повторяющихся фрагментов. И надо использовать "непрерывный архив".

HardWareMan Вы декодировали моё сообщение в верную кодировку. Почему не помочь, не избавить модераторов от работы и не выложить декодированный текст, чтобы я мог вставить его в своё сообщение?

HardWareMan
01.01.2017, 16:44
Ассемблерные исходники жмутся лучше.
А я что, бэйсиковские пробую? Было сказано, что ассемблерские, причем именно Z80.

- - - Добавлено - - -

HardWareMan Вы декодировали моё сообщение в верную кодировку. Почему не помочь, не избавить модераторов от работы и не выложить декодированный текст, чтобы я мог вставить его в своё сообщение?
Это Unicode UTF-8 (а не 16). Используйте любой текстовый редактор, умеющий уникод. При этом не копируйте текст напрямую из него. Скопируйте его в обычный нотпад, чтобы он сконвертировался в cp1251. И только потом уже копируйте в браузер.Ну вот, я попробовал бессмысленный набор мнемоник, который повторяется - действительно, при превышении определенного размера процентаж начинает падать стремительно (рост обьема архива замедляется по сравнению с ростом исходных файлов).


При желании можно иметь степень сжатия в 0.5%. Не надо брать крошечные файлики в 30 килобайт, а надо брать многофайловые архивы по 30 Мб. Тогда в них много повторяющихся фрагментов. И надо использовать "непрерывный архив".
"Непрерывный архив" (aka "Solid archive") это архив с общим словарем, о чем я уже говорил. Он действительно помогает, но отказонеустойчив: при повреждении вы не сможете вытащить из него файлы, т.к. они связаны. Для архивации на хранение лучше делать обычный архив + информация для восстановления. Непрерывный архив лучше если надо передать много файлов по сети.
http://savepic.ru/12558428.png
Таким образом, степень сжатия есть показатель качества исходников (обратно пропорционально), верно?