Voici la liste des accélérateurs PHP, lequel permettant d'avoir des temps d'exécution beaucoup plus courts pour un programme au comportement identique.
APC (Alternative PHP Cache)
L'accélérateur APC, de l'abréviation Alternative PHP Cache, est un cadre d'application gratuit et ouvert, avec une licence PHP, cachant la sortie du compilateur de Bytecode de PHP en mémoire partagé. Ainsi, l'analyse et la surcharge des entrées/sorties sur disque sont réduites pour les requêtes ultérieures. De plus, il contient un cache pour la mémoire partagé avec les données utilisateur.
Dans la pratique, une application constituée d'une base de code source important comme le CMS de Drupal, on constatera une augmentation de 3 fois la vitesse de génération des pages.
eAccelerator
L'accélérateur eAccelerator est né en décembre 2004 à partir d'un fork du projet Turck MMCache. Le projet Turck MMCache a été créé par Dmitry Stogov et une grande partie du code de l'accélérateur eAccelerator provient encore de son travail. Cependant, l'encodeur et chargeur PHP provienne d'une autre source.
ionCube PHP Accelerator
Le projet ionCube PHP Accelerator est le premier accélérateur PHP libre disponible pour concurrencer le produit commercial Zend Cache. Il est créé en 2001 et a été proposé au moment où les performances de PHP été comme mauvaise par rapport aux autres langages de programmation Web. Cet accélérateur démontra qu'on pouvait rivaliser avec d'autres langages de programmation en terme de performances. Il n'a supporté que le PHP version 4 et plus aucune nouvelle version n'a été proposé après janvier 2003.
Nusphere PhpExpress
L'accélérateur Nusphere PhpExpress est un cache d'Opcode PHP gratuit chargeant les fichiers encodés par Nu-Coder en simple code PHP directement dans le moteur PHP. Grâce à cette technique, on peut économiser du temps de chargement et améliorer les performances des applications PHP. Il est disponible pour les systèmes d'exploitation Windows, Linux, FreeBSD, NetBSD, Mac OS X et Solaris.
Turck MMCache
L'accélérateur Turck MMCache est un accélérateur PHP gratuit et open source, permettant d'optimiser, encoder et cacher le contenu dynamique de PHP. Il augmente les performances des scripts PHP en les mettant en cache dans état compilé en Bytecode. Ainsi, la sortie de surcharge de compilation est presque complètement éliminée. Il utilise également certaines optimisations afin d'accélérer l'exécution du script PHP. En général, l'accélérateur Turck MMCache permet de réduire la charge du serveur et d'augmenter la vitesse du code PHP d'une échelle de 1 à 10 fois.
Windows Cache Extension for PHP
L'accélérateur Windows Cache est un projet libre et ouvert (avec une licence BSD) de Microsoft pour PHP pour le système d'exploitation Windows. L'extension inclut le cache d'Opcode PHP, le cache de fichiers, le cache de chemin de fichier de résolution, le cache d'objet et de session, les avertissements de changement de fichier et l'API de verrouillage et de déverrouillage. La combinaison de toutes ses caches entraîne des améliorations significatives des performances pour les applications PHP se faisant héberger sous le système d'exploitation Windows. L'extension est principalement utilisée avec IIS via le protocole FastCGI. Le «Windows Cache Extension for PHP» n'est pas la seule option pour IIS, il existe également Phalanger, lequel est un PHP pour .NET. Il peut aussi donner de très bon résultat en terme de performance.
XCache
L'accélérateur XCache est un cache d'Opcode PHP à la fois rapide et stable ayant été testé (sous GNU/Linux et FreeBSD) et pouvant s'exécuter sur des serveurs de production avec une charge élevée. Cet accélérateur a été développé par l'un des développeurs de Lighttpd afin de surmonter certaines limitations existantes au moment de sa création.
Zend Opcache
L'accélérateur Zend Opcache est une composante open source de Zend Server et Zend Server Community Edition. Le Zend Opcache accélère l'exécution du PHP par la mise en cache et l'optimisation des Opcodes. Il entrepose le Bytecode de script précompilé dans la mémoire partagée. Ainsi, il élimine les étapes de lecture du code à partir du disque et de sa compilation dans les futurs accès. Afin d'améliorer encore plus les performances, le Bytecode entreposé est optimisé pour une exécution plus rapide. Contrairement à Zend Optimizer, le Zend Opcache ne charge pas les fichiers encodés par Zend Guard. En outre, Zend fournit un autre composant, nommé le Zend Guard Loader, afin de charger des applications encodées avec Zend Server et Zend Server Community Edition.
Table de compatibilité
Voici un tableau indiquant avec quel système d'exploitation, de service Web et de version PHP sont supportés les accélérateurs de PHP :
Accélérateur PHP | Disponibilité | Système d'exploitation | Serveurs Web | Version de PHP | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | Linux | FreeBSD | Mac OS X | NetBSD | Solaris | IIS 6.0 | IIS 7.0 | IIS 7.5 | IIS 8.0 | Apache 2.0 | Apache 2.2 | Apache 2.4 | Nginx | 5.2 | 5.3 | 5.4 | 5.5 | 5.6 | 7.0 | 7.1 | ||
APC | Obsolète | Oui | Oui | Oui | Oui | Inconnu | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Oui | Oui | Oui | Oui | Oui | Non | Non | Non | Non |
eAccelerator | Obsolète | Oui | Oui | Oui | Inconnu | Inconnu | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Oui | Oui | Oui | Non | Non | Non | Non |
ionCube | Obsolète | Oui | Oui | Inconnu | Inconnu | Inconnu | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Inconnu | Inconnu | Non | Non | Non | Non | Non | Non | Non |
Nusphere PhpExpress | Obsolète | Oui | Oui | Oui | Oui | Oui | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Oui | Non | Non | Non | Non | Non |
Plateforme de Zend | Obsolète | Non | Oui | Non | Non | Non | Oui | Non | Non | Non | Non | Oui | Oui | Inconnu | Non | Oui | Non | Non | Non | Non | Non | Non |
Turck MMCache | Obsolète | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Non | Non | Non | Non | Non | Non |
Windows Cache | Maintenue | Oui | Non | Non | Non | Non | Non | Oui | Oui | Oui | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Oui | Oui | Oui | Oui | Oui | Inconnu |
XCache | Obsolète | Oui | Oui | Oui | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Non | Non |
Zend Opcache (Zend Optimizer+,...) |
Maintenue | Oui | Oui | Oui | Oui | Inconnu | Non | Oui | Oui | Oui | Oui | Inconnu | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui | Oui |
La tendance tente à se regrouper vers la solution de Zend ou Windows Cache, les autres solutions semblent disparaitre progressivement. La raison est fort simple, les algorithmes d'accélérations qu'utilisaient ses projets sont les mêmes que ceux inclus dans les versions PHP 7, donc plutôt que d'écrire en double deux fois la même solution, de nombreux projets sont pour l'instant arrêtés.
Comparaison des fonctionnalités
Voici la liste des fonctionnalités en fonction des accélérateurs de PHP :
Accélérateur PHP | Disponibilité | Cache d'Opcode | Cache de fichier | Cache de résolution de chemin de fichier | Cache d'objet et de session | Optimisation | Cache en mémoire | Encodage du source |
---|---|---|---|---|---|---|---|---|
APC | Obsolète | Oui | Oui | Inconnu | Oui | Oui | Oui | Non |
eAccelerator | Obsolète | Oui | Oui | Inconnu | Inconnu | Inconnu | Oui | Inconnu |
PHP Accelerator (PHPA) | Obsolète | Oui | Oui | Inconnu | Non | Oui | Oui | Non |
Nusphere PhpExpress | Obsolète | Oui | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu |
Plateforme de Zend | Obsolète | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu | Inconnu |
Windows Cache | Maintenue | Oui | Oui | Oui | Oui | Inconnu | Oui | Inconnu |
XCache | Obsolète | Oui | Oui | Inconnu | Oui | Oui | Oui | Inconnu |
Zend Opcache (Zend Optimizer+,...) |
Maintenue | Oui | developing | Inconnu | Non | Oui | Oui | Non |
Les fonctionnalités sont presque tous identiques à l'exception de Windows Cache de Microsoft, où celui-ci se distingue particulièrement bien dans cette catégorie.
Voir également
Articles - Optimisation pour des sites à haut niveau de trafic