speed01.py
import time
def test01():
time01 = time.time()
str1 = ""
for i in range(1000000):
str1 += str(i)
time02 = time.time()
print("Durée du test01:{:.6f}s".format(time02 - time01))
def test02():
time01 = time.time()
lst1 = []
for i in range(1000000):
lst1.append(str(i))
str1 = "".join(lst1)
time02 = time.time()
print("Durée du test02:{:.6f}s".format(time02 - time01))
test01()
test02()
Résultat de l'exécution:
Durée du test 01: 1.515000s
Durée du test02: 0.330000s
speed02.py
import time
def test01():
time01 = time.time()
n = 0
sum = 0
while (n < 10000000):
sum += n
n += 1
time02 = time.time()
print("Durée du test01:{:.6f}s".format(time02 - time01))
def test02():
time01 = time.time()
sum = 0
for n in range(10000000):
sum += n
time02 = time.time()
print("Durée du test02:{:.6f}s".format(time02 - time01))
test01()
test02()
Résultat de l'exécution:
Durée du test01: 0.970000s
Durée du test02: 0.559000s
speed03.py
from functools import lru_cache
import time
def fibonacci_number1(n):
return n if n < 2 else fibonacci_number1(n - 1) + fibonacci_number1(n - 2)
@lru_cache()
def fibonacci_number2(n):
return n if n < 2 else fibonacci_number2(n - 1) + fibonacci_number2(n - 2)
t1 = time.time()
fibonacci_number1(35)
t2 = time.time()
fibonacci_number2(35)
t3 = time.time()
print("lru_Temps requis lorsque vous n'utilisez pas le cache:{:.6f}s".format(t2 - t1))
print("lru_Temps requis lors de l'utilisation du cache:{:.6f}s".format(t3 - t2))
Résultat de l'exécution:
lru_Temps requis lorsque vous n'utilisez pas le cache: 3.699000s
lru_Temps requis lors de l'utilisation du cache: 0.000000s
speed04.py
import time
from math import sqrt
def test01():
time01 = time.time()
for i in range(10000000):
sqrt(33)
time02 = time.time()
print("Durée du test01:{:.6f}s".format(time02 - time01))
def test02():
time01 = time.time()
sqrt_in = sqrt
for i in range(10000000):
sqrt_in(33)
time02 = time.time()
print("Durée du test02:{:.6f}s".format(time02 - time01))
test01()
test02()
Résultat de l'exécution:
Durée du test 01: 1.631000s
Durée du test02: 1.533000s
speed05.py
import time
def test01():
time01 = time.time()
lst = []
for i in range(10000000):
lst.append(i)
time02 = time.time()
print("Durée du test01:{:.6f}s".format(time02 - time01))
def test02():
time01 = time.time()
lst = []
append = lst.append
for i in range(10000000):
append(i) # lst.La vitesse peut être améliorée en utilisant append au lieu d'ajout
time02 = time.time()
print("Durée du test02:{:.6f}s".format(time02 - time01))
def test03():
time01 = time.time()
lst = [i for i in range(10000000)]
time02 = time.time()
print("Durée du test 03:{:.6f}s".format(time02 - time01))
test01()
test02()
test03()
Résultat de l'exécution:
Durée du test 01: 1.023000s
Durée du test02: 0.686000s
Durée du test03: 0.542000s
speed06.py
import time
from numba import jit
def test01(x, y):
time01 = time.time()
sum = 0
for i in range(x, y):
sum += i
time02 = time.time()
print("Durée du test01:{:.6f}s".format(time02 - time01))
return sum
@jit
def test02(x, y):
time01 = time.time()
sum = 0
for i in range(x, y):
sum += i
time02 = time.time()
print("Durée du test02:{:.6f}s".format(time02 - time01))
return sum
sum1 = test01(1, 100000000)
sum2 = test02(1, 100000000)
Résultat de l'exécution:
Durée du test01: 5.534000s
Durée du test02: 0.040000s
La bibliothèque de compilateur JIT Numba peut être exécutée 100 fois plus rapidement, Il semble que vous puissiez obtenir des performances comme le langage C
Vous devez installer Numba De plus, lorsque python est installé avec anaconda, il semble que Numba soit inclus depuis le début.
Recommended Posts