低闪存AS3性能



我正在使用Alternativa3D7.8引擎开发一款用AS3编码的游戏,但它没有我希望用它实现的FPS,我正在努力完全理解原因。我知道在场景中使用3D对象可能会对性能造成很大的影响,但我只使用了数量非常有限的3D对象,而且每个对象的多边形数量都相对较小。

我想知道,在场景的实际渲染之上,是否还有其他类似内存泄漏的原因导致了这种情况。

我想找出一种方法来查看性能在我的代码中是如何分布的,看看是否有某些方面导致了这种情况。我通常在电脑上的帧速率只有10-15帧左右,如果可能的话,我希望能保持在20-24帧左右或更高。

我认为这个问题不一定应该被否决,尽管它有点宽泛。OP询问有关AS3应用程序的一般性能提示。

的确,我们不能在没有看到他的代码的情况下给他特定的指针,但我们仍然可以为他提供更通用的提示/技巧。以下是一些分析,非常一般:

我不认为你的性能问题一定与你的3D有任何关系,尽管它们可能。游戏世界出现在屏幕上的那一刻,鼠标的移动速度就大大减慢了,而我暂停它的那一瞬间,帧速率就提高了——这对我来说意味着你在每一帧上都要进行大量的迭代和计算。

我想从这个开始:在你的主游戏循环中,你有任何计算密集的循环吗?例如,我看到你在处理海平面对陆地质量的影响——你是否在做一些事情,比如计算每一帧上的所有水属性?

有很多"3D"对象并不一定是问题,因为3D对象只是一组点。它们的定位比2d对象更密集,因为你包含了一个额外的维度,但不会太密集,以至于几个3d对象会导致这种性能。我不认为它们是你的问题(尽管我可能错了)。

相反,这是你正在进行的计算。寻找循环,找出可以注释的内容,并立即看到更好的性能,然后一旦隔离了它,就可以看看如何缓存这些计算的输出,这样就不必在每一帧上重新计算它们。

干杯,mb

最新更新