Red de conocimiento informático - Aprendizaje de programación - ¿Cuándo se lanzará lua?

¿Cuándo se lanzará lua?

Lua proporciona gestión automática de la memoria. Esto significa que no tiene que preocuparse por asignar memoria para crear nuevos objetos ni por liberar memoria activamente cuando esos objetos ya no sean necesarios. Lua administra automáticamente la memoria ejecutando un recolector de basura que recupera la memoria ocupada por objetos muertos (es decir, objetos a los que ya no se puede acceder en Lua) una y otra vez. Todos los objetos en Lua se administran automáticamente, incluidas tablas, datos de usuario, funciones, subprocesos y cadenas.

Lua implementa un recolector de marcas y barridos incremental. Utiliza dos números para controlar el ciclo de recolección de basura: la pausa del recolector de basura y el multiplicador de pasos del recolector de basura.

La pausa del recolector de basura controla cuánto tiempo espera el recolector de basura antes de iniciar un nuevo ciclo de recolección. A medida que aumenta el valor, el coleccionista se vuelve menos agresivo. Un valor menor que 1 significa que el recolector no esperará al comienzo de un nuevo ciclo. Un valor de 2 significa que el recopilador no iniciará un nuevo ciclo hasta que la cantidad total de memoria utilizada se haya duplicado.

El multiplicador paso a paso controla la velocidad del recopilador en relación con la asignación de memoria. Los valores más altos hacen que el recolector trabaje de manera más agresiva y al mismo tiempo aumentan el tamaño de cada paso de recolección. Un valor inferior a 1 hará que el colector funcione muy lentamente y puede provocar que nunca complete el ciclo actual. El valor predeterminado es 2, lo que significa que el recopilador se ejecutará dos veces más rápido que el asignador de memoria.

Puedes cambiar estos números llamando a lua_gc en C o a Collectgarbage en Lua. Ambos aceptan valores porcentuales (por lo que pasar un argumento de 100 significa que el valor real es 1). También puede controlar directamente el recopilador (como detenerlo o reiniciarlo) a través de estas funciones.

Citado de:/2000/download/lua_manual.html