Низкая производительность AS3 Flash - PullRequest
1 голос
/ 21 января 2012

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

Мне интересноесли есть что-то еще, например, утечка памяти, вызывающая это поверх фактического рендеринга сцены.

Я хотел бы найти способ посмотреть, как производительность распределяется в моем коде, чтобы увидеть,Есть определенные области, которые вызывают это.Я обычно получаю только 10-15 кадров в секунду на своем компьютере, и я бы хотел, чтобы это было около 20-24 или выше, если это возможно.

1 Ответ

1 голос
/ 21 января 2012

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

Это правда, что мы не можем дать ему конкретные указатели, не увидев его код, но мы все же можем предоставить ему более общие советы / хитрости. Вот некоторый общий анализ:

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

Я бы начал с этого: есть ли в вашем основном игровом цикле интенсивные циклы? Например, я вижу, что вы работаете с уровнем моря, поскольку он влияет на массу суши - вы делаете что-то вроде расчета всех ваших свойств воды на каждом кадре?

Наличие большого количества «трехмерных» объектов не обязательно является проблемой, потому что трехмерный объект - это просто набор точек. Они более интенсивны в позиционировании, чем 2-мерные объекты, потому что вы включаете дополнительное измерение, но не настолько интенсивно, чтобы несколько 3d-объектов могли вызвать такую ​​производительность. Я не думаю, что они ваша проблема (хотя я могу ошибаться).

Скорее, это какие вычисления вы выполняете. Посмотрите на циклы, выясните, что вы можете закомментировать, и сразу увидите лучшую производительность, а затем, как только вы изолировали, посмотрите, что вы можете сделать с кэшированием выходных данных этих вычислений, чтобы вам не приходилось пересчитывать их в каждом кадре. .

Cheers, Мб

...