Python while True ou while 1, une question de performances.
Voilà un certain temps que je me demandais si les performances d'une boucle while 1 étaient les mêmes qu'une boucle while True.
J'ai tout de suite pensé que while 1 serait plus lent car il s'agit
d'une conversion en booléen d'un entier tandis que True était
directement un booléen mais après test il se trouve que while 1 est
plus rapide, et même 1.5 fois plus rapide.
Une strucure spéciale a été mise en place dans python pour ce type de boucle avec 1 mais pas avec True, ce qui explique tout.- import time
-
- compteur = 0
- t1 = time.clock()
-
- while True:
- compteur += 1
- if compteur == 1000000:
- break
-
- print(time.clock() - t1)
-
- compteur = 0
- t1 = time.clock()
-
- while 1:
- compteur += 1
- if compteur == 1000000:
- break
-
- print(time.clock() - t1)
-
- raw_input()
résultat 1 : 0.11s
résultat True : 0.17s
Donc : Il vaut mieux utiliser 1 plutôt que True, dans ses boucles while.