Air Native Extension中的Java性能,我该如何优化?
问题描述:
我想要在Android手机上运行30个飞机的模拟器。Air Native Extension中的Java性能,我该如何优化?
我在AS3中编写了整个东西,但认为如果我将Java用作本机扩展,性能会有所提升。
模拟是一个30个单位的图书馆。模拟计算所有单位之间的距离和旋转。这是大约870迭代与许多距离和旋转计算。
我的ANE在Java上的运行速度比我的AS3版本低大约50倍。
问题似乎是多次调用FREArray上的setObjectAt()。我想这个Java到AS3的转换很慢。有没有一种方法可以将变量从Java恢复到AS3?
答
我猜AS3性能与标准Java性能没有什么不同,当它用作本地扩展时。
但是,由于Android NDK允许我使用C++重建库,因此我的性能不会提高大约20倍。
所以,如果你正在从AS3寻找Android的性能优势:使用NDK。