Warum ist die ART-VM beim Sortieren eines Arrays langsamer als die Dalvik-VM, wenn die Arraygröße 62000 beträgt?

Sehen Sie sich Zeile 62 dieser Grafik an .

Es ist die Zeit, die für ein schnelles Sortieren eines ganzzahligen Arrays auf einer VM für Android 4.4 (KitKat) benötigt wird. Wie kommt es, dass ART außer bei einer Array-Größe von 62000 schneller ist? Tatsächlich ist es deutlich langsamer als Dalvik, da Dalvik 238 Sekunden benötigt, ART jedoch 333 Sekunden. Das Ergebnis passt nicht einmal in das Muster der Ergebnisse in den Zeilen 61 und 63. Ich könnte sogar sagen, dass es anomal ist. Das ist sehr seltsam. Warum passiert das?

Ich bin mir nicht sicher, ob es auf android.se nicht zum Thema gehört, aber dies wird wahrscheinlich bei Stack Overflow besser beachtet. Wenn Sie diese Frage migrieren möchten, markieren Sie sie für die Aufmerksamkeit des Moderators.
Ich denke, das sollte auf stackoverflow.com sein

Antworten (1)

Höchstwahrscheinlich ist der Test inkonsistent. Haben Sie versucht, den Test mindestens 100 Mal zu wiederholen, um pseudogültige statistische Ergebnisse zu erhalten? Und sind Sie sicher, dass der Emulator eine gültige Plattform ist, auf der Sie solche Dinge auf niedriger Ebene testen können? Es kann für die Dalvik-VM optimiert werden.

Am besten versuchen Sie es auf einem echten Gerät, wie dem neuen Nexus 5, oder warten Sie auf die Updates für Nexus 4 und Nexus 7.

Ich war nicht derjenige, der die Tests durchführte, ich bin darauf gestoßen, als ich auf einem IRC-Kanal mit einem bekannten Entwickler war.
Ich habe Ihnen gesagt, warum ich vermute, dass der Test widersprüchlich ist, egal wer den Test gemacht hat. Ich würde vorschlagen, den Code selbst auszuführen, sobald Sie eine richtige 4.4-Version für Ihr Smartphone haben, oder auf weitere Tests warten. Dieses Ergebnis kann das Ergebnis mehrerer Faktoren sein, einer davon ein CPU- oder Emulator-Schluckauf. In der Statistik wird diese Art von Daten als Ausreißer betrachtet und die meisten Algorithmen ignorieren sie einfach (mehr oder weniger).