Ejemplo de GC en PHP

Descubre cómo funciona la gestión de memoria en PHP y el recolector de basura GC, con ejemplos prácticos y técnicas para medir memoria (memory_get_usage, memory_get_peak_usage) y liberar ciclos. Guía de optimización para scripts de larga duración y rendimiento, de la mano de Q2BSTUDIO.

7 sept 2025 • 3 min de lectura • Equip Q2BSTUDIO

Inteligencia-Artificial-

Vamos a explicar de forma sencilla la gestión de memoria en PHP y su recolector de basura GC con ejemplos prácticos y consejos útiles.

Qué es la gestión de memoria en PHP

Cuando un script PHP se ejecuta, necesita RAM para almacenar variables, gestionar arrays y objetos, y ejecutar funciones. PHP asigna memoria al crear variables y la libera automáticamente cuando ya no se necesitan, por ejemplo al salir del ámbito de una función.

Qué es el Garbage Collection GC

El GC es el proceso que limpia memoria que ya no está en uso. Normalmente PHP libera memoria cuando las variables salen de su ámbito. Sin embargo, en presencia de referencias circulares entre objetos, el motor no puede determinar de forma trivial que esa memoria es liberable. Ahí entra el GC, que detecta ciclos y libera esos bloques.

Ejemplo 1 Limpieza normal sin necesidad de GC

Imagina una función test que crea una variable local llamada name con el valor Ahmed. Durante la ejecución se asigna memoria, se usa, y al terminar la función la variable sale de ámbito y el motor libera su memoria inmediatamente. No hace falta que intervenga el GC.

Ejemplo 2 Referencias circulares que requieren GC

Supón una clase A con una propiedad ref. Se crean dos instancias a y b, y cada una apunta a la otra mediante ref. Aunque llames a unset sobre a y b, la memoria puede permanecer retenida porque los objetos se referencian mutuamente, formando un ciclo. El recolector de basura de PHP detecta ese ciclo en una pasada posterior y libera la memoria. Sin GC, esto sería una fuga hasta el fin del proceso.

Ejemplo 3 Comprobación del uso de memoria

Puedes medir el consumo con memory_get_usage antes y después de asignar una gran cadena con str_repeat. Tras unset de la variable, el consumo baja. Si existieran ciclos, una llamada a gc_collect_cycles podría reducir aún más la memoria usada al romper esos ciclos. También resulta útil memory_get_peak_usage para ver el pico máximo de consumo.

Puntos clave

1 La limpieza normal sucede cuando las variables salen de ámbito. 2 Las referencias circulares necesitan la intervención del GC. 3 gc_collect_cycles se usa para forzar la recolección en casos de depuración o scripts de larga duración. 4 Usa memory_get_usage y memory_get_peak_usage para monitorizar y optimizar.

Consejos prácticos

En scripts de larga vida como workers, demonios o tareas de colas, conviene liberar estructuras grandes con unset, evitar referencias circulares innecesarias, y considerar patrones que minimizan ciclos. En versiones modernas puedes apoyarte en estructuras como WeakReference cuando sea apropiado. Mide siempre, optimiza después.

Cómo te ayuda Q2BSTUDIO

En Q2BSTUDIO somos una empresa de desarrollo de software con amplia experiencia en software a medida y aplicaciones a medida, optimizando rendimiento y memoria en entornos PHP, microservicios y arquitecturas modernas. Integramos mejores prácticas de ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y soluciones con power bi, y además impulsamos proyectos de inteligencia artificial, ia para empresas y agentes IA para automatizar decisiones y procesos críticos. Si buscas crear una plataforma sólida y eficiente, descubre nuestro enfoque de desarrollo de aplicaciones y software a medida o potencia tus productos con nuestras capacidades de inteligencia artificial.

Resumen

PHP gestiona la memoria de forma automática y el GC existe principalmente para resolver referencias circulares. Normalmente no tendrás que preocuparte, salvo en procesos persistentes donde monitorizar, medir y aplicar buenas prácticas marca la diferencia. Q2BSTUDIO puede ayudarte a diseñar, auditar y optimizar tus soluciones de backend, integrando escalabilidad, ciberseguridad y analítica avanzada con power bi para que tu plataforma crezca de forma segura y eficiente.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Intel·ligència artificial

Agents d'IA, chatbots i assistents intel·ligents que automatitzen tasques i atenen els teus clients 24/7 per millorar l'eficiència del teu negoci.

Més info

Desenvolupament de programari

Aplicacions web, mòbils i d'escriptori, intranets, e-commerce, SaaS i plataformes de gestió dissenyades per a les necessitats concretes de la teva empresa.

Més info

Serveis cloud

Migració, infraestructura, hosting gestionat, alta disponibilitat i seguretat en Microsoft Azure i Amazon Web Services perquè el teu negoci escali sense límits.

Més info

Ciberseguretat i pentesting

Auditories de seguretat, test d'intrusió (pentesting) i protecció d'aplicacions, dades i infraestructura on-premise i cloud, amb hacking ètic i compliment normatiu.

Més info

Business Intelligence

Quadres de comandament i anàlisi de dades amb Power BI: integrem les teves fonts, dissenyem dashboards i KPIs i convertim les teves dades en decisions.

Més info

Automatització de processos

Automatitzem tasques repetitives i connectem les teves aplicacions amb n8n, Power Automate, Make i RPA, eliminant treball manual i augmentant la productivitat.

Més info

Formació per a empreses

Formem els teus equips en tecnologia amb criteri: desenvolupament web, bases de dades, Git, bones pràctiques i seguretat, automatització amb n8n, intel·ligència artificial per a empreses i creació de solucions d'IA amb Azure AI Foundry.

Més info

Auditoria de codi

Auditem el codi que creguis tu, el teu equip o una IA: et diem què està bé i què millorar, el securitzem i el deixem llest per a producció, web o app.

Més info

Generació d'imatges amb IA

Creem per tu les imatges que necessita el teu negoci amb intel·ligència artificial: producte, xarxes, publicitat, il·lustració i avatars. Tu ens dius què vols i t'ho lliurem llest per fer servir.

Més info

Generació de vídeos amb IA

Creem per tu vídeos amb intel·ligència artificial: promocionals, per a xarxes, presentadors virtuals, doblatge i animacions. Ens comptes la idea i t'ho lliurem muntat i llest per publicar.

Més info

Avatars conversacionals amb IA

Creem avatars conversacionals amb IA —humans digitals amb cara i veu— que atenen els teus clients i equips amb el coneixement de la teva empresa, a la teva web, monitors interactius, WhatsApp o Teams.

Més info

Màrqueting Online i IA

Google Ads, Meta Ads, LinkedIn Ads i posicionament en motors d'IA (GEO/AEO): captem clients i fem que la teva marca aparegui on et busquen, també a ChatGPT, Gemini i Perplexity.

Més info

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.

Live Chat