![]() |
Оптимизация кода по размеру
Заинтересовало, как можно уменьшить размер получаемого swf-файла, если ресурсов нет или они дальше уже не оптимизируются, а кода довольно много? Например, я заметил, что уменьшение длины имён переменных влияет на размер файла, но очень незначительно (не зависит от количества упоминаний переменной?). Вопрос такой: есть-ли готовые утилиты для оптимизации размера кода, либо статьи на эту тему? Дополнительный вопрос: пустой проект (код ниже) у меня получается размером около половины килобайта при компиляции mxmlc - что именно там столько занимает?
Интерес в основном спортивный, поэтому обсуждение "да зачем вам это надо" можно не начинать. Код AS3:
|
Цитата:
Насчет утилит - иногда обфускаторы кода уменьшают его вес (а иногда, правда, наоборот). А вообще обычно проще ужать графику, а не код. |
mxmlc компилит без включенного дебага?
|
Цитата:
Цитата:
Пока методом тыка выяснил, что каждое определение статической переменной увеличивает размер файла на несколько байт. |
да определение чего угодно, увеличивает размер. дело в не статических переменных :)
|
При декомпиляции флэшки можно увидеть, что в коде сохраняются имена классов, их методов и свойств, и не сохраняются имена локальных переменных.
|
Цитата:
|
VVall, а обычная это какая?
|
Так меньше:
Код AS3:
Код AS3:
|
логично. надо же указать static где-то. он же потом не из воздуха берётся.
|
поповоду mxmlc
попробуй такой код: main.mxml: Код:
<?xml version="1.0" encoding="utf-8"?>Код:
package {а теперь измени так: Код:
package { |
Я понимаю, когда народ недоволен размерами флексовых swf, когда речь идет о сотнях килобайт. Но экономить байты?
|
Цитата:
а вообще хорошо что людям интересны такие мелкие вещи, во времена гигабайт и гигагерц почему-то начинают забывать об оптимизациях :( |
Цитата:
- Ребята, поставьте себе фильтр и блокируйте любой флеш контент, картинки и видео. Потому, что за 5$ за мегабайт, вам это не нужно. Еще есть предложения? |
Цитата:
я бы им сказал "агнецы божьи, бросьте земные услады и проникнитесь возвышенным - 3g, отдайте земные блага в виде ненужных бумажек за нормальный телефон и переходите к возвышенным провайдерам. во имя альта, контрела и святого делита: ресет..." |
Я фреймфорк Flex не использую, только компилятор из Flex SDK для компиляции относительно небольших проектов на чистом AS3. mxml-файла у меня нет, и код из первого поста компилируется в 567 байт или около того - чудной компилятор при каждой компиляции может менять размер выходного файла на несколько байт.
Безусловно, никакого практического смысла в оптимизации на байты нет, в этом никто не сомневается. Я сразу сказал - интерес спортивный. Подробнее: увидел, что люди делают интро (см. демосцена) на Flash размером 1K, и захотел понять, как у них это получается, при том, что пустой проект больше полукилобайта. Добавлено через 9 часов 8 минут Продолжая тему, обнаружил две вещи: На размер влияет порядок объявления локальных переменных в функции. Просто переставил местами строчки в одном проекте, и размер изменился на несколько байт (переставлял туда-обратно, чтобы убедиться). Похоже, что компилятор оптимизацией не сильно напрягается: выражение типа x=1+2+3+4+5; занимает больше места, чем x=15;. Скобки не помогают, только увеличивают размер. Наверняка это и на скорость влияет. |
Я бы всё же почитал спеку по abc, прежде чем делать какие-то выводы…
|
Цитата:
|
ldimat, это чтоли?
Код AS3:
|
Минимальный AS - как Яски написал, а дальше вместо mxmlc file.mxml просто mxmlc file.as
|
| Часовой пояс GMT +4, время: 20:58. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.