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

Python Discussion :

réutiliser une variable ralentirait un script ?


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 464
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 464
    Par défaut réutiliser une variable ralentirait un script ?
    bonjour,

    En python 2.4.4, je ne sais pas si c'était un bug ou juste une impression de ma part, mais voilà ce que j'ai remarqué.

    Utiliser plusieurs variables une seule fois accélére un script
    et donc réutiliser une même variable plusieurs fois ralentit le script.

    exemple :
    j'ai un énorme script qui fait des tests successifs et linéaires et indépendants.
    pour chacun j'utilise une variable bool et un tableau
    je le répète, les tests sont indépendant et non itératif (impossible à mettre dans une boucle). ils ont juste en commun deux variables dont je me sers pour relever les résultats (un bool qui contient oui on non on a trouvé une erreur, et un tableau qui contient les erreurs). à chaque fois j'écrase ses variables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #test 1
    erreur=0
    tab_erreur=[]
    traitement de recherche de l'erreur...
     
    #test 2
    erreur=0
    tab_erreur=[]
    traitement de recherche de l'erreur...
     
    #test 3
    erreur=0
    tab_erreur=[]
    traitement de recherche de l'erreur...
    et donc mon impression est que le script suivant s'exécute plus vite , comme si créer des nouvelles variables dans un script était plus rapide pour le compilateur que réutiliser les anciennes .

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #test 1
    erreur1=0
    tab_erreur1=[]
    traitement de recherche de l'erreur...
     
    #test 2
    erreur2=0
    tab_erreur2=[]
    traitement de recherche de l'erreur...
     
    #test 3
    erreur3=0
    tab_erreur3=[]
    traitement de recherche de l'erreur...
    là je ne fais que 3 fois dans mon exemple, mais dans mon cas c'est une trentaine de cas successif et indépendant que je fais

    qu'en pensez-vous ?
    une spécificité de python ou du hasard ? je tiens à dire que je travaille sur une vieille machine bourée de mémoire mais pas rapide.
    à croire que python prend bcp de temps à chercher dans la mémoire-registre une variable à réaffecter plutôt que de créer une nouvelle variable vierge et l'affecter.

    étrange....

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Une variable est une entrée cle/valeur dans une hash-table (un dict nomme globals() dans votre cas).
    Une hash-table indexe des listes pour les entrées qui auront le même hash.

    Un lookup dans une hash-table dépendra de la position dans la liste chaînée associée.

    Si vous utilisez toujours la même variable, la longueur de la liste sera ~ "constante". Avec des variables différentes, le hash pourra être différent et la longueur de la liste a parcourir aussi.

    - W
    PS: lisez l'article de Wikipedia pour voir les dessins et comprendre.
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre très actif Avatar de Kurodiam
    Inscrit en
    Décembre 2013
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 208
    Par défaut
    Moi qui pensait à la signification de clé/valeur , c'est intéressant cet article

Discussions similaires

  1. Comment passer une variable jsp à un script ?
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 28/05/2006, 20h50
  2. Envoi d'une variable en shell script sur php
    Par Ponchi dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2006, 13h54
  3. Réponses: 2
    Dernier message: 16/01/2006, 15h07
  4. Exporter une variable via un script sous KSH
    Par Snivel dans le forum Linux
    Réponses: 4
    Dernier message: 09/12/2005, 16h44
  5. Passer une variable C à un script en Javascript
    Par aquouel dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/09/2005, 17h41

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