Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从棉花糖升级到牛轧糖后,Android方法性能突然变慢_Java_Android_Multithreading_Performance_Android 7.0 Nougat - Fatal编程技术网

Java 从棉花糖升级到牛轧糖后,Android方法性能突然变慢

Java 从棉花糖升级到牛轧糖后,Android方法性能突然变慢,java,android,multithreading,performance,android-7.0-nougat,Java,Android,Multithreading,Performance,Android 7.0 Nougat,我一直在开发一款游戏,使用运行棉花糖的三星Galaxy S6作为我的开发设备之一。在手机升级到牛轧糖后,一个平均执行时间为6毫秒的方法突然需要40-70毫秒。我代码中的其他方法也受到了类似的影响——代码似乎整体上都变慢了 在运行棉花糖的一方平板电脑上运行相同的版本(调试版本)(来自沃尔玛的clearance endcap)仍然会在大约8毫秒的时间内运行该方法。Systrace似乎没有显示任何问题,除了我的代码的线程只是运行了很长时间。在分析器下,该方法在两种环境下都能以大约200毫秒的速度运行,

我一直在开发一款游戏,使用运行棉花糖的三星Galaxy S6作为我的开发设备之一。在手机升级到牛轧糖后,一个平均执行时间为6毫秒的方法突然需要40-70毫秒。我代码中的其他方法也受到了类似的影响——代码似乎整体上都变慢了

在运行棉花糖的一方平板电脑上运行相同的版本(调试版本)(来自沃尔玛的clearance endcap)仍然会在大约8毫秒的时间内运行该方法。Systrace似乎没有显示任何问题,除了我的代码的线程只是运行了很长时间。在分析器下,该方法在两种环境下都能以大约200毫秒的速度运行,在三星的棉花糖下也能运行。唯一的区别是java.util.Random.next()中的AtomicLong.compareAndSwap()似乎需要更长的时间(可能是阻塞),而ArrayList.EnsureXlicitCapacity()/ArrayList.grow()似乎也需要更长的时间

这个应用程序有一个UIThread,第二个线程,我在其中完成所有工作,还有几个Android添加的绑定线程


我不是在寻找任何人来解决我的性能问题,只是想知道升级到Nougat后是否还有其他人遇到过同样的问题,以及我可以使用哪些其他工具来找到问题?

在Android Nougat下,ART现在在执行时而不是安装时运行JIT优化。虽然我确信它可以加快安装和软件更新,但第一次通过代码中的路径(有时随后通过该路径)会在性能上付出巨大代价

幸运的是,有一种方法可以通过adb命令为应用程序运行JIT优化:

adb shell cmd包编译-m速度-f包名称

此命令将更详细地描述


运行此命令后,性能是我在设备上所期望的

您好,这是一个很好的研究问题,但阅读起来有点棘手。您可能希望使用一些换行符稍微打断文字墙。