Loading ...
[Plus récent] [Plus ancien] [Meilleur rang] [Mauvais rang]

PCR Postit

PHP

::

Benchmark touch vs file_put_contents

[Trackback]
Date : 2008-05-28@14:54:59
Rang : 0

Dans la série question existentielle :

touch vs file_put_contents

le code de test :

<?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 bench 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