URL: https://linuxfr.org/users/erlen/journaux/indefero-clone-googlecode-en-version-010 Title: InDefero, clone GoogleCode en version 0.1.0 Authors: Loïc d'Anterroches Date: 2008年09月03日T12:27:03+02:00 Tags: indefero Score: 6 Bonjour, C'est avec plaisir que je vous annonce la sortie d'une nouvelle version d'InDefero. Comme écrit précédemment ici, InDefero[1] est un clone de GoogleCode[2] écrit à l'origine pour utiliser git pour la révision du code. La grande nouvelle est maintenant le **support de Subversion** (dépôt local ou distant) ! Téléchargez la dernière version : [http://projects.ceondo.com/p/indefero/downloads/8/](http://projects.ceondo.com/p/indefero/downloads/8/) InDefero est codé en PHP avec le framework Pluf[3] et est disponible sous licence GPL. Il est simple à utiliser et très léger. Si votre hébergeur est de qualité, il fonctionne très bien sur un mutualisé avec des pages ne nécessitant guère plus de 3Mo de mémoire pour le rendu. La rapidité et la légèreté d'InDefero provient en grande partie de l'utilisation de Pluf. Pluf est un framework PHP reprenant les principes d'architecture de Django[4] lui permettant d'être simple, facile à utiliser même sur de gros projets et **extrêmement performant**. Le cœur de Pluf (la distribution d'une requête et le rendu minimal d'une page) est ainsi **5 fois plus performant que Symfony**[5-7] sur la même configuration (test sur une instance EC2), pour avoir l'équivalent du rendu de "Hello World!" on obtient: php pur: 1332.53 req/s (100%) pluf-trunk: 344.02 req/s (25.82%) symfony-1.1.0: 67.41 req/s (5.11%) Cette méthodologie de test est celle utilisée par Rasmus Lerdorf pour évaluer le coût minimal en terme de performance du framework[8]. Cela veut dire que quelque soit le niveau de mise en cache[9], vous ne pourrez pas faire mieux.Notez que c'est exceptionnel de n'avoir qu'une si faible dégradation des performances entre un framework et PHP pur, je dois dire aussi que c'est un peu le hasard des choses, j'ai juste essayé de garder la pile d'appel de fonctions dans la boucle de distribution au minimum tout en gardant la philosophie de Django "On active une fonctionnalité que si vraiment demandé". Je remercie les lecteurs pour les remarques constructives reçu depuis le début de cette aventure, j'invite les trolls avec ce benchmark des performances (mais bon, en utilisant la méthodologie du créateur de PHP, cela devrait les calmer un peu) et accueil les critiques les bras ouverts ! Loïc [1]: [http://www.indefero.net/](http://www.indefero.net/) [2]: [http://code.google.com/](http://code.google.com/) [3]: [http://pluf.org](http://pluf.org) [4]: [http://www.djangoproject.com/](http://www.djangoproject.com/) [5]: [http://paul-m-jones.com/?p=315](http://paul-m-jones.com/?p=315) (voir les commentaires) [6]: [http://xhtml.net/php/pluf-framework-php/494-Pluf-Framework-P(...)](http://xhtml.net/php/pluf-framework-php/494-Pluf-Framework-PHP-le-plus-rapide-du-marche) (lire la mise à jour) [7]: [http://www.symfony-project.org/](http://www.symfony-project.org/) [8]: [http://talks.php.net/show/froscon08/24](http://talks.php.net/show/froscon08/24) [9]: à moins d'utiliser la technique LinuxFr avec un callback sur une erreur 404 pour générer un contenu statique.