Sha*_*mog 5 java performance android codenameone
我在OPO设备上对我们的一些代码进行基准测试,这通常非常快,而且我看到很多"怪异"的性能怪异.在深入研究Android本机代码之前,我想我会问这里.
我所看到的是,执行调用的paint.setColor(argbInt)时间比以下调用大约长5倍:
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(false);
canvas.drawRect(x, y, x + w, y + h, paint);
paint.setAntiAlias(antialias);
Run Code Online (Sandbox Code Playgroud)
现在绘制矩形发生在GPU上,所以我猜我没有看到任何开销.但为什么我要涂上油漆颜色?
作为一个自然的后续,我如何减少所述开销?
我也看到相当多的开销canvas.restore()(比上面的代码慢大约4倍),但我想这会有意义,因为它可能是一个复杂的操作.我只是不明白为什么setColor会慢?
为了记录,我使用System.nanoTime()在OPO上测试了性能,并且在性能方面非常一致(不是突然的GC侥幸等等).
即使在深入研究代码之后,我也找不到“为什么”发生这种情况的真正答案。我的解决方案是缓存Paint主题中每种样式的对象,以便使用类似的设置重新绘制组件可以重用以前设置的值。这似乎确实对性能产生了积极影响。
| 归档时间: |
|
| 查看次数: |
197 次 |
| 最近记录: |