Java vs C App-Leistung - Gary erklärt

Autor: John Stephens
Erstelldatum: 23 Januar 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Java vs C App-Leistung - Gary erklärt - Apps
Java vs C App-Leistung - Gary erklärt - Apps

Inhalt


Ausgehend von der schlechtesten Bewertung zeigt 32-Bit-Version von Android 5.0, dass der Java-Code 296% langsamer als C oder mit anderen Worten 4-mal langsamer lief. Denken Sie auch hier daran, dass die absolute Geschwindigkeit hier nicht wichtig ist, sondern der Unterschied in der Zeit, die zum Ausführen des Java-Codes benötigt wird, im Vergleich zum C-Code auf demselben Gerät. 32-Bit Android 4.4 KitKat mit seiner Dalvik JVM ist mit 237% etwas schneller. Sobald der Sprung zu Android 6.0 gemacht ist, beginnen sich die Dinge dramatisch zu verbessern, wobei 64-Bit-Android 6.0 den kleinsten Unterschied zwischen Java und C ergibt.

Der zweite Test ist der Primzahltest, bei dem ein Versuch nach Division durchgeführt wird. Wie oben erwähnt, verwendet dieser Code 64-Bitlange Ganzzahlen und bevorzugen daher 64-Bit-Prozessoren.

Wie erwartet werden die besten Ergebnisse von Android auf 64-Bit-Prozessoren erzielt. Für 64-Bit-Android 6.0 ist der Geschwindigkeitsunterschied mit nur 3% sehr gering. Für 64-Bit-Android 5.0 sind es 38%. Dies zeigt die Verbesserungen zwischen ART auf Android 5.0 und dem Optimieren Compiler von ART in Android 6.0 verwendet. Da Android 7.0 N noch eine Beta-Version für die Entwicklung ist, habe ich die Ergebnisse nicht gezeigt, aber es ist im Allgemeinen genauso leistungsfähig wie Android 6.0 M, wenn nicht besser. Die schlechtesten Ergebnisse sind für die 32-Bit-Versionen von Android und seltsamerweise liefert 32-Bit-Android 6.0 die schlechtesten Ergebnisse der Gruppe.


Der dritte und letzte Test führt eine schwere mathematische Funktion für eine Million Iterationen aus. Die Funktion führt sowohl Ganzzahl- als auch Gleitkomma-Arithmetik aus.

Und hier haben wir zum ersten Mal ein Ergebnis, bei dem Java tatsächlich schneller als C läuft! Hierfür gibt es zwei mögliche Erklärungen, die beide mit der Optimierung und dem O zu tun habenptimizingCompiler von ARM. Erstens, die Optimizing Der Compiler hätte einen optimaleren Code für AArch64 mit einer besseren Registerzuordnung usw. erzeugen können als der C-Compiler in Android Studio. Ein besserer Compiler bedeutet immer eine bessere Leistung. Auch könnte es einen Weg durch den Code geben, den das OptimizingDer berechnete Compiler kann entfernt optimiert werden, da er keinen Einfluss auf das Endergebnis hat, aber der C-Compiler hat diese Optimierung nicht erkannt. Ich weiß, dass diese Art der Optimierung einer der großen Schwerpunkte für das O warptimizingCompiler in Android 6.0. Da die Funktion für mich nur eine reine Erfindung ist, könnte es eine Möglichkeit geben, den Code so zu optimieren, dass einige Abschnitte weggelassen werden. Ich habe sie jedoch nicht entdeckt.Der andere Grund ist, dass der Garbage Collector nicht ausgeführt wird, wenn diese Funktion auch nur eine Million Mal aufgerufen wird.


Wie beim Primes-Test wird bei diesem Test 64-Bit verwendetlange Ganzzahlen, weshalb das nächstbeste Ergebnis von 64-Bit-Android 5.0 stammt. Dann kommt 32-Bit-Android 6.0, gefolgt von 32-Bit-Android 5.0 und schließlich 32-Bit-Android 4.4.

Einpacken

Insgesamt ist C schneller als Java, die Lücke zwischen den beiden wurde jedoch mit der Veröffentlichung von 64-Bit-Android 6.0 Marshmallow drastisch verringert. In der realen Welt ist die Entscheidung für Java oder C natürlich nicht schwarzweiß. Während C einige Vorteile bietet, sind alle Android-Benutzeroberflächen, alle Android-Dienste und alle Android-APIs so konzipiert, dass sie von Java aufgerufen werden können. C kann wirklich nur verwendet werden, wenn Sie eine leere OpenGL-Zeichenfläche benötigen und auf dieser Zeichenfläche zeichnen möchten, ohne Android-APIs zu verwenden.

Wenn Ihre App jedoch einiges zu heben hat, können diese Teile nach C portiert werden, und Sie können eine Geschwindigkeitsverbesserung feststellen, die jedoch nicht so groß ist, wie Sie es einst gesehen haben könnten.

Da Aufladen de Handy-Akku unterweg it eit den Anfängen de martphone ein tändiger chmerz für die Nutzer. Wer e onnig mag, hat vielleicht eine Tage eine Löung dank eine neu augegrabe...

Angeicht der Tatache, da Unternehmen wie Mobvoi und Foil in letzter Zeit hervorragende Wear O-Geräte entwickeln, it e innvoll, da die Plattform mehr OEM anzieht. Genau o ieht e mit Xiaomi au. J&#...

Heute Lesen