Java対Cアプリのパフォーマンス-Garyが説明します

著者: John Stephens
作成日: 23 1月 2021
更新日: 1 J 2024
Anonim
JavaとCアプリのパフォーマンス–Garyが説明します
ビデオ: JavaとCアプリのパフォーマンス–Garyが説明します

コンテンツ


最悪のスコアである32ビットAndroid 5.0から始めて、Javaコードの実行速度はCよりも296%遅い、つまり4倍遅いことがわかりました。繰り返しますが、ここでは絶対速度は重要ではなく、同じデバイスでJavaコードを実行するのにかかる時間とCコードを実行する時間の違いは重要ではないことに注意してください。 Dalvik JVMを搭載した32ビットAndroid 4.4 KitKatは、237%で少し高速です。 Android 6.0 Marshmallowにジャンプすると、劇的に改善が始まります。64ビットのAndroid 6.0ではJavaとCの違いが最も小さくなります。

2番目のテストは、部門別トライアルを使用した素数テストです。上記のように、このコードは64ビットを使用します長いです 整数であるため、64ビットプロセッサが優先されます。

予想どおり、64ビットプロセッサで実行されているAndroidから最良の結果が得られます。 64ビットAndroid 6.0の場合、速度の違いは非常に小さく、わずか3%です。 64ビットAndroid 5.0の場合は38%です。これは、Android 5.0上のARTと、 最適化 Android 6.0でARTが使用するコンパイラ。 Android 7.0 Nはまだ開発ベータ版であるため、結果を示していませんが、一般的にはAndroid 6.0 Mと同様にパフォーマンスが向上しています。最悪の結果はAndroidの32ビットバージョンであり、奇妙なことに32ビットAndroid 6.0はグループの最悪の結果をもたらします。

3番目の最後のテストでは、100万回の反復に対して重い数学関数を実行します。この関数は、整数演算と浮動小数点演算を実行します。

そして、ここで初めて、Javaが実際にCよりも速く実行されるという結果が得られました!これには2つの可能な説明があり、両方とも最適化とOに関するものです最適化ARMのコンパイラ。まず、O最適化 コンパイラーは、Android StudioのCコンパイラーよりも、レジスターの割り当てなどにより、AArch64により最適なコードを生成できた可能性があります。より良いコンパイラは、常により良いパフォーマンスを意味します。また、コードを通るパスがあり、O最適化コンパイラが計算した結果は、最終結果に影響を与えないため最適化できますが、Cコンパイラはこの最適化を発見していません。この種の最適化はOの大きな焦点の1つであることを知っています最適化Android 6.0のコンパイラ。この関数は私の純粋な発明であるため、一部のセクションを省略するコードを最適化する方法があるかもしれませんが、私はそれを発見していません。もう1つの理由は、この関数を100万回呼び出しても、ガベージコレクターが実行されないことです。


素数テストと同様に、このテストは64ビットを使用します長いです 整数。次善のスコアが64ビットAndroid 5.0から得られる理由です。次に、32ビットAndroid 6.0、32ビットAndroid 5.0、最後に32ビットAndroid 4.4が続きます。

要約

全体的なCはJavaよりも高速ですが、64ビットのAndroid 6.0 Marshmallowのリリースにより、2つの間のギャップは大幅に縮小されました。もちろん、現実の世界では、JavaとCのどちらを使用するかは白黒ではありません。 Cにはいくつかの利点がありますが、すべてのAndroid UI、すべてのAndroidサービス、およびすべてのAndroid APIはJavaから呼び出されるように設計されています。 Cは、空のOpenGLキャンバスが必要で、Android APIを使用せずにそのキャンバスに描画する場合にのみ実際に使用できます。

ただし、アプリに多少の手間がかかる場合は、これらの部分をCに移植すると、速度が向上する可能性がありますが、かつては見られなかったほどです。

Googleは今週中にビデオメッセージングをGoogle Duoに提供します。ビデオメッセージングを使用すると、簡単なビデオを連絡先に送信できます。これまでにわかっていることから、ビデオは一度に1人の友人にしか送信できないようです。本日Twitterで、Googleは今週、ビデオチャットサービスGoogle Duoに新機能を導入すると発表した。新しい機能はvideoです。...

本日、GoogleはDuoビデオチャットアプリの新しい低光量モードを発表しました。名前から、友人とチャットするときに低照度モードではUI要素が暗くなることが予想されます。代わりに、モードは照明条件を検出し、顔をより明るく照らすように画像を自動的に調整します。これは、照明条件が悪い場合や、停電が頻繁に起こる地域に住んでいる人にとって特に便利な機能です。...

出版物