Page 1 sur 1

[PHP 5.3] Améliorations diverses

Posté : 20 nov. 2008, 15:11
par Hywan
Hey :),

Pascal Martin nous propose sur son blog un article s'appelant simplement PHP 5.3 : Améliorations et corrections diverses.

Cette version s'oriente surtout vers les performances. En effet, le benchmark effectué est assez surprenant. Pour reprendre ses résultats avec le benchmark de Sebastian Bergmann, voici ce que ça donne :
  • PHP 4.4.9 (dernière version de PHP) : 18.072 sec ;
  • PHP 5.1.6 (dernière version de PHP 5.1) : 7.313 sec ;
  • PHP 5.2.6 (dernière version stable de PHP 5.2 — maintenant) : 7.769 sec ;
  • PHP 5.3.0 (version compilée il y a quelques jours) : 5.525 sec ;
  • PHP 6.0.0, par curiosité (même chose) : 6.166.
Si on doit considérer les améliorations qui ont un impact important sur les performances, on notera :
  • déplacement des constantes vers des zones mémoires en lecture seule ;
  • amélioration des gestionnaires d'exceptions ;
  • suppression des appels système à open pour les inclusions de fichiers via require_once() et include_once() ;
  • utilisation de gcc4 pour la compilation.
Pour prendre un exemple, la fonction md5() est 10 à 15% plus rapide que dans les versions précédentes.
Enfin, les résultats sur de grosses applications sont impressionnants (Drupal, Qdig, typo3, wordpress etc.), on arrive à 30% de rapidité en plus ! C'est vraiment non négligeable.

Il y a aussi une mise à jour du support SQLite 3 et les corrections de bugs habituels.

Version prometteuse donc :).

Posté : 20 nov. 2008, 15:37
par katagoto
J'avais lût un billet sur le blog de cyruss qui annonçait que PHP6 était plus rapide que PHP5.2, y aurait-il eu des changements, de PHP5, qui n'auraient pas migrés, encore ?, vers PHP6 ?

Posté : 20 nov. 2008, 15:47
par Hywan
PHP 6 est effectivement plus rapide que PHP 5.2, mais pas que PHP 5.3 (voir mon premier billet). Pour la liste des fonctionnalités, fouille un peu sur le site de PHP, mais normalement, il n'y a pas de grosses différences entre PHP 5.2 et 5.3. Cette nouvelle version améliore principalement les performances et pas tellement le nombre d'outils.
Enfin, il faut garder à l'esprit que PHP 6 est loin et en bêta (si ce n'est pas alpha ?), donc il faut peut-être mieux se concentrer sur PHP 5.3 pour l'instant ;-).

Posté : 20 nov. 2008, 17:22
par katagoto
D'après ce que j'avais compris sur le blog de Nexen, oui je sais toujours la même source, PHP6 est en alpha, voir en alpha1/2, mais je retrouve plus le billet...

PS : si voilà : http://www.nexen.net/articles/dossier/1 ... a_vite.php

Posté : 26 nov. 2008, 13:38
par chrislabricole
Je l'ai testé la dernière fois, sur mon serveur (windows) et à certain scripts un peu compliquer, PHP 5.3 provoque le plantage de Apache (Erreur typique de windows du genre : "Apache HTTP Server à planter, voulez-vous envoyer le rapport ?" etc...). Je ne sais pas si ça fait la même chose pour vous...
En même temps, c'est une alpha donc ça ne m'étonne pas vraiment :P
En tout cas, je suis repassé à la 5.2.6 :)

Posté : 26 nov. 2008, 15:12
par zeus
J'ai envie d'apporter plusieurs points.
J'avais lût un billet sur le blog de cyruss qui annonçait que PHP6 était plus rapide que PHP5.2, y aurait-il eu des changements, de PHP5, qui n'auraient pas migrés, encore ?, vers PHP6 ?
Il faut toujours rester critique sur les bench. On peut toujours critiquer l'exhaustivité d'un benchmark. ;)
Je l'ai testé la dernière fois, sur mon serveur (windows) et à certain scripts un peu compliquer, PHP 5.3 provoque le plantage de Apache (Erreur typique de windows du genre : "Apache HTTP Server à planter, voulez-vous envoyer le rapport ?" etc...). Je ne sais pas si ça fait la même chose pour vous...
En même temps, c'est une alpha donc ça ne m'étonne pas vraiment
En tout cas, je suis repassé à la 5.2.6
Si PHP 5.3 n'est pas encore stable, c'est, entre autre, pour ce genre de raison. Si tu décides de mettre une version non-stable, c'est le genre de risque que tu prends.

Posté : 26 nov. 2008, 15:31
par Hywan
Merci zeus pour ces précisions.

J'apporterais aussi des petites remarques sur PHP 5.3 (histoire de vous donnez envie d'aller voir à droite et à gauche ;-)) :
  • enfin une approche fonctionnelle vraiment génial (lambda calculus, closure etc.) ;
  • objet amélioré, mais la surcharge n'a pas été améliorée (dommage, même si ce n'est pas toujours gênant) ;
  • goto … berk ! On pouvait pas faire plus crades … ;
  • namespaces, bien foutu, j'aime bien, seul le caractère \ a été mal choisi d'après moi, ça fait sale ;
  • gc, cool, il est bien pratique, et les performances ne sont que meilleures ;
  • unicode, support complet, enfin, sauf qu'on code en anglais et c'est tout, ça fait être sympa de voir des softs écris en chinois (mais le support unicode pour les sorties, ça c'est cool) ;
  • localisation, enfin un support natif correct, on dépend moins de la configuration du serveur ;
  • date, oof, du beaucoup mieux ;
  • SSL, du nouveaux, du mieux, cool ;
  • LSB, à voir, j'ai pas encore tout compris, faudra que je vois plus de tuto et les source ;
  • ?: sympa, on va gagner en rapidité.
Je vous conseille fortement la lecture du blog de Pascal Martin. On y apprend beaucoup de choses, c'est clair (même si le style n'est pas formel), c'est concret et complet, à lire !

Posté : 26 nov. 2008, 15:43
par chrislabricole
Si PHP 5.3 n'est pas encore stable, c'est, entre autre, pour ce genre de raison. Si tu décides de mettre une version non-stable, c'est le genre de risque que tu prends.
Ah non, j'ai juste testé ^^ mais j'ai vu direct que ça planté, une connexion à la DB et le serveur plante, pas cool hein ? :P