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

Langage Perl Discussion :

[Parsage] Lenteur surprenante


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 43
    Par défaut [Parsage] Lenteur surprenante
    Bonjour

    Je fais un script Perl qui analyse des fichiers de logs Apache, jusque là rien de très orginal...
    Ce script recherche certains motifs dans les lignes du logs. Les motifs à rechercher sont stockés dans un fichier à part sous forme d'expressions régulières.
    Le script lit une ligne, puis il regarde si le motif matche la ligne, sinon il passe au motif suivant, si oui il effectue un traitement (le même quel que soit le motif) et passe à la ligne suivante.

    Le problème est le suivant : lorsqu'il n'y a qu'un motif à essayer, le script met environ 0.4 seconde à analyser les 72000 lignes du log.
    Si je mets 2 motifs différents à rechercher, le script met 3 secondes à s'exécuter pour le même log.
    Par contre si j'exécute une première fois le script en ne recherchant que le premier motif puis une deuxième fois en ne recherchant que le deuxième motif, les deux fois le script met environ 0.4 seconde à s'exécuter.

    Donc je ne comprends pas pourquoi il est plus rapide de lire 2 fois un gros fichier en recherchant un seul motif plutôt que de le lire une seule fois mais en recherchant 2 motifs...
    Une erreur dans mon raisonnement ?

    Merci d'avance pour vos réponses

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 822
    Par défaut
    ouais, c marrant. Bah je sais pas comment t'as codé, faut voir ton code.
    Mais peut etre qu'il fait beaucoup plus de boucle, de recherche lorsque que tu soumets deux motifs que lorsque qu'il lit deux fois le fichier pour rechercher un motif.
    La reponse est dans ton code

  3. #3
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Le problème réside sans-doute dans ton code (que nous n'avons pas...) mais je peux tout de même te conseiller d'utiliser Regexp::Assemble si tu as pas mal de motifs : ça te permettra de les fusionner en un seul motif, plus rapide.

    --
    Jedaï

Discussions similaires

  1. [LG]Lenteur de parcours de fichier
    Par YéTeeh dans le forum Langage
    Réponses: 9
    Dernier message: 26/11/2003, 22h57
  2. [Débutant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    Réponses: 22
    Dernier message: 27/09/2003, 21h43
  3. lenteur d'affichage de requete dans un DBGrid
    Par nico27 dans le forum InterBase
    Réponses: 9
    Dernier message: 23/06/2003, 13h54
  4. [Sybase]probleme de lenteur
    Par MASSAKA dans le forum Sybase
    Réponses: 3
    Dernier message: 19/03/2003, 22h58
  5. Lenteur d'execution de Jbuilder 6
    Par Tsimplice dans le forum JBuilder
    Réponses: 6
    Dernier message: 18/12/2002, 14h41

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