©
. Document créé le 30 décembre 2010 , mis à jour le 30 décembre 2010.Un problème sans solution est un problème mal posé. Albert Einstein
Accueil du site > Astuces > PHP > Log E_DEPRECATED ralentit PHP
Depuis PHP 5.3, l’usage de certaines fonctions dépréciées peut être signalé dans le journal php_error.
Il est probable que ces fonctions ne soient plus utilisées dans la prochaine version majeure de PHP. Il faudra bien s’en occuper un jour ou l’autre.
Mais en attendant, à part remplir les journaux et ralentir l’exécution des scripts, le fait de vous rappeler chaque jour que de longues nuits d’optimisation PHP vous attendent, ça ne sert pas à grand-chose.
Voici un petit script de test qui permet de démontrer ce ralentissement :
<?php
if (version_compare(PHP_VERSION, '5.3.0', '<'))
{
die('Current PHP version: ' . PHP_VERSION);
}
$loops = 1000;
$string = 'This is a test';
function deprecated_test($string, $loops)
{
for($ii = 0; $ii < $loops; $ii++)
{
$null = ereg_replace("( )is", "\\1was", $string);
}
}
/**
* avec E_DEPRECATED
* */
error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
$start = microtime(1);
deprecated_test($string, $loops);
$res1 = microtime(1) - $start;
/**
* sans E_DEPRECATED
* */
error_reporting(E_ALL ^ E_NOTICE);
$start = microtime(1);
deprecated_test($string, $loops);
$res2 = microtime(1) - $start;
/**
* Résultats
* */
echo(
'<ul>'
. '<li>' . $res1 . ' (avec activation de E_DEPRECATED)</li>'
. '<li>' . $res2 . ' (sans activation)</li>'
. '</ul>'
);
?>
Problème de copier/coller ? Voici le fichier à décompresser :
Le résultat, ici sur Mac min, mérite attention (moyenne sur 3 appels) :
sans parler de la rotation des journaux, qui n’est pas mis en place par défaut sur MAMP, et peut-être les autres environnements AMP.
La liste des fonctionnalités obsolètes en PHP 5.3 est présentée sur php.net.
Les forums sont fermés.