OVH Cloud OVH Cloud

poids d'un objet

2 réponses
Avatar
jean-rene
Bonjour,

sauriez-vous s'il existe un moyen introspectif
de récuperer à partir d'un objet quelconque
la taille de l'espace qu'il occupe en mémoire ?

Merci.

2 réponses

Avatar
Marc

sauriez-vous s'il existe un moyen introspectif
de récuperer à partir d'un objet quelconque
la taille de l'espace qu'il occupe en mémoire ?



memory_get_usage() permet de connaitre la place
consommée par l'ensemble du programme. Il faut
parfois recompiler php pour disposer de cette fonction.

et ci-dessous un exemple d'utilisation. On voit que la classe
consomme au minimum 256 octets ; d'autre part les increments
d'allocation sont d'environ 50 octets.

<?php

function memory(){
return memory_get_usage();
}

class Test{
var $count;
var $string;

# classe qui consomme de la memoire ...
function Test($count){
$this->string = str_repeat('.', $count);
}

function size(){
return strlen($this->string);
}
}

$count = 200;
for($i<0 ; $i<$count ; $i++){
$start = memory();
$objs[] = new Test($i);
$mem = memory() - $start;
echo "$i : memoire : $memn";
}

?>

Avatar
jean-rene