什么是最容易犯的错误,可能是Android的性能下沉?
文档提到“一些浮点运算”可以是“毫秒级的”--有人测试过吗?
为了便于讨论,让我们假设它在G1/类似设备上运行。
发布于 2010-02-24 15:49:37
wrt浮点:
在G1上,将两个浮点数相加大约需要400 on。将两个整数相加大约需要250 two。
在nexus运行eclair (pre-JIT)上,这两种操作都需要大约120 one。(int稍快一些,但您必须进行微基准测试才能注意到这一点。)int和long之间以及浮点数和双精度之间有一个很小的百分比差异,但基本上如果你能买得起一个,你可能就能买得起另一个。
其他当前的设备将介于这两个极端之间。(其他操作也会有所不同。乘法比加法/减法更昂贵,而除法更昂贵。当前没有设备具有硬件整数除法。)
但是,在你遇到问题之前,不要纠结于这些。很有可能,你的性能问题会归结为算法或数据结构的糟糕选择,就像每个人的性能问题一样。
大多数当前的(eclair)性能文档都是不正确的。在你所关心的设备上,自己进行基准测试。
但是如果你真的在问“桌面/服务器java程序员应该注意什么?”,我会建议:不必要的分配。您没有像在桌面/服务器上那样的备用核心来执行GC,您也没有像在桌面/服务器上那样拥有千兆字节的堆。如果你在做GC,你不是在做真正的工作,你的堆在当前设备上最多是24MiB。因此,您可能希望避免内部循环中不必要的分配。
https://stackoverflow.com/questions/1505446
复制相似问题