Copy link to clipboard
Copied
Hello every one.
I have a 3D project build in FlashDevelop. I publish to ios and android platform.
Then, I found that android's performance is quite low compare to ios system.
Did anyone have the same issue?
3D Engine: Away3D-4.1.6.
Platform: AIR Mobile 18.0
SDK: AIR 17.0
Android machine: Z2 tablet.
ios machine: iPad4.
Copy link to clipboard
Copied
Did you try GPU?
Copy link to clipboard
Copied
If Away3D is using Stage3D, the render mode would have to be Direct, not GPU.
The processor is very fast, I don't see why it would perform slowly. One difference is that it's not exactly ARMv7, it's an extension of that, which may mean it has to emulate to do ARMv7 things. But still, I would expect it to work well.
Try using Scout to see what parts of the screen are being updated every frame. Also, try the latest version of AIR, there were recent performance improvements.
Copy link to clipboard
Copied
Scout shows that enterframe are the main bottle neck. Which means Away3D cost the most time to render.
So I was wonder if that Adobe didn't optimize the Android platform. Because even iPad 2 is better than Sony Z2 tablet.
That doesn't make sense.
Copy link to clipboard
Copied
Do you have a recorderd scout session we can have a look at?
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Hi ShengShane,
to get more insight what's causing your high cpu time please enable advanced-telemetry for your .swf via the -advanced-telemetry compiler argument.
Can you provide a scout session with advanced-telemetry enabled?
Copy link to clipboard
Copied
Copy link to clipboard
Copied
Hi ShengShane,
Sorry, I didn't have much time to look into your issue.
Some smaller things that I recognized are really high stage3D call times in some frames. For example .setProgramConstantsFromVector() takes in some frames more then 20 ms. Maybe you are using way to much different materials or your materials are too complex for mobile devices.
An other thing I recognized is that you are handling event enterFrame 28x times.
It's good practice to handle it only once in you're gameloop and pass the deltaTime to all other game modules requiring it.
Copy link to clipboard
Copied
But it is really weird. Why the same code running on ios and android, the performance has huge difference?
iPad 2 hardware is better than Sony Z2 ?
That doesn't make sense.