[ create a new paste ] login | about

Link: http://codepad.org/oUjzA46D    [ raw code | output | fork ]

PHP, pasted on Apr 5:
<?php

class Entity { }
echo "EXAMPLE 1".PHP_EOL;
$entities = array();
echo "START: ". number_format(memory_get_usage()) . "\n";
for($i = 0; $i < 100000; ++$i)
{
    $entities[] = new Entity;
}
echo "BEFORE UNSET: ". number_format(memory_get_usage()) . "\n";
unset($entities);
echo "AFTER UNSET: ". number_format(memory_get_usage()) . "\n";

echo "\n------------------------------\n\n";
echo "EXAMPLE 2".PHP_EOL;
$entities = array();
echo "START: ". number_format(memory_get_usage()) . "\n";
for($i = 0; $i < 100000; ++$i)
{
    $entity = new Entity;
    $entities[] = &$entity;
}
echo "BEFORE UNSET: ". number_format(memory_get_usage()) . "\n";
unset($entities);
echo "AFTER UNSET: ". number_format(memory_get_usage()) . "\n";

echo "\n------------------------------\n\n";
echo "EXAMPLE 3".PHP_EOL;
$entities = array();
echo "START: ". number_format(memory_get_usage()) . "\n";
for($i = 0; $i < 100000; ++$i)
{
    $entities[] = new Entity;
}
echo "BEFORE UNSET: ". number_format(memory_get_usage()) . "\n";
foreach($entities as &$entity) {
    unset($entity);
}
unset($entities);
echo "AFTER UNSET: ". number_format(memory_get_usage()) . "\n";

echo "\n------------------------------\n\n";


Output:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
EXAMPLE 1
START: 52,248
BEFORE UNSET: 21,298,216
AFTER UNSET: 3,238,304

------------------------------

EXAMPLE 2
START: 3,238,336
BEFORE UNSET: 8,146,588
AFTER UNSET: 3,238,472

------------------------------

EXAMPLE 3
START: 3,238,524
BEFORE UNSET: 21,298,404
AFTER UNSET: 3,238,312

------------------------------



Create a new paste based on this one


Comments: