Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Benchmark entre les différentes éditions

Posted by fg on 10/20/2007 16:32

Bonjour,

Est-ce que quelqu'un aurait fait un benchmark entre les différentes éditions de Jelix ? Afin de connaître le gain en terme de perfs entre la dev, la opt et la gold.

En fait je voudrais savoir si la version opt apporte vraiment plus de perfs que la dev ou si c'est juste une suppression des scripts en ligne de commande...

La version Gold, noté comme encore expérimentale, est-elle stable aujourd'hui pour un serveur de prod et apporte-elle vraiment un gain de perfs ?

En ce qui concerne le cache opcode, on a vu que APC était pas mal bugué, est-ce que jelix a été testé avec eaccelerator ? Est-il recommandé ou non d'utiliser Jelix avec un cache opcode ?

a+

  [Opened] Re: Benchmark entre les différentes éditions

Reply #1 Posted by laurentj on 10/21/2007 00:54

quelqu'un aurait fait un benchmark entre les différentes éditions de Jelix ?

J'en ai pas fait.

je voudrais savoir si la version opt apporte vraiment plus de perfs que la dev ou si c'est juste une suppression des scripts en ligne de commande...

Non, c'est pas juste une suppression des scripts en ligne de commande. Des fichiers de classes sont regroupés en un seul (moins de fichiers à ouvrir), tout les commentaires sont supprimés pour alléger les scripts (ça allège trés légèrement le temps de parsing, et donc le bénéfice est nulle si on utilise un cache d'opcode), et il y a quelques rares optimisations de code mais il devrait y en avoir plus à l'avenir.

La version Gold, noté comme encore expérimentale, est-elle stable aujourd'hui pour un serveur de prod

Disons que je ne connais pas de problème avec. Mais je ne pense pas qu'elle ait été mise en prod quelque part. À priori, vu le nombre de tests unitaires, l'extension Jelix est stable.

et apporte-elle vraiment un gain de perfs ?

Très certainement, grâce à l'extension jelix livrée avec : l'extension déclare un certain nombre de chose (toutes les constantes, les interfaces) ce qui allège d'autant le parsing et l'execution des sources de jelix. De plus il y a des fonctions en C qui effectuent quelques traitements comme par exemple le parsing des sélecteurs : dans jelix opt/developer, ce parsing est fait avec des regexp. Dans Gold, c'est une fonction C qui le fait de manière optimisée. Sur ça j'ai fait des bench : sur le parsing des selecteurs, on a jusqu'à un facteur 10 d'augmentation des perfs (ce qui ne veut pas dire que Jelix est 10 fois plus rapide, là je ne parle que de l'execution d'un tout petit bout de code de Jelix).

À l'avenir, il y aura d'autres traitements migrés dans des fonctions en C dans l'édition GOLD, comme le parsing des fichiers de locales. De plus, tous les types de selecteurs ne sont pas encore pris en charge par l'extension. Mais c'est prevu pour la 1.0.

De plus, la version Gold nécessite impérativement certaines extensions PHP. Aussi sur certaines choses, c'est plus rapide. Par exemple, la classe jFilter : dans l'edition dev/opt, le code est du code "maison". Dans l'édition Gold, elle utilise les fonctions filter (inclues de base dans PHP 5.2). Idem pour les traitements JSON.

En ce qui concerne le cache opcode, on a vu que APC était pas mal bugué,

C'est rien de le dire, et pas qu'avec Jelix. Sur ma becane, phpmyadmin par exemple déconne complètement avec APC.

est-ce que jelix a été testé avec eaccelerator ?

Oui, j'ai testé avec eaccelerator, et je n'ai rencontré aucun problème. Le bug récent apparu dans jelix avec APC n'apparait pas avec eaccelerator (en clair, j'ai corrigé, ou plutôt bidouillé un truc dans jelix pour que APC ne fasse pas n'importe quoi).

Est-il recommandé ou non d'utiliser Jelix avec un cache opcode ?

Oui, tu peux utilisé un cache d'opcode. C'est même recommandé. Un gros projet utilise jelix avec eaccelerator sans avoir apparement de soucis, tout en ayant des gains en perfs très interressants.

D'ailleurs, tu peux aussi te faire un build de jelix optimisé pour les cache d'opcode. Par exemple, quand tu utilises un jelix optimisé pour les caches d'opcode, les fichiers de conf générés ne sont plus des fichiers ini, mais php, de manière à être stocké dans le cache (et donc, il n'y a plus de parsing INI à faire à chaque execution). À l'inverse, dans les builds officiels de Jelix, les fichiers de conf générés sont en ini, car c'est plus rapide de parser un fichier ini qu'un fichier php.

Conclusion, au sujet des diverses éditions : il y a théoriquement des différences de perfs. À mon avis, en pratique, ces différences doivent apparaître que sur des sites à fort trafic. Mais à l'avenir elles vont être plus accentuées au fur et à mesure que l'extension Jelix sera développée, ou que du code spécifique pour l'optimized sera fait.

Enfin, tu peux te faire ton propre build de Jelix, avec des paramètres qui sont propres à ta configuration, et ainsi avoir un Jelix optimisé pour TA configuration. Les éditions officielles n'étant que des builds avec des paramètres par défaut. (par exemple, tu peux te faire une GOLD like mais sans l'utilisation de l'extension Jelix).

  [Opened] Re: Benchmark entre les différentes éditions

Reply #2 Posted by fg on 10/23/2007 09:13

Merci pour tous ces détails.

Je vais m'amuser à faire des builds de Jelix :)

  [Opened] Re: Benchmark entre les différentes éditions

Reply #3 Posted by lionel on 12/20/2007 18:40

overblog utilise eAccelerator pour jelix, pour répondre à 25 requetes par secondes environ (sur plusieurs serveurs) et ca fonctionne sans aucun problemes.

 
Page
  1. Re: Benchmark entre les différentes éditions