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

PCR Postit

PHP

::

Benchmark require VS include

[Trackback]
Date : 2008-01-11@11:39:36
Rang : 0

Bon comme on est vendredi et que l'on m'a gentillement posé la question de savoir si le require était plus rapide que l'include je me suis fait un petit benchmark pour trouver la réponse.

Petit rappel : Les deux fonctions n'ont pas le même comportement require déclenche une erreur php qui stop donc l'exécution du code alors que include déclenche un warning et continu l'exécution.

le bench est fait sous php5

J'ai généré 2000 fichiers (1000 pour le require et 1000 pour include) avec le code suivant :

<?php
set_time_limit();
for($i = 0;$i<1000;$i++)
{
        file_put_contents('/data/projects/test/include'.$i.'.php',"<?php\\necho 'coucou je suis content ".$i."';\\n?>");
        file_put_contents('/data/projects/test/require'.$i.'.php',"<?php\\necho 'coucou je suis content ".$i."';\\n?>");
}
?>

Chaque fichier a un code différent je ne pense pas que cela joue mais bon comme on a apc sur les serveurs on sait jamais.

Maintenant que tout est prés on peur lancer le code de benchmark à proprement parler.

<?php
set_time_limit(0);
$start = time()+microtime();
for($i = 0;$i<1000;$i++)
{
        include('/data/projects/test/include'.$i.'.php');
}
error_log('Benchmark include '.(time()+microtime()-$start),E_USER_WARNING);
$start = time()+microtime();
for($i = 0;$i<1000;$i++)
{
        require('/data/projects/test/require'.$i.'.php');
}
error_log('Benchmark require '.(time()+microtime()-$start),E_USER_WARNING);
?>

Et voilà le résultat dans mon log

[11-Jan-2008 11:31:57] Benchmark include 0.039840936660767
[11-Jan-2008 11:31:57] Benchmark require 0.05462384223938

Donc include est 38% plus rapide que require.