SommaireTelecharger la documentationChapitre suivantChapitre precedent  

  .: News :.: Edito :.: Scripts :.: Forum :.: Erreurs :.: Jobs :. 
 
Sommaire

Disposition du code source

Convention des extensions
Macros
Memory Management
Fonctions de dossiers et fichiers
Gestion des chaînes de caractères
Types complexes

7.4.3 Memory Management

La gestion des ressources est primordiale, surtout sur un serveur logiciel. Une des ressources les plus précieuses et la mémoire, et la gestion de la mémoire doit être faite avec beaucoup de soin. Elle a été partiellement automatisée dans le moteur Zend, et vous devez utiliser ces outils pour deux raisons : étant donné le système automatique, Zend a le contrôle total de la mémoire. Zend est capable de déterminer si un bloc de mémoire est actuellement utilisé, de libérer les ressources inutilisées, ou les blocs sans référence. Tout cela évite des fuites de mémoire. Les fonctions qui peuvent être utilisées sont listées dans cette table : > >
Fonction Description
emalloc Remplacement de malloc.
efree Remplacement de free.
estrdup Remplacement de strdup.
estrndup Remplacement de strndup. Plus rapide que estrdup et fonctionne aussi avec les valeurs binaires. C'est la fonction recommandée si vous connaissez la taille de la chaîne avant de la dupliquer.
ecalloc Remplacement de calloc.
erealloc Remplacement de realloc.
emalloc, estrdup, estrndup, ecalloc, et erealloc alloue de la mémoire interne. efree libère les blocs alloués de la mémoire. La mémoire gérée par les fonctions e* est considérée comme locale au processus courant, et supprimée aussitôt que le script est terminé.
Attention

Pour allouer de la mémoire résident, qui survivra à la fin du script, vous pouvez utiliser malloc et free. Toute fois, cela doit se faire avec une extrême prudence, et uniquement en conjonction avec un appel à l'API Zend. Sinon, vous risquez la fuite mémoire.

Zend fournit aussi un gestionnaire de ressource, compatible avec les threads, pour fournir un meilleur support des serveurs web multi-thread. Cela vous demande d'allouer des structures locales pour toutes vos variables globales, pour permettre aux threads concurents d'être exécutés. Comme le support des thread n'était pas fini lors de la rédaction de ce guide, nous ne nous y attarderons pas.


Chapitre précédentChapitre suivantAccueil nexen.net