Vitesse d'exécution

Résolu
MickaToast Messages postés 142 Date d'inscription   Statut Membre Dernière intervention   -  
dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir,

Ma question sera posé sur la vitesse d'exécution de python. Voilà le problème:
Je dois résoudre quelque chose, or, je peux le faire de deux façon exactement identique, la quelle est la plus rapide?

Sachant que j'aime bien quand mes programmes sont rapide pour résoudre un problème, j'aime bien utiliser la méthode la plus optimisé.

Voici les deux lignes de code:
if True in [avrgColor[x] not in range(self.avrg[(self.zones[i][0], self.zones[i][1])][x]-sensibilite, self.avrg[(self.zones[i][0], self.zones[i][1])][x]+sensibilite) for x in range(3)]:
if avrgColor[0] not in range(self.avrg[(self.zones[i][0], self.zones[i][1])][0]-sensibilite, self.avrg[(self.zones[i][0], self.zones[i][1])][0]+sensibilite) and avrgColor[1] not in range(self.avrg[(self.zones[i][0], self.zones[i][1])][1]-sensibilite, self.avrg[(self.zones[i][0], self.zones[i][1])][1]+sensibilite) and avrgColor[2] not in range(self.avrg[(self.zones[i][0], self.zones[i][1])][2]-sensibilite, self.avrg[(self.zones[i][0], self.zones[i][1])][2]+sensibilite):

Petit détails des deux lignes ci dessus: En gros j'ai un tuple de 3 valeurs et je veux vérifier si le premier tuples est dans la range des valeurs du deuxième tuple.


Bref, quelle ligne est la plus rapide? Merci :-)
A voir également:

1 réponse

dsy73 Messages postés 9252 Date d'inscription   Statut Contributeur Dernière intervention   2 485
 
Salut

Pour comparer la vitesse de tes 2 versions, utilise timeit : https://docs.python.org/3/library/timeit.html

Pour "profiler" ton code, tu peux utiliser yappi : https://code.google.com/archive/p/yappi

Je suis bien incapable de lire ton code et donc de t'aider car c'est illisible. Tape "import this" dans la console Python pour comprendre de quoi je parle ;)
0