El recuento de referencias es una técnica de programación informática que se utiliza para optimizar la gestión de la memoria, lo que permite que la computadora sepa instantáneamente cuándo es «seguro» liberar un valor particular o un bloque de valores de la memoria. Al programar, la economía es crucial, de modo que los programas se puedan ejecutar en la gama más amplia posible de hardware informático. La memoria de acceso aleatorio (RAM) es un recurso importante pero finito para una computadora. Mantener los datos del programa almacenados en la RAM es una de las formas más rápidas de mejorar el tiempo de respuesta de un programa, pero consumir demasiada RAM del sistema convierte al programa en un acaparador de recursos, una característica indeseable desde el punto de vista del usuario final. El recuento de referencias actúa para equilibrar esto al mantener los datos en la RAM todo el tiempo que los necesite el programa.
La técnica del recuento de referencias funciona mediante el seguimiento del número y el nombre de los objetos que utiliza el programa. Piense en la memoria de la computadora como la habitación de un niño llena de juguetes y el espacio de almacenamiento en el disco duro como un cofre de juguetes en la habitación. El recuento de referencias realiza un seguimiento de los «juguetes» (objetos) específicos con los que el programa (niño) está jugando en cualquier momento; en otras palabras, la cantidad de objetos que se encuentran actualmente en el «piso». Tan pronto como el programa deja de jugar con un objeto específico, el recuento de referencias toma nota de esto y envía el objeto nuevamente al almacenamiento en el disco duro, en lugar de permitir que continúe consumiendo espacio en la RAM.
Cuando se trata de beneficios, la principal ventaja del recuento de referencias proviene de la inmediatez. En el instante en que el programa termina con un objeto, lo guarda, liberando espacio para otros objetos en el programa y para otros programas en la computadora. Desde el punto de vista del usuario final, este es un enfoque muy limpio; el programa nunca ocupa más memoria de la que requiere en un momento específico.
La desventaja de esta técnica es la economía. Para que el recuento de referencias funcione de forma eficaz, debe utilizar un dispositivo de supervisión permanente para gestionar el número de objetos que se utilizan en un momento dado. Esto consume una pequeña parte de la memoria y la capacidad de la CPU, lo que aumenta la sobrecarga del procesador del programa. El resultado es que la decisión de utilizar el recuento de referencias se convierte en un acto de equilibrio, que determina si el programador desea asignar un esfuerzo adicional a la CPU o la RAM.