Concernant l'accélération de python (Note)

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

Recommended Posts

Concernant l'accélération de python (Note)
Mémo Python
mémo python
Mémo Python
Mémo Python
Mémo Python
[Python] Mémo sur le dictionnaire
mémo débutant python (9.2-10)
mémo débutant python (9.1)
★ Mémo ★ Python Iroha
[Python] Mémo EDA
Mémo opérateur Python 3
[Mon mémo] python
Mémo de métaclasse Python3
[Python] Mémo de fond de carte
Mémo débutant Python (2)
[Python] Mémo Numpy
Classe Python (mémo d'apprentissage Python ⑦)
installation de python openCV (mémo)
Module Python (mémo d'apprentissage Python ④)
Mémo de visualisation par Python
Mémo du package de test Python
[Python] Mémo sur les fonctions
mémo d'expression régulière python
Mémo de type Liste / Dictionnaire Python3
[Mémo] Tri de liste Python3
Astuces Python (mon mémo)
[Python] Mémo sur les erreurs
Mémo de script DynamoDB (Python)
Mémo de base Python - Partie 2
livre de recettes python Memo
Notes de commande de base Python
Mémo du didacticiel Python OpenCV
Mémo de grammaire de base Python
Mémo de l'API TensorFlow (Python)
liens de mémo utiles python
Mémo de base Python - Partie 1
Élément de mémo Python efficace 3
Mémo Python d'énumération approximative
Remarques sur l'accélération du code Python avec Numba
Chargement / affichage et accélération de gif avec python [OpenCV]
Mémo de "Cython-Accélérer Python en fusionnant avec C"
Configurer Python 3.4 sur Ubuntu
Mémo Python (pour moi): Array
Mémo de mesure du temps d'exécution Python
Mémo graphique Twitter avec Python
Configurer pour Mac (Python)
[Line / Python] Mémo d'implémentation Beacon
Mémo tranche python et rubis
Mémo de grammaire de base Python (1)
Mémo de code personnel Python
Raspeye + Python + Mémo OpenGL
Grammaire de base Python (divers) Mémo (3)
Mémo int de type immuable Python
mémo python utilisant perl --join
Mémo récapitulatif des types de données Python
Grammaire de base Python (divers) Mémo (2)
[MEMO] [Construction de l'environnement de développement] Python