Python quel est le coût des fonctions ?
Vous avez ou vous allez sûrement apprendre à utiliser
les fonctions en python et vous vous demandez si la création de
fonctions programmées en python peut entraîner une diminution des
performances de votre programme.
- import time
-
- LISTE = xrange(10000000)
-
-
- t1 = time.clock()
- for i in LISTE:
- pass
- print(time.clock() - t1)
-
-
- def ma_fonction():
- pass
- t1 = time.clock()
- for i in LISTE:
- ma_fonction()
- print(time.clock() - t1)
-
-
- t1 = time.clock()
- for i in LISTE:
- x = i+1
- x = x+1
- print(time.clock() - t1)
-
-
- def ma_fonction(x):
- return x+1
- t1 = time.clock()
- for i in LISTE:
- x = ma_fonction(i)
- x = ma_fonction(x)
- print(time.clock() - t1)
-
-
- t1 = time.clock()
- for i in LISTE:
- x = (i+1)*2+(i/3)
- x = (x+1)*2+(x/3)
- print(time.clock() - t1)
-
-
- def ma_fonction(x):
- return (x+1)*2+(x/3)
- t1 = time.clock()
- for i in LISTE:
- x = ma_fonction(i)
- x = ma_fonction(x)
- print(time.clock() - t1)
-
- raw_input()
itération pass : 0.42
itération pass (fonction) : 1.47
itération calcul simple : 2.13
itération calcul simple (fonction) : 4.32
itération calcul complexe : 4.27
itération calcul complexe (fonction) : 5.81
Donc : Il vaut mieux éviter de "mettre en fonction" des instructions simples, toutefois si les instructions que vous souhaitez mettre en fonction sont plus grosses, coût est limité.