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.
- Cómo depurar código C en Android Studio
- ¿Cómo puedo convertirme en un desarrollador de aplicaciones de Android sin conocimientos o habilidades previas de programación?
- ¿Cuál es la mejor y más rápida forma de aprender Java y Android?
- ¿Cuáles son las cosas importantes en Android en el nivel avanzado si ha terminado con las cosas para principiantes en el desarrollo de Android?
- ¿Cuál es la mejor biblioteca para implementar tareas asincrónicas cancelables, de alta prioridad y de larga duración que involucren redes, entre otras operaciones que también deberían ser asincrónicas, en Android?
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.