Section courante

A propos

Section administrative du site

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

Dernière mise à jour : Samedi, le 4 février 2017