Selon ma sortie xdebug, is_array() perd la quantité de mémoire qui lui est passée en argument. Si je lui passe un grand tableau, il perd une tonne de mémoire juste pour vérifier si c'est un tableau.Pourquoi is_array() manque-t-il de mémoire en PHP?
est-il une solution pour cela?
17.4313 21858520 +70004 -> is_array() [...]/app/app_model.php:526
est ici l'extrait de code qui provoque la fuite:
$ret = $this->behaviors[$b[$i]]->afterFind($this, $results, true);
if (is_array($ret)) {
$results = $ret;
}
Je suis en ce sous Linux (Ubuntu 9.04)
PHP: 5.3.2
xdebug: 2.0 0,5
uname -a me donne ceci:
Linux linux8 2.6.28-19-server # 64 Ubuntu SMP Mer 18 août 2010 21:57:33 UTC i686 GNU/Linux
Je pense que vous avez oublié de spécifier la version de PHP et votre code, ce qui devrait être pertinent pour cette fuite. 'insertPHPJoke()' –
Que voulez-vous dire "mémoire de fuite"? La mémoire n'est pas récupérée après l'appel? – Artefacto
Est-ce que je ne peux pas le reproduire ici: avez-vous '' xdebug.collect_params' activé, et que se passe-t-il si vous le désactivez? – Wrikken