C'est le code (juste une simplification d'un problème réel):Que se passe-t-il avec la mémoire lorsque je lance une exception?
<?php
echo memory_get_usage() . "\n";
function f() {
throw new Exception();
}
function foo() {
try {
f();
} catch (Exception $e) {
}
}
foo();
echo memory_get_usage() . "\n";
Ceci est la sortie (PHP 5.3):
630680
630848
Qu'est-il arrivé à la mémoire (168 octets perdus)? L'objet d'exception n'est pas détruit? S'il vous plaît, aidez! Merci
Sérieusement, pourquoi cela vous intéresse? ... Si vous voulez vraiment savoir, définissez des points d'arrêt pour les fonctions '_zend_mm_ *' et lancez votre script avec un débogueur attaché. – Artefacto