Test de la solution fichier texte

Jump to: navigation, search

Test

Un script a été utilisé pour créer un fichier de logs de 30000 entrées.

#!/bin/bash
i=0

echo > logs.txt

while [ $i -lt 10000 ]
  do
  echo "`date` login$i droits connexion" >> logs.txt
  echo "`date` login$i droits modification table1.champ1=valeur1 table2.champ2=valeur2" >> logs.txt
  echo "`date` login$i droits deconnexion" >> logs.txt

  i=$(($i+1))
done

Temps nécessaire à la création du fichier de logs : 1 minute 24 secondes.

Ensuite, un script PHP est utilisé pour faire une requète sur le fichier logs.txt créé et pour chronometrer le temps necessaire à l'obtention du résultat. La requète consiste à demander combien d'opérations ont été effectuées par la personne ayant l'identifiant 'login15'.

<?php
$temps = microtime();
$temps = explode(' ', $temps);
$debut = $temps[1] + $temps[0];

$n = 0;
$file = "logs.txt";

if(!($fp = fopen($file, "r")))
{
  die("could not open text input");
}

while($ligne = fscanf($fp, "%s %d %s %s %s %s %s %s %s %s\n", $jour, $num_jour, $mois, $annee, $heure, $fuseau, $login, $droits, $operqtion, $tables))
{
  if($login == 'login15')
     {
      $n++;
    }
}

echo 'Nombre d\'opérations effectuées par login15 : '.$n.'
'; $temps = microtime(); $temps = explode(' ', $temps); $fin = $temps[1] + $temps[0]; echo 'Page générée en '.round(($fin - $debut), 6).' secondes.'; ?>

Résultat

Nombre d'opérations efféctuées par login15 : 3

Le résultat est exact.

  • taille du fichier log : 2.4 Mo
  • temps de traitement de la requète : 0.4 s