Медленный код на Nexus 6P

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

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 Desire C — 70000 наносекунд. Так почему же на самом мощном устройстве он в 5 раз медленнее?

Мой Nexus 6P работает на нуге 7.1.1 с рутом. HTC One X 4.1.1 с рутом. HTC Desire C - 4.0.1, без рута.

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


person user3470643    schedule 22.02.2017    source источник


Ответы (1)


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

Зашифрованные и расшифрованные тесты

person Anton A.    schedule 22.02.2017
comment
Да я вижу. Провёл исследование - в бенчмарках он в 2 раза медленнее. Могу ли я как-то обойти это в своем приложении? Я не хочу, чтобы он был медленным на мощных устройствах. - person user3470643; 22.02.2017
comment
@ user3470643, Нет. Это на системном уровне. - person Anton A.; 22.02.2017