vitesse

Benchmark touch vs file_put_contents

On continue la série des questions existentielles

Date de publication : 2008-12-07

Le benchmark du jour : touch vs file_put_contents

Le code du benchmark :


<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>

Les résultats :


file_put_contents 0.41347002983093
touch 0.071331977844238

Soit 6 fois plus rapide, l'application directe de ce test est que l'on évite l'écriture en cache d'un objet si celui ci n'a pas changer et on le revalide par un touch.

Pour vérifier que le cache n'a pas changer il faut bien sur lire le cache même quand il n'est plus valide.

Ce qui donne le code de benchmark suivant :


<?php
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_put_contents('test.txt','www.deezer.com Tu peux te
créer ta propre
playlist en tinscrivant. Tu ne veux pas tinscrire? Pas gra
ve, tu peux quand meme écouter de la musique.
Simple dutilisation,
lit toutes les musiques de
la dernière recherche
les unes après les autres.');
}
var_dump(time() + microtime() - $time);
$time = time() + microtime();
for ($i = 0 ; $i < 10000; $i++)
{
file_get_contents('test.txt');
touch('test.txt');
}
var_dump(time() + microtime() - $time);
?>

Les résultats :


file_put_contents 0.51197385787964
touch + file_get_contents 0.3950469493866

Le gain est minime cette fois mais c'est toujours ça de pris :D

 
 

b1n@sp1n