Энтропия исходного кода AS3 - PullRequest
0 голосов
/ 29 января 2011

Я пытаюсь решить, должен ли я генерировать код AS3 для определенного сложного настраиваемого набора правил бизнес-логики, или я должен выразить их как данные, и написать конечный автомат в AS3 для его интерпретации.

Моя цель - получить наименьший размер SWF. Скорость не проблема. Сложность реализации также не является проблемой. (Конечно, в разумных пределах).

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

Какова средняя степень сжатия для источника AS3 при компиляции в swf? Сколько байт swf на килобайт исходного кода?

(я прекрасно понимаю, что в лучшем случае ответом будет очень грубая цифра.)

Ответы [ 2 ]

1 голос
/ 29 января 2011

Некоторые факты о скомпилированном SWF:

  • имена классов сохраняются
  • имена членов сохраняются
  • имена локальных переменных не сохраняются
  • комментарии и пробелы удалены

Таким образом, соотношение будет зависеть от длины идентификаторов, комментариев и даже настроек табуляции или пробелов. Если вы запускаете свой SWF-результат через обфускатор, который заменяет имена классов чем-то вроде A0, A1 и т. Д., Вам следует сохранить несколько байтов.

Ваша идея конечного автомата кажется наиболее многообещающей - код пишется один раз, а правила могут быть написаны компактно. Если вы можете упаковать небольшие числа в одно целое, это будет лучше (в AS3 нет целых чисел, кроме 4-байтовых чисел и уинт).

0 голосов
/ 29 января 2011

Помните, что SWF файлы уже сжаты zlib, так что по большей части могут стереть любые относительные усиления, используя путь данных или код.

Если исходная скорость загрузки соответствует желаемойвы всегда можете выделить фрагменты своего кода и загрузить его по требованию из другого SWF-файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...