2017-02-22 6 views
0

Я разрабатываю приложение для Android, в котором мне нужно инициализировать массив float. У меня есть этот код:Медленный код на Nexus 6P

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

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

И когда я запускаю этот код на моих тестовых устройствах - я получил странные результаты: вызов addVertexAttribute 30 раз на Nexus 6P взяла 75000 наносекунд, на HTC One X - 15000 наносекунд, HTC желание C - 70000 наносекунд. Итак, почему он в 5 раз меньше на самом мощном устройстве?

My Nexus 6P находится на nougat 7.1.1, укоренены. HTC One X 4.1.1, коренится. HTC Desire C - 4.0.1, не укорененный.

Кроме того, я использую фреймворк libgdx, и это инициализация сетки.

ответ

0

Это связано с тем, что устройства Nexus 6+ имеют шифрование данных.

Encrypted vs. Decrypted Benchmarks

+0

Хорошо, я вижу. Проведено некоторое исследование - в тестах он в 2 раза медленнее. Могу ли я обойти это как-то в своем приложении? Я не хочу, чтобы он медленно работал на мощных устройствах. – user3470643

+0

@ user3470643, No. Он находится на системном уровне. –

Смежные вопросы