Anuncios

Bienvenidos sean a este post, continuando con el post anterior vamos a hablar sobre el recolector incremental y para evitar mucha complejidad diremos que este ejecuta operaciones atomicamente;

Esto implica que no se puede detener mientras se esta ejecutando estas operaciones

Anuncios

En otras palabras Lua aun “detiene al mundo” durante una operacion atomica, si una operacion atomica toma demasiado tiempo para completar, esta podria interferir con los tiempos de tu programa, para actuar sobre esto las operaciones atomicas principales son tablas traversales y la fase de limpieza.

Anuncios
Anuncios

La atomicidad de la tabla transversal significa que el recolector nunca se detiene mientras atraviesa una tabla, esto puede ser un problema solo si tu programa tiene una tabla realmente enorme, si tienes este tipo de problema deberias considerar de cortar la tabla en partes mas pequeñas, esto es una buena practica inclusive si no tienes problemas con el recolector de basura, una reorganizacion tipica es cortar la tabla jerarquicamente y agrupando las entradas relacionadas dentro de subtablas, observa que el problema es el numero de entradas en la tabla no el tamaño de cada entrada.

La atomicidad de la fase de limpieza implica que el recolector colecta todas las userdata para ser finalizada y limpia todas las tablas debiles en un solo paso, esto puede ser un problema si tu programa tiene cantidades enormes de userdata o numeros enormes de entradas en una tabla debil, ya sea unas pocas tablas debiles largas o incontables tablas debiles, ambos problemas parecen no surgir en la practica pero necesitamos mas experiencia con este recolector para estar seguros por eso es una buena practica hacer lo antes recomendado.

Anuncios

En resumen, hoy hemos visto el nuevo paso que utiliza el recolector de basura, como trabaja, porque se considera de forma atomica, porque a pesar de seguir deteniendo el mundo nosotros no lo notamos como antes, y algunas recomendaciones para evitar problemas de performance, espero les haya sido util sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Tengo un Patreon donde podes acceder de manera exclusiva a material para este blog antes de ser publicado, sigue los pasos del link para saber como.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00