【发布时间】:2017-11-26 23:31:51
【问题描述】:
我一直在开发一款游戏,使用运行 Marshmallow 的三星 Galaxy S6 作为我的开发设备之一。手机升级到 Nougat 后,一个平均需要 6ms 执行的方法突然需要 40-70ms。我的代码中的其他方法也受到了类似的影响——代码似乎已经全面放慢了速度。
在运行 Marshmallow 的 Yifang 平板电脑(来自 Walmart 的清仓端盖)上运行相同的构建(调试构建)仍然以大约 8 毫秒的时间运行该方法。除了我的代码线程只是运行了很长时间之外,Systrace 似乎没有显示任何问题。在分析器下,该方法在两种环境中都以大约 200 毫秒的速度运行,在 Marshmallow 下的三星上也是如此。唯一的区别是 java.util.Random.next() 中的 AtomicLong.compareAndSwap() 似乎需要更长的时间(可能是阻塞的),而 ArrayList.ensureExlicitCapacity()/ArrayList.grow() 似乎也需要更长的时间。
该应用程序有一个 UIThread,我在其中完成所有工作的第二个线程,以及 Android 添加的几个 Binder 线程。
我并不是在寻找任何人来解决我的性能问题,只是想知道自从升级到 Nougat 后是否还有其他人遇到过同样的问题,我可以使用哪些其他工具来尝试找到问题?
【问题讨论】:
-
您好,这是一个很好的研究问题,但阅读起来有点棘手。您可能想用几个换行符稍微打破文字墙。
标签: java android multithreading performance android-7.0-nougat