Вы знаете: самый быстрый по выполнению язык -- это всегда ассемблер. И новая AVM2 в составе Flash Player 9 отличается оптимизированной архитектурой и ассемблером/байткодом.
Канасье выпустил библиотеку hxASM для написания кода прямо в ассемблере Flash9 при помощи языка haXe.
Библиотека может динамически генерировать массив байтов ByteArray, представляющий SWF-файл со скомплированными матодами ассемблера. Затем этот код может быть выполнен при помощи метода flash.display.Loader.loadBytes.
ByteArray
flash.display.Loader.loadBytes
Насколько библиотека hxASM может ускорить выполнение флэш9-приложений?
В качестве примера - вычисление ряда Фибоначчи. Ускорение достигает 30%. Подробности - на странице библиотеки hxASM.
hxASM вышла под лицензией BSD; репозиторий исходного кода находится по адресу http://code.google.com/p/hxasm.
FlASM для Flash 9?
Осталось написать разбор AS3 кода...
Эээ...рано обрадовался, это у него типа только директива прямой вставки опкодов наподобие сишных ASM
Куда катимся... От графического редактора к машинным кодам пришли. :))
Процесс этой деградации начался давно. Как только программистов допустили во флэш - и началось... понапридумывали, понимаешь :)
Да ладно, по-моему, вполне прикольно. Только вот в целом, такая штука совершенно бесполезна, можно ручками класс написать в байткоде. Трудозатраты не меньше получаются. Ну немного меньше, просто в силу уже написанных функций по созданию различных базовых участков кода, да и все.
"В качестве примера - вычисление ряда Фибоначчи" Это для примера производительности? Ну нифига себе. Обычно (не за флеш говорю) производительность тестируют на самых долгих операциях - умножениях, делениях, вычислениях тригонометрических функций, работа с большими объемами данных. А Фибоначчи вычисляются одними сложениями! Низачот, однозначно.
Уверен - сор временем появятся и более прагматичные, предметные тесты. Вряд ли у Николя сейчас есть время заниматься этим самому - однако активность мэйл-листа хаКсе убеждает меня в том, что такие люди найдутся.
Предыдущий пост
Следующий пост