Dans le développement de systèmes à grande échelle, le cache est sans aucun doute crucial. Dans le monde PHP, bien qu'il n'y ait pas autant de solutions de cache parmi lesquelles choisir qu'en Java, il existe encore des solutions matures, grâce à la « programmation PHP avancée », j'ai appris ce qui suit :
1. Optimisation au niveau du langage : PHP dispose de nombreuses API au niveau du moteur. Grâce à ces API, le comportement d'exécution du moteur peut être modifié pour atteindre l'objectif d'optimisation du fonctionnement. Parmi eux, la chose la plus intéressante à faire est de mettre en cache les résultats de la compilation. Comme nous le savons tous, chaque fois que PHP est exécuté, il doit passer par le processus de code source -> compilation -> code intermédiaire -> exécution du moteur. Pour certaines applications volumineuses, un temps considérable est consacré à une compilation inutile (et non à une compilation inutile). juste le PHP qui accède à la page) Les fichiers doivent passer par le processus de compilation. Lorsque require() et include() sont utilisés dans le script, certains fichiers inclus doivent être compilés). En mettant en cache les résultats de la compilation, les performances du système peuvent être considérablement améliorées (proportionnellement à la complexité et à l'échelle du système).
Les trois outils principaux dans le monde PHP qui peuvent implémenter le cache de compilation sont :
Zend Accelerator : un cache de compilateur commercial, à source fermée et payant, produit par Zend Industries.
L'accélérateur ionCube : un cache de compilateur commercial, à source fermée mais gratuit, écrit par Nick Lindridge et distribué par sa société, ionCube.
APC—Un cache de compilateur gratuit et open source écrit par Daniel Cowgill et George Schlossnagle
Méthode d'installation d'APC, APC est inclus dans PECL, l'installation spécifique est la suivante 190-823 190-802 :
Aprèsavoir exécuté la commande
#pear install apc
, dans php.ini Ajoutez :
extension = /path/to/apc.so
au fichierDe cette façon, l'installation est terminée lors de la prochaine exécution de php, APC sera automatiquement activé et les résultats de la compilation seront mis en cache dans le partage. Mémoire lors de sa prochaine exécution, obtenez les résultats de l'édition directement depuis la mémoire et exécutez-les sans recompiler.
Question : APC peut-il recompiler automatiquement le PHP qui a changé depuis la dernière compilation ?
2. Optimisation du code PHP : utilisez certains outils pour générer du code intermédiaire de haute qualité après la compilation. Les détails sont les suivants :
Le Zend Optimizer est un optimiseur à source fermée mais disponible gratuitement.
L'accélérateur ionCube contient un optimiseur intégré.
optimiseur de preuve de concept dans PEAR.
Les principales fonctions de l'optimiseur :
1. Supprimer le code inutile, tel que le code mort qui ne sera jamais exécuté.
2. Calcul de constantes, par exemple, en changeant $seconds_in_day = 24*60*60 directement en $seconds_in_day = 86400 ;
3. D'autres fonctions d'optimisation de code, telles que cette instruction :
$count++
seront optimisées pour ++$count ; exécution plus rapide. Bien sûr, si l'instruction est $i = $count++, aucune optimisation ne sera effectuée ;