unset vs. = NULL [duplizieren]

Mögliche Duplikate:
Was ist besser daran, Speicher mit PHP freizugeben: unset () oder $ var = null

Diese Frage ist eine Art Folgemaßnahme zuWas ist besser daran, Speicher mit PHP freizugeben: unset () oder $ var = null

Kurz gesagt, meine eigenen Benchmarks scheinen der Antwort in dieser Frage zu widersprechen. Meine Frage ist ... warum? Ist die Antwort falsch oder gibt es etwas, das ich einfach nicht verstehe?

<?php
$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
    $a = 'a';
    $a = NULL;
}
$elapsed = microtime(true) - $start;

echo "took $elapsed seconds\r\n";



$start = microtime(true);
for ($i = 0; $i < 10000000; $i++) {
    $a = 'a';
    unset($a);
}
$elapsed = microtime(true) - $start;

echo "took $elapsed seconds\r\n";
?>

Anscheinend ist "= null" schneller.

PHP 5.4 Ergebnisse:

dauerte 0,88389301300049 Sekundendauerte 2,1757180690765 Sekunden

PHP 5.3 Ergebnisse:

dauerte 1.7235369682312 Sekundendauerte 2,9490959644318 Sekunden

PHP 5.2 Ergebnisse:

dauerte 3.0069220066071 Sekundendauerte 4,7002630233765 Sekunden

PHP 5.1 Ergebnisse:

dauerte 2,6272349357605 Sekundenhat 5.0403649806976 Sekunden gedauert

Mit PHP 5.0 und 4.4 sieht es ab sofort anders aus.

5,0:

dauerte 10.038941144943 Sekundendauerte 7.0874409675598 Sekunden

4.4:

dauerte 7,5352551937103 Sekundendauerte 6,6245851516724 Sekunden

Beachten Sie, dass microtime (true) in PHP 4.4 nicht funktioniert. Daher musste ich das microtime_float-Beispiel verwenden, das in php.net/microtime / Example # 1 angegeben ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage