~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Localisation en PHP: gettext versus sqlite

Attention il n'est question ici que de PHP5 (gettext en PHP4 est *très* lent).

Le test est effectué sur 5000 chaînes différentes identifiées par un nom "stringXX" ou XX est le nombre de la chaîne (oui on fait dans le simple). La table SQLite est composée de trois champs: id, value, lang. Un index est réalisé sur lang et id.

<strong>Résultat SQLite</strong>
Temps d'exécution: 0.597s
Mémoire utilisée: 44.944 Ko
Taille du fichier contenant les chaînes: 719 Ko

<strong>Résultat gettext</strong>
Temps d'exécution: 0.041s
Mémoire utilisée: 44.200 Ko
Taille du fichier contenant les chaînes: 326 Ko (fichier .mo compilé)
Taille du fichier contenant les chaînes: 393 Ko (fichier .po)

Si la consommation mémoire montre peu de différence, en rapidité c'est flagrant: gettext est 10 fois plus rapide. Et niveau espace de stockage c'est difficile de comparer vu que gettext utilise un fichier compilé en plus des données éditables.

Voir aussi ce billet très intéressant : Benchmarking PHP Localization - Is gettext fast enough? comparant gettext/php-gettext et l'utilisation d'arrays.

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
 _ _                  
| (_)_ __   __ _  ___ 
| | | '_ \ / _` |/ _ \
| | | | | | (_| |  __/
|_|_|_| |_|\__, |\___|
           |___/      
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

trax

Les résultats d'un bench avec aussi peu d'explications sur les conditions n'est pas très probant.

Quel intérêt à comparer gettext et sqlite pour PHP ? SQlite est souvent utilisé avec PHP ?