Sign in to follow this  
Followers 0
kallt_kaffe

Comparison between binary translation and native x86 code

5 posts in this topic

I did a little expirement with the Epic Citadel app as it contains both native ARM and native x86 code. I made one APK with only native x86 code and one with only native ARM code and ran the benchmark once for each version. The result was that the version with native x86 code that did not have to rely on the binary translation (ARM to x86 code translation done on-the-fly by the libhoudini lib) resulted in a more than 40% better benchmark result than then version that relied on binary translation.

Some more info about the tests and screenshots here: http://blog.apedroid.com/2013/05/binary-translation-vs-native-x86-code.html

1

Share this post


Link to post
Share on other sites

That's very interesting, thanks.

Is there an easy way to tell if an app has x86 code in or just ARM?

1

Share this post


Link to post
Share on other sites

Asfaik the only way is to check the .apk file. Open it with your favorite zip-utility and check the lib folder. If only contains a armeabi-something folder then it only has native ARM code. If it also contains an x86 folder then it has native x86 code. If it does not have a lib folder at all then it doesn't use any native code so ARM or x86 won't matter.

However since there is no known way to root the Fonepad you cannot pull the apk's from it so you'll have to download the apps on a rooted device and "steal" the them from /data/app/ if you want to have a look at them.

I suppose there may be some clues in the log when starting apps that uses binary translation. I haven't looked but I suppose it could be possible to detect it with "adb logcat". Anyone tried it?

Short answer: No, there's no easy way that I know of.

1

Share this post


Link to post
Share on other sites

If you are familiar with adb then you can run this:

[email protected]:/ $ logcat |busybox grep houdini

When you start an app that uses binary translation it will print this:

D/houdini ( 7945): [7945] Loading library(version: 3.1.3.43168 RELEASE)... successfully.

Apps that I tried that uses binary translation: Netflix, Max Payne, Daddy as a thief, Spotify.

If unsure which app trigger the lib then you can run the "ps" command and match the PID with the app the used the lib.

Example: http://blog.apedroid.com/2013/05/how-to-check-if-app-uses-binary.html

1

Share this post


Link to post
Share on other sites

I'd love to buy this device, but, sadly, it seems like the community do not like intel processors a lot; this is easily translated into no easy root, recovery, roms, etc...

Hopefully now that the asus note 6.0 has been announced and still equipped with an intel CPU, developers will give some more love to the fonepad too ;)

by the way Kallt_kaffe (that i used to love some years ago due to the zte blade, that i still use ;) ) underlines interesting stuff. My question is.. what is going to affect this loss of benchmark performance. Battery life? start up time of the application? or the apps will run simply slower?

0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

MoDaCo is part of the MoDaCo.network, © Paul O'Brien 2002-2016. MoDaCo uses IntelliTxt technology.