- var_dump: documentation ( source)
- gc_collect_cycles: documentation ( source)
- memory_get_usage: documentation ( source)
- rand: documentation ( source)
<?php
class Test {
public function __construct() {
for ($i = 0; $i < 1000; ++$i) {
$this->result[] = rand(1, 1000);
}
}
function object() {
is_object($this);
}
}
function checkMemory($memoryAtStart)
{
for ($i = 0; $i < 1; ++$i) {
$object = new Test();
$object->object();
unset($object);
}
var_dump(memory_get_usage() - $memoryAtStart);
$memoryAtStart = memory_get_usage();
for ($i = 0; $i < 100; ++$i) {
$object = new Test();
$object->object();
unset($object);
}
var_dump(memory_get_usage() - $memoryAtStart);
$memoryAtStart = memory_get_usage();
for ($i = 0; $i < 100; ++$i) {
$object = new Test();
is_object($object);
unset($object);
}
var_dump(memory_get_usage() - $memoryAtStart);
}
$memoryAtStart = null;
for ($x=0; $x<100; $x++) {
if ($memoryAtStart === null) {
$memoryAtStart = memory_get_usage();
}
checkMemory($memoryAtStart);
gc_collect_cycles();
}