IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants Discussion :

Temps total de lecture de fichiers depuis le disque dur


Sujet :

Composants

  1. #1
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut Temps total de lecture de fichiers depuis le disque dur
    Bonjour,

    j'ai réalisé un script en PHP qui effectue des recherches de variables de type chaine de caractères sur des pages web.
    Il reçoit en entrée un fichier CSV d'environ 1000 lignes qui contient entre autre leurs URL.
    La recherche est effectuée sur les versions anglaises et françaises des documents, un paramètre de la query string de l'URL indiquant la langue.

    Au total, il y a donc environ 2000 pages web et sur chacune d'entre elles sont recherchés 5 motifs contenant les variables.
    4 motifs sont identiques sur la version anglaise et la version française d'une même page, si ils sont trouvés dans la première version, ils ne sont pas recherchés dans la seconde.

    Ce qui prends le plus de temps est le transfert du document html depuis le serveur vers la mémoire de mon ordinateur. Les modifications de ces documents étant peu fréquentes, j'ai créé un cache qui stocke tous les fichiers html, pour pouvoir en extraire éventuellement de nouvelles variables. Le cache contient donc environ 2000 fichiers HTML.

    A ma surprise, l'exécution du script en utilisant le cache prends entre 1 et 2 secondes. Je croyais que le temps pour charger un fichier HTML depuis le disque dur vers la mémoire serait de l'ordre de 10ms.
    Or, 10ms * 2000 = 20 sec.
    Je n'arrive pas à expliquer l'écart.

    J'ai peut être commis une erreur dans mon code que j'ai fini d'écrire un vendredi soir ? Pourtant, en regardant la sortie du script, il ne semble pas y avoir d'erreur.

    En admettant que je ne pas fait d'erreur, est-ce que ca pourrait être si rapide ? Si oui, comment ?
    Keep it simple, stupid !

  2. #2
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    Un bout de code pour tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php
    function create_files ()
    {
    	$t = time ();
    	$text = <<<HEREDOC
    "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
    HEREDOC;
    	for ($i = 0; $i < 2000; $i++):
    		file_put_contents ("fichiers_test/$i.txt", $text);
    	endfor;
    	echo time () - $t;
    }
    
    function read_files ()
    {
    	$t = time ();
    	for ($i = 0; $i < 2000; $i++):
    		$a = file_get_contents ("fichiers_test/$i.txt");
    	endfor;
    	echo time () - $t;
    }
    
    read_files ();
    ?>
    Il faut créer un répertoire fichiers_test au même niveau que le script contenant ces fonctions.
    Keep it simple, stupid !

Discussions similaires

  1. [XL-2010] nombre total de fichier sur un disque dur
    Par Harry Covair dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/08/2012, 11h21
  2. Lecture de fichier depuis répertoire "Temp"
    Par dubitoph dans le forum Langage
    Réponses: 2
    Dernier message: 06/05/2011, 10h48
  3. Lecture de fichier depuis une appli "launch4j"ifiée
    Par djaize dans le forum Général Java
    Réponses: 1
    Dernier message: 02/11/2009, 10h58
  4. [2.0.0.0] Import depuis un fichier eml sur disque dur
    Par Eusebius dans le forum Thunderbird
    Réponses: 1
    Dernier message: 22/05/2007, 10h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo