unset vs. NULL [duplicado]
Duplicata Possível:
O que é melhor para liberar memória com PHP: unset () ou $ var = null
Esta questão é meio que um seguimentoO que é melhor em liberar memória com PHP: unset () ou $ var = null
Resumindo, os meus próprios parâmetros parecem contradizer a resposta dada nessa questão. Minha pergunta é ... por quê? A resposta está errada ou há algo que eu não estou entendendo?
<?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";
?>
Por que parece que "= null" é mais rápido.
Resultados do PHP 5.4:
demorou 0.88389301300049 segundosdemorou 2.1757180690765 segundosResultados do PHP 5.3:
demorou 1.7235369682312 segundosdemorou 2.9490959644318 segundosResultados do PHP 5.2:
demorou 3.0069220066071 segundosdemorou 4,7002630233765 segundosResultados do PHP 5.1:
demorou 2,6272349357605 segundosdemorou 5.0403649806976 segundosAs coisas começam a parecer diferentes com o PHP 5.0 e 4.4.
5,0:
demorou 10.038941144943 segundosdemorou 7.0874409675598 segundos4.4:
demorou 7.5352551937103 segundosdemorou 6.6245851516724 segundosTenha em mente que microtime (true) não funciona no PHP 4.4, então eu tive que usar o exemplo microtime_float dado em php.net/microtime / Example # 1.