Безумная оптимизация
June 3, 2008 – 9:27 amМного об оптимизации писали эти люди:
http://gorbatov.blogspot.com/2008/03/as3.html
http://blog.je2050.de/2008/04/26/actionscript-3-optimization-techniques/
http://www.bit-101.com/blog/?p=1271
способы правда повторяются, но это очень полезно!
Я лишь добавлю свои 5 копеек, как сделать код запутаным, но чуть быстрее).
Мой извращеный способ основывается на таком предположении:
У нас есть метод который вызываеться много много раз, данный метод внутри себя использует для каких-то действий локальные переменные. Так вот почему бы не “спускать” эти переменные сверху.
public function test(p:Point, i:int) : void
.....
var p:Point = new Point();
test(p,0);
Например у меня в реальном методе используется 2 точки и небольшой цикл )
посмотреть:
реально подойдет для гейм дева или где можно принебречь читаемостью кода ради быстроты)
upd редактор вордпресса унылое какашко(ТМ)
UAFPUG#2, Мой доклад.
May 21, 2008 – 9:24 pmПризенташка (в плане информативности не особо полезная, но полистать можно)
Презентация не содержит всехпунктов по которым я сравнивал IDE, но у меня есть маленька табличка которая содежит список фич и плюшек, и как их поддерживает та или иная ИДЕ.
Таблица сравнения
Из всего доклада я хочу осветить предпоследний слайд, он содержит кратенькие выводы
- FlexBuilder — выбор пролетариата
- FlashDevelop — малыш
- IDEA — сырой монстр
- FDT — дорого, местами со вкусом
пояснения про FlexBuilder и FDT я уже дал,
- Flex builder 3 пока можно назвать самым мощным средством разработки флекс приложений (да да именно его). Адоб медленно, но верно движется к нормальной IDE, этот вывод я озвучил
- FDT-Enterprise я бы выбрал для разработки чисто флеш/ас3 приложений, но цена кусается (к сожалению просто забыл это озвучить в процессе доклада)
- Большым бонусом этих IDE является то, что ни построены на базе мега IDE — Eclipse
- FDT очень проигрывает Flex builder 3 ценой и отсутствием поддержки mxml, поэтому если намечаются разнообразные проекты (Flex|ActionScript3) то выгоднее использовать Flex Builder
- Счастья нет — все производители очень завязаны на своих “фичах для галочек”, большом количестве готового кода, готовыми алгоритмами, протухшими решениями 10 летней давности, стереотипами и боязнью сделать что-то более удобное
добавлю лишь, что FlexBuilder медленно и верно движется в правильном направлении и у него есть все шансы!
FlashDevelop — малыш, его я так назвал потому, что он фактичеки не является средой разработки — это продвинутый блокнот с кучей удобных и полезных фич. Если делать маленький проект и одному, то его можно использовать если что-то больше то комфортнее использовать FlexBuilder или FDT.
IDEA — сырой монстр. IDEA известна свои удобством среди ява(и не только) программистов. В данный момент в версии 7.0.3 поддержка flex разработки очень сырая, много мелких неприятных глюков, но разработчики IDEA их фиксят. Вобщем когда “доварят” нашего монстра, то будет видно. И еще меня волнует позиционировние самой разработки флекс проектов в IDEA — она позиционируются как дополнительная фича, т.е. существует вероятность, что поддержка флекса будет уходить на второй план по сравнению с явой(можете попробовать разубедить меня). И еще один кирпич в огород IDEA — сложноватенько, человек который придет из мира флеша будет долго въезжать во все ньансы этого “монстра”.
Всех благ вам и удачного кода влюбой из ИДЕ:)
Flex framework — это не только ценный мех, но еще и 120-150K полезного кода!
May 20, 2008 – 6:13 amСенсация, сенсация, срочно в номер!
Я знаю как уменьшить размер с 150 до 130 кб для флекс 3 приложения!
Теперь более осмысленые слова:
Многие жалуются, что флекс приложения имеют большой размер, и это в принципе так, 120-150 килобайт кода это не мало. Часто звучит вопрос как уменьшить размер получаемого кода.
Давайте для начала разберемся, что нам дается с этим кодом?
- Прелоадер (у нас он есть по умолчанию и нам просто не нужно его создавать, мелочь но приятно)
- SystemManager — все проиницилизирует и создаст условия для комфортной работы стандартных и наших компонент (он объеденяет все нижеприведеные фичи в одно единое целое и заставляет их работать)
- DragManager — в пол пинка позволяет делать драг”н”дроп всего из всего и во все, для List компонент это делается установкой пары флегов в mxml
- StyleManager — работа со стилями. Во флекс фреймворке это одня из самых главных фич, дизайн можно изменить легким движением руки, и менять его в рантайме, догружая особоскомпилированые файлы стилей
- LayoutManager — позволяет нам делать различные выранивания и позиционирования, без линних рассчетов (не правда ли удобно написать в mxml-коде width=”100%” ?)
- PopUpManager — создаем и манипулируем со всплывающими окошками
- ToolTipManager — наши замечательные тултипы, всегда сверху, ничего лишнего ( toolTip=”эгегей это я “, помоемому отлично)
- CursorManager — позволит менять и создавать свои курсоры
- HistoryManager и BrowserManager — храним историю переключения наших состояний и меняем линки в браузере, это пока единственное от чего бы я смог отказатся по умолчанию во фреймворке
- Биндинг — автоматическое обновление данных там где это нам нужно, удобно, безумно удобно, супер удобно, только на это мне не жалко 50-60К кода )
- Стили по умолчанию — создав и запустив приложение мы получаем
“раскрашеные” компоненты готовые к употреблению как они есть.
Согласитесь, что это совсем немало для для каких-то 120(150) килобайт кода! Если вы считаете, что тут много лишнего, то подумайте правильно ли выбрали среду разработки для вашего проекта, может все таки использовать Flash CS3 или голые AS3 проекты?
Помни: средняя фотка с фликера весит 100-150К, а страница баш.орг.ру — 200-300К
Я лично готов пожертвовать размером ради удобства и скорости разработки. Количество “динозавров” с модемами по 56кбит/с уже очень мало, стоимость мегабайта трафика уже не космическая, и задайтесь вопросом “нужно ли мое приложение всем?”, мой ответ: “кому оно нужно у того явно нет проблемы с интернетом!”
На последок открою тайну про уменьшение размера приложения.
В нагрузку к коду нам еще дают стиль по умолчанию, так вот если его “вырезать” ну или заменить на более легкий варинт то есть возможность съэкономить 10-20-30К кода, но зачем тратить это время? (самый простецкий способ это открыть framework.swc с помощью rar’а и почикать стили внутри него, если просто удалить их содержимое то проект запуститься но в рантайме будет ругатся, что ему нехватает запчастей)
Каждый должен знать, что приложение по умолчанию компилится в дебаг версию поэтому для релиз версии незабудь воспользоваться Project → Export Release Build…



