Volver a la página principal
miércoles 25 septiembre 2024
29

Cómo obtener el uso de memoria en PHP

La función memory_get_usage() en PHP se utiliza para obtener la cantidad de memoria, en bytes, que está siendo utilizada por el script en ejecución. Esto es útil para monitorear y optimizar el rendimiento de aplicaciones PHP, especialmente en entornos donde los recursos de memoria son limitados.

¿Qué es memory_get_usage() en PHP?

memory_get_usage() es una función incorporada en PHP que devuelve el uso actual de memoria por el script. Esta función permite medir la memoria asignada, lo que es útil para detectar fugas de memoria o identificar operaciones que consumen demasiados recursos.

La función puede devolver el uso de memoria real asignado por el sistema operativo (que puede ser mayor que la memoria realmente utilizada por el script) o solo la memoria efectivamente utilizada.

Ejemplos de uso de memory_get_usage() en PHP

Obtener el uso de memoria actual

Este ejemplo muestra cómo obtener la memoria utilizada por el script en el momento de la llamada a la función.

<?php
// Obtener el uso de memoria actual
$memoriaActual = memory_get_usage();

echo "Memoria utilizada: " . $memoriaActual . " bytes.\n";
?>

Medir el uso de memoria antes y después de una operación

Puedes usar memory_get_usage() para medir cómo cambian los recursos de memoria durante la ejecución del código.

<?php
// Obtener el uso de memoria antes de una operación
$antes = memory_get_usage();

$array = [];
for ($i = 0; $i < 10000; $i++) {
    $array[] = md5($i);
}

// Obtener el uso de memoria después de la operación
$despues = memory_get_usage();

echo "Memoria utilizada antes: " . $antes . " bytes.\n";
echo "Memoria utilizada después: " . $despues . " bytes.\n";
echo "Diferencia: " . ($despues - $antes) . " bytes.\n";
?>

Uso de memoria real (memoria asignada por el sistema operativo)

La función memory_get_usage() tiene un parámetro opcional $real_usage que, si se establece en true, devuelve el uso real de memoria asignada por el sistema operativo, no solo la memoria utilizada por el script.

<?php
// Obtener la memoria utilizada
$memoria = memory_get_usage();

// Obtener la memoria real asignada por el sistema
$memoriaReal = memory_get_usage(true);

echo "Memoria utilizada: " . $memoria . " bytes.\n";
echo "Memoria real asignada: " . $memoriaReal . " bytes.\n";
?>

Monitorear el límite de memoria

PHP establece un límite de memoria para scripts a través de memory_limit. Puedes utilizar memory_get_usage() para asegurarte de que tu script no se aproxime a ese límite.

<?php
// Mostrar el límite de memoria configurado en PHP
echo "Límite de memoria: " . ini_get('memory_limit') . "\n";

// Verificar el uso actual de memoria
echo "Memoria utilizada: " . memory_get_usage() . " bytes.\n";
?>

Consideraciones

  • Uso real de memoria: Al pasar true como argumento a memory_get_usage(true), puedes obtener la memoria real asignada por el sistema operativo, que puede ser mayor que la memoria efectiva utilizada por PHP.
  • Optimización: Esta función es especialmente útil para detectar cuellos de botella y optimizar scripts de PHP que manejan grandes cantidades de datos.
  • Compatibilidad: Esta función está disponible desde PHP 5 y es compatible con versiones posteriores.

Referencia oficial

Para más detalles, consulta la documentación oficial de PHP: Documentación de memory_get_usage()

Etiquetas:
php
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer