vitesse

Performances des méthodes de sérialisation d'un tableau

Benchmark des performances des méthodes de linéarisation d'un tableau

Date de publication : 2009-01-28

Aprés avoir vu comment transformer un tableau en chaine, voici le match final entre implode, serialize, et json_encode. Faites chauffer la gomme !

Code de benchmark pour la sérialisation d'un tableau


<?php
$tableau = array(1,2,3,4,5,6,7,8,9,10);
$start = time() + microtime();
for ($i = 0; $i < 1000000; $i++)
{
$tmp = serialize($tableau);
}
var_dump('serialize '.(time() + microtime() - $start));
$start = time() + microtime();
for ($i = 0; $i < 1000000; $i++)
{
$implode = implode(',',$tableau);
}
var_dump('implode '.(time() + microtime() - $start));
$start = time() + microtime();
for ($i = 0; $i < 1000000; $i++)
{
$implode = json_encode($tableau);
}
var_dump('json_encode '.(time() + microtime() - $start));
?>

Résultat obtenus sur la sérialisation d'un tableau


serialize 7.7840688228607
implode 7.468202829361
json_encode 4.4183518886566

La méthode la plus rapide pour linériariser un tableau est donc json_encode suivi de implode puis arrive en dernier notre bon vieux serialize.

Si l'on compare avec les résultats obtenus lors du test des performances de unserialize et explode, on peut conclure que il faut utiliser le couple serialize unserialize quand l'on fait plus de lectures (typiquement un système de cache) et le couple implode explode quand il y a plus d'écritures (Euuuh ! Je trouve pas d'exemple ... on va dire un système de cache mal fait :D).

 
 

b1n@sp1n