Почему виртуальная машина ART медленнее, чем виртуальная машина Dalvik, при сортировке массива, если размер массива равен 62000?

Посмотрите на строку 62 этого графика .

Это время, необходимое для быстрой сортировки целочисленного массива на виртуальной машине для Android 4.4 (KitKat). Почему ART быстрее, кроме как при размере массива 62000? На самом деле он значительно медленнее, чем Dalvik, так как Dalvik занимает 238 секунд, а ART — 333 секунды. Результат даже не соответствует шаблону результатов в строках 61 и 63. Я бы даже сказал, что это аномально. Это очень странно. Почему это происходит?

Я не уверен, что это не по теме на android.se, но, вероятно, это может привлечь больше внимания на Stack Overflow. Если вы хотите перенести этот вопрос, отметьте для внимания модератора.
Я думаю, это должно быть на stackoverflow.com

Ответы (1)

Скорее всего тест некорректен. Вы пытались повторить тест не менее 100 раз, чтобы получить псевдодостоверные статистические результаты? И вы уверены, что эмулятор является подходящей платформой для тестирования таких низкоуровневых вещей? Он может быть оптимизирован для виртуальной машины Dalvik.

Лучше всего попробовать это на реальном устройстве, таком как новый Nexus 5, или дождаться обновлений Nexus 4 и Nexus 7.

Я не проводил тесты, я наткнулся на это, когда был на IRC-канале с известным разработчиком.
Я сказал вам, почему я подозреваю, что тест непостоянен, независимо от того, кто его проводил. Я бы посоветовал запустить код самостоятельно, как только у вас будет надлежащая версия 4.4 для вашего смартфона, или дождаться дальнейших тестов. Этот результат может быть результатом нескольких факторов, одним из которых является сбой процессора или эмулятора. В статистике такие данные считаются выбросами, и большинство алгоритмов просто игнорируют их (более или менее).