2017-02-22 3 views
0

Ich entwickle eine Android-App, in der ich Float-Array initialisieren muss. Ich habe diesen Code:Langsamer Code auf Nexus 6P

private float[] verticesArray; 
private int vertexPosition = 0; 

public void addVertexAttribute(float attribute) { 
    verticesArray[vertexPosition++] = attribute; 
} 

Und wenn ich diesen Code auf meinem Test-Geräten laufen - ich habe seltsame Ergebnisse: Aufruf addVertexAttribute 30-mal auf dem Nexus 6P nahm 75000 Nanosekunden, auf dem HTC One X - 15000 ns, HTC Wunsch C - 70000 Nanosekunden. Also, warum ist es 5x mal langsamer auf dem leistungsstärksten Gerät?

Mein Nexus 6P ist auf Nougat 7.1.1, gerootet. HTC One X ist 4.1.1, gerootet. HTC Desire C - 4.0.1, nicht verwurzelt.

Auch ich benutze libgdx Framework und dies ist eine Mesh-Initialisierung.

Antwort

0

Es ist, weil Nexus 6+ Geräte Datenverschlüsselung hat.

Encrypted vs. Decrypted Benchmarks

+0

Ok, ich verstehe. Hat einige Forschung - in den Benchmarks ist es 2 mal langsamer. Kann ich es irgendwie in meiner App umgehen? Ich will nicht, dass es auf leistungsfähigen Geräten langsam ist. – user3470643

+0

@ user3470643, Nein. Es ist auf Systemebene. –

Verwandte Themen