2

私は開発ツールの1つとしてMarshmallowを実行しているSamsung Galaxy S6を使用してゲームを開発しています。電話機がNougatにアップグレードされた後、突然実行するために平均6ミリ秒かかる方法は、40〜70ミリ秒かかる。私のコードの他のメソッドも同様に影響を受けます - コードはボード全体で遅くなっているようです。マシュマロからヌーガットにアップグレードした後、Androidメソッドのパフォーマンスがかなり遅くなる

マシュマロウを実行しているYifangタブレット(Walmartのクリアランスエンドキャップから)で同じビルド(デバッグビルド)を実行しても、このメソッドは約8ミリ秒で実行されます。 Systraceは、私のコードのスレッドが単に長い間実行されている以外の問題は何も表示していないようです。プロファイラの下では、この方法は両方の環境で約200ミリ秒で実行され、マーシュマローの下でサムスンにも実行されました。唯一の違いは、java.util.Random.next()のAtomicLong.compareAndSwap()が時間がかかるようで(ブロックされる可能性がある)、ArrayList.ensureExlicitCapacity()/ ArrayList.grow()も時間がかかるようです。

このアプリには、UIThreadと、すべての作業を行うための2番目のスレッドと、Androidが追加する2つのバインダースレッドがあります。

私はあまり誰にもヌガーにアップグレードするため、同様の問題があった場合だけ疑問に、私のパフォーマンスの問題を解決するために誰を探していないよ、と私は問題を見つけることを試みるために使用できるいくつかの他のツールは何ですか?

+1

こんにちは、これは研究の良い質問ですが、読むのはちょっと難しいです。いくつかの改行でテキストの壁を少し崩したいかもしれません。 – Tom

答えて

0

Android Nougatでは、ARTはインストール時ではなく実行時にJIT最適化を実行するようになりました。インストールとソフトウェアの更新をスピードアップすると確信していますが、コード内の最初のパス(およびそのパスを通る後続のパス)がパフォーマンスに大きな影響を与えます。

幸い、ADBコマンド経由でのアプリのためのJIT最適化を実行する方法があります:

adbのシェルCMDパッケージは-mスピード-fパッケージ名をコンパイル

このコマンドはに記述されていますもう少し詳しく。here

このコマンドを実行すると、パフォーマンスは私のデバイスで期待されるものになります。

関連する問題