Pregunta

Actualmente estoy escribiendo un artículo sobre la plataforma Android. Después de algunas investigación , está claro que Dalvik tiene margen de mejora. Me preguntaba, ¿cuál crees que sería el mejor uso del tiempo de un desarrollador con este objetivo?

La compilación JIT parece la más grande, pero también escuché que esto sería de uso limitado en una máquina con tan pocos recursos. ¿Alguien tiene un recurso o datos que respalden esto?

¿Hay alguna otra opción que deba considerarse? Además de desarrollar un kit de desarrollo nativo robusto para evitar la VM.

Para aquellos que estén interesados, hay una conferencia grabada y puesta en línea sobre Dalvik VM .

Cualquier idea es bienvenida, ya que esta pregunta parece subjetiva aclararé que la respuesta que aceptaré debe tener alguna justificación para los cambios propuestos. Cualquier dato que lo respalde, como la mejora en Sun JVM cuando se introdujo, sería una gran ventaja.

¿Fue útil?

Solución

  1. Mejor recolección de basura: compactación como mínimo (para eliminar los problemas de fragmentación de memoria que se experimentan hoy en día), idealmente menos CPU intensiva para hacer la recolección en sí (para reducir las quejas de "mi velocidad de cuadros de juego")
  2. JIT, como citas
  3. Documentación suficiente que, cuando se combina con un NDK, alguien lo suficientemente loco podría compilar el código de bytes de Dalvik en código nativo para una opción de compilación AOT
  4. Haga que sea separable de Android, de modo que otros proyectos puedan experimentar con él y las contribuciones de la comunidad lleguen en mayor cantidad y en un clip más rápido

Estoy seguro de que podría aportar otras ideas si las necesita.

Otros consejos

  1. JIT. Lo que no ayuda es un montón de basura. Es posible que sea más selectivo sobre el código que JIT, pero tener 1/10 del rendimiento del código nativo siempre va a ser limitante

  2. GC decente. Los recolectores de basura generacionales modernos no tienen grandes tartamudeos.

  3. Mejor análisis de código. Hay muchos casos en los que no es necesario realizar asignaciones / liberaciones, mantener bloqueos, etc. Le permite escribir código limpio en lugar de hacer optimizaciones de que la máquina es mejor en

En teoría, la mayoría de los lenguajes de nivel superior (Java, Javascript, Python, ...) deberían estar dentro del 20% del rendimiento del código nativo en la mayoría de los casos. Pero requiere que el proveedor de la plataforma gaste más de 100 años de desarrollador. Sun Java se está poniendo bueno. También han estado trabajando en ello durante 10 años.

Uno de los principales problemas con Dalvik es el rendimiento, lo cual es terrible, escuché, pero una de las cosas que más me gustaría es agregar más idiomas.

La JVM ha tenido proyectos comunitarios que hacen que Python y Ruby se ejecuten en la plataforma, e incluso se han desarrollado lenguajes especiales como Scala, Groovy y Closure. Sería bueno ver estos (y / u otros) en la plataforma Dalvik también. Sun también ha estado trabajando en la máquina Da Vinci, una extensión de tipeo dinámico de la JVM, que indica un cambio importante lejos del "un idioma para todos". filosofía que Sun ha seguido durante los últimos 15 años.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top