Путаница с оптимизацией Flash - PullRequest
2 голосов
/ 12 января 2010

Я новичок в Actionscript (v3), но уже 20 лет на C ++, и я просто пытаюсь разобраться с некоторыми оговорками производительности, которые я читаю.

Я проверил этот сайт:

http://www.nbilyk.com/optimizing-actionscript-3

и был напуган до смерти разделом «код», в котором говорилось, что Actionscript должен выполнять динамический поиск при попытке найти статические методы в пакете. Дело в том, что неэффективно помещать ваши функции типа утилит (обычно математические функции) в их собственный пакет как статические функции, потому что он должен динамически искать пространство имен и метод каждый раз, когда вы его вызываете.

Это правда? Это просто не то, что я ожидал от C ++, и это действительно меняет то, как я структурирую свой код и библиотеки. Интересно, лучше ли иметь одноразовую библиотеку утилит new () d, содержащую методы как обычные публичные методы, чем статические в другом пакете.

Есть ли другие очевидные ошибки вроде этого?

Приветствия

Шейн

1 Ответ

3 голосов
/ 12 января 2010

Да, это правда. Вызов статических функций извне класса идет медленно. Я недавно проверил это для себя, более 10000 итераций это было 220 мс для статических и 160 мс для вызова функции в экземпляре.

Другими советами было бы избегать компилятора Adobe. Недавно я начал использовать Haxe, который конвертирует в LLVM, а затем в код ABC (код байта actionscript). Есть некоторые скрытые коды операций для работы с памятью, которыми пользуется Haxe (так же, как Alchemy).

Говоря об алхимии, он скомпилирует C ++ -> LLVM -> ABC. Может быть полезно для вас, если у вас много библиотек c ++. (кто-то перенес Doom, Hexen и Heritic на Flash таким образом)

РЕДАКТИРОВАТЬ: для всего, что связано с производительностью http://lab.polygonal.de/ и http://blog.joa -ebert.com хорошие места для начала.

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