8.3 Source Layout
8 Développer PHP 4.0
Manuel PHP
. Conventions sur les extensions . Macros ->Gestion de la mémoire . Fonctions de fichiers et dossiers . Gestion des chaînes de caractères . Types complexes
|
8.3.3 Gestion de la mémoire
La gestion des ressouces est un problème cruxial, notamment sur des
serveurs. Une de ces ressources est la mémoire, qui doit être gérée
avec beaucoup de soin. La gestion de la mémoire est partiellement
laissée à Zend, et il est recommandé de l'exploiter, pour deux raisons :
avec une couche d'abstraction, Zend prend le contrôle complet des
allocations mémoire. Zend est capable de déterminer si un bloc est
utilisé, de libérer automatiquement des blocs inutilisés, et
les blocs dont les références sont perdues. Cela évite les
fuites mémoire. Les fonctions à utiliser sont les suivantes :
emalloc
,
estrdup
,
estrndup
,
ecalloc
, et
erealloc
allouent de la mémoire interne;
efree
libère
cette mémoire. La mémoire gérée par les fonctions
e*
est considérée comme locale au processus
courant, et détruite aussitôt que le script est terminé.
Attention |
Pour allouer de la mémoire résident qui survivra à la fin du script
courant, vous pouvez utiliser
malloc
et
free
. Mais cela doit être fait avec
beaucoup de soin, et en conjonction avec les exigences de l'API
Zend; Sinon, vous risquez des fuites mémoire.
|
Zend dispose aussi d'un gestionnaire de ressources compatible avec
les threads, pour exploiter au miux les serveurs web multi-threads.
Cela vous impose d'allouer les structures locales de toutes vos
variables globales pour permettre aux threads concurents de s'exécuter.
Etant donné que le mode compatible avec les threads n'est pas terminé
lorsque ceci a été écrit, il ne sera pas détaillé ici.
|