par
starkeus » 16 janv. 2006, 11:35
Alors j'ai effectué un petit benchmarking des deux types d'accès:
Conclusion l'accès fichier semble être plus performant à quelques ms près.
Jeu de test:
500 requête
4 séries de 100 tests
Résultats:
-
Fichier:
Moyenne Série 1 = 0.140
Moyenne Série 2 = 0.138
Moyenne Série 3 = 0.136
Moyenne Série 4 = 0.137
-
Session:
Moyenne Série 1 = 0.185
Moyenne Série 2 = 0.160
Moyenne Série 3 = 0.160
Moyenne Série 4 = 0.162
Le code:
<?php
session_start();
for ($j = 0; $j < 100 ; $j++) {
//$fichier = fopen("test.txt", "w");
//ecriture
//$tab=array();
$_SESSION['tableau']=array();
for ($i = 0; $i < 500 ; $i++)
$_SESSION['tableau'][]="INSERT INTO DONNEE ( LCN_Z_CODE_PERIODE, LCN_LNS_ID_NIVEAU1, LCN_LNS_ID_NIVEAU2, GRO_ID, CHA_CODE,
MOIS, VALEUR_ADMINISTRATEUR, VALEUR_ETABLISSEMENT, DATE_CREATION, USER_CREATION, DATE_MODIFICATION,
USER_MODIFICATION ) VALUES (
'PER2005', 47, 47, 1, 'CHAMP1', 0, NULL, NULL, TO_Date( '01/01/2006 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM')
, '01', NULL, NULL);
COMMIT;\n";
/*fwrite($fichier, "INSERT INTO DONNEE ( LCN_Z_CODE_PERIODE, LCN_LNS_ID_NIVEAU1, LCN_LNS_ID_NIVEAU2, GRO_ID, CHA_CODE,
MOIS, VALEUR_ADMINISTRATEUR, VALEUR_ETABLISSEMENT, DATE_CREATION, USER_CREATION, DATE_MODIFICATION,
USER_MODIFICATION ) VALUES (
'PER2005', 47, 47, 1, 'CHAMP1', 0, NULL, NULL, TO_Date( '01/01/2006 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM')
, '01', NULL, NULL);
COMMIT;\n");*/
$mt1 = microTime();
echo "<pre>";
print_r($_SESSION['tableau']);
//$fichier = fopen("test.txt", "r");
//while (!feof($fichier))
//echo fgets($fichier);
echo "</pre>";
$mt2 = microTime();
$tempsCalcul = diffTime($mt1, $mt2);
printf("Page generee en %2.3f secondes\n", $tempsCalcul);
$tab[]=$tempsCalcul;
unset($_SESSION['tableau']);
}
for ($i = 0, $taille=count($tab); $i < $taille ; $i++)
$toto+=$tab[$i];
$moyenne=$toto/$taille;
echo "\nMOYENNE= ".$moyenne;
?>
Alors j'ai effectué un petit benchmarking des deux types d'accès:
Conclusion l'accès fichier semble être plus performant à quelques ms près.
[u]Jeu de test:[/u]
[b]500 requête[/b]
[b]4 séries de 100 tests[/b]
[b]Résultats:[/b]
-[b]Fichier[/b]:
Moyenne Série 1 = 0.140
Moyenne Série 2 = 0.138
Moyenne Série 3 = 0.136
Moyenne Série 4 = 0.137
-[b]Session[/b]:
Moyenne Série 1 = 0.185
Moyenne Série 2 = 0.160
Moyenne Série 3 = 0.160
Moyenne Série 4 = 0.162
Le code:
[php]
<?php
session_start();
for ($j = 0; $j < 100 ; $j++) {
//$fichier = fopen("test.txt", "w");
//ecriture
//$tab=array();
$_SESSION['tableau']=array();
for ($i = 0; $i < 500 ; $i++)
$_SESSION['tableau'][]="INSERT INTO DONNEE ( LCN_Z_CODE_PERIODE, LCN_LNS_ID_NIVEAU1, LCN_LNS_ID_NIVEAU2, GRO_ID, CHA_CODE,
MOIS, VALEUR_ADMINISTRATEUR, VALEUR_ETABLISSEMENT, DATE_CREATION, USER_CREATION, DATE_MODIFICATION,
USER_MODIFICATION ) VALUES (
'PER2005', 47, 47, 1, 'CHAMP1', 0, NULL, NULL, TO_Date( '01/01/2006 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM')
, '01', NULL, NULL);
COMMIT;\n";
/*fwrite($fichier, "INSERT INTO DONNEE ( LCN_Z_CODE_PERIODE, LCN_LNS_ID_NIVEAU1, LCN_LNS_ID_NIVEAU2, GRO_ID, CHA_CODE,
MOIS, VALEUR_ADMINISTRATEUR, VALEUR_ETABLISSEMENT, DATE_CREATION, USER_CREATION, DATE_MODIFICATION,
USER_MODIFICATION ) VALUES (
'PER2005', 47, 47, 1, 'CHAMP1', 0, NULL, NULL, TO_Date( '01/01/2006 12:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM')
, '01', NULL, NULL);
COMMIT;\n");*/
$mt1 = microTime();
echo "<pre>";
print_r($_SESSION['tableau']);
//$fichier = fopen("test.txt", "r");
//while (!feof($fichier))
//echo fgets($fichier);
echo "</pre>";
$mt2 = microTime();
$tempsCalcul = diffTime($mt1, $mt2);
printf("Page generee en %2.3f secondes\n", $tempsCalcul);
$tab[]=$tempsCalcul;
unset($_SESSION['tableau']);
}
for ($i = 0, $taille=count($tab); $i < $taille ; $i++)
$toto+=$tab[$i];
$moyenne=$toto/$taille;
echo "\nMOYENNE= ".$moyenne;
?>
[/php]