¿Por qué la VM de ART es más lenta que la VM de Dalvik para clasificar una matriz cuando el tamaño de la matriz es 62000?

Mira la fila 62 de este gráfico .

Es el tiempo necesario para una matriz de enteros de clasificación rápida, en una máquina virtual para Android 4.4 (KitKat). ¿Cómo es que ART es más rápido excepto en un tamaño de matriz de 62000? De hecho, es significativamente más lento que Dalvik, ya que Dalvik tarda 238 segundos, pero ART tarda 333 segundos. El resultado ni siquiera se ajusta al patrón de resultados, en las filas 61 y 63. Incluso podría decir que es anómalo. Esto es muy extraño. ¿Por qué pasó esto?

No estoy seguro de si está fuera de tema en android.se, pero esto probablemente reciba más atención en Stack Overflow. Si tiene ganas de migrar esta pregunta, marque la atención del moderador.
Creo que esto debería estar en stackoverflow.com

Respuestas (1)

Lo más probable es que la prueba sea inconsistente. ¿Ha intentado repetir la prueba al menos 100 veces para obtener resultados estadísticos pseudoválidos? ¿Y estás seguro de que el emulador es una plataforma válida para probar cosas de tan bajo nivel? Puede estar optimizado para Dalvik VM.

Lo mejor es probarlo en un dispositivo real, como el nuevo Nexus 5 o esperar las actualizaciones de Nexus 4 y Nexus 7.

No fui yo quien hizo las pruebas, lo encontré mientras estaba en un canal de IRC, con un desarrollador conocido.
Te dije por qué sospecho que la prueba es inconsistente, sin importar quién la hizo. Sugeriría ejecutar el código usted mismo una vez que tenga una versión 4.4 adecuada para su teléfono inteligente, o espere más pruebas. Ese resultado puede ser el resultado de varios factores, uno de ellos un problema de CPU o emulador. En las estadísticas, este tipo de datos se considera un valor atípico y la mayoría de los algoritmos simplemente los ignoran (más o menos).