¿Por qué este simple script php pierde memoria?

Con la esperanza de intentar evitar futuras fugas de memoria en programas php (módulos drupal, etc.) he estado jugando con simples scripts php que pierden memoria.

¿Podría un experto en php ayudarme a encontrar qué información sobre este script hace que el uso de la memoria aumente continuamente?

Intenta ejecutarlo tú mismo, cambiando varios parámetros. Los resultados son interesantes. Aquí está:

<?php

function memstat() {
  print "current memory usage: ". memory_get_usage() . "\n";
}

function waste_lots_of_memory($iters) {
  $i = 0;
  $object = new StdClass;
  for (;$i < $iters; $i++) {
    $object->{"member_" . $i} = array("blah blah blha" => 12345);
    $object->{"membersonly_" . $i} = new StdClass;
    $object->{"onlymember"} = array("blah blah blha" => 12345);
  }
  unset($object);
}

function waste_a_little_less_memory($iters) {
  $i = 0;
  $object = new StdClass;
  for (;$i < $iters; $i++) {

    $object->{"member_" . $i} = array("blah blah blha" => 12345);
    $object->{"membersonly_" . $i} = new StdClass;
    $object->{"onlymember"} = array("blah blah blha" => 12345);

    unset($object->{"membersonly_". $i});
    unset($object->{"member_" . $i});
    unset($object->{"onlymember"});

  }
  unset($object);
}

memstat();

waste_a_little_less_memory(1000000);

memstat();

waste_lots_of_memory(10000);

memstat();

Para mí, la salida es:

current memory usage: 73308
current memory usage: 74996
current memory usage: 506676

[editado para desarmar más miembros objeto]

Respuestas a la pregunta(6)

Su respuesta a la pregunta