|
itany 发表于 2013-3-1 18:47 ![]()
安卓不是执行的本地代码,而是运行在虚拟层上边吧,这也是大多数安卓程序能够直接上x86的原因,效率自然比 ...
简单解释一下吧,一个简单指令在arm thumb 和 thumb-2还有x86的差距
int a = 0x12345678;
这里用伪代码好了,首先是x86,可以一条指令搞定
mov [a],0x12345678;
然后效率高的是thumb-2,两条16位指令可以合并一条32位赋值
movd [a],0x1234;
movu [a],0x5678;
最差是arm/thumb指令
:start
mov [a],[memroy] //吧memory地址的内容扶植给a
jmp next; //跳转到next继续执行
:memory
0x12345678 //这里不是指令,而是数值
:next
... //继续执行
看看这个就知道为啥x86性能为啥好多了,而thumb-2也比标准thumb/arm好太多了。 |
|