Services webmasters
Partenaires
Jeux concours gratuits
 
Macros
<<<
Gestion de la mémoire Fonctions de fichiers et dossiers
>>>

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 :
Fonction Description
emalloc Remplacement pour malloc .
efree Remplacement pour free .
estrdup Remplacement pour strdup .
estrndup Remplacement pour strndup . Plus rapide que estrdup et compatible avec les données binaires. C'est la fonction recommandée si vous connaissez la taille de votre chaîne avant de la dupliquer.
ecalloc Remplacement pour calloc .
erealloc Remplacement pour realloc .
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.

<< Gestion de la mémoire >>
Macros Source Layout Fonctions de fichiers et dossiers
Services webmasters
Les manuels
 
CoursPHP.com - Reproduction interdite -