¿Debería Google reescribir Android para usar una máquina virtual C ++ llvm tipo en lugar de Dalvik y también reemplazar la pila Java con una pila C ++ nativa para resolver algunos de los problemas de latencia, retraso y distensión, especialmente para el desarrollo de juegos?

Creo que buena parte del retraso se debe a la recolección de basura.

GC funciona bien cuando tiene una gran cantidad de altura libre. Cuando hay 4 o 5 veces más memoria de la que realmente necesitas, es realmente muy rápido.

Pero cuando la memoria está limitada, GC comienza a funcionar mal. Y en los dispositivos móviles, la memoria está limitada la mayor parte del tiempo. GC puede desencadenar retrasos que detienen todo el procesamiento durante una buena fracción de segundo.

Los fabricantes de hardware de Android resuelven este problema agregando cada vez más RAM.

Cada vez está más claro que la solución de Apple es simplemente mejor. El recuento de referencias da como resultado un rendimiento mucho más predecible. La memoria se libera tan pronto como los objetos caen fuera del alcance y no hay eventos gigantes de limpieza de la casa que apaguen el sistema.

Más importante aún, el recuento de referencias funciona mucho mejor en entornos de memoria restringida.

GC es una parte esencial de Java. En C ++, hay todo tipo de esquemas de administración de memoria, pero si se proporcionara un GC en todo el sistema, todavía tendríamos retrasos y problemas.