468 Stimmen

Wie man das timeit-Modul verwendet

Wie verwende ich timeit um die Leistung meiner eigenen Funktionen wie " insertion_sort " und " tim_sort "?

35voto

Rodrigo Laguna Punkte 1158

Für mich ist das der schnellste Weg:

import timeit
def foo():
    print("here is my code to time...")

timeit.timeit(stmt=foo, number=1234567)

14voto

David Webb Punkte 131
#   

def gen_prime(x):
    multiples = []
    results = []
    for i in range(2, x+1):
        if i not in multiples:
            results.append(i)
            for j in range(i*i, x+1, i):
                multiples.append(j)

    return results

import timeit

#  

start_time = timeit.default_timer()
gen_prime(3000)
print(timeit.default_timer() - start_time)

# start_time = timeit.default_timer()
# gen_prime(1001)
# print(timeit.default_timer() - start_time)

14voto

Ohad Rubin Punkte 440

Das funktioniert hervorragend:

  python -m timeit -c "$(cat file_name.py)"

11voto

Übergeben Sie einfach Ihren gesamten Code als Argument von timeit:

import timeit

print(timeit.timeit(

"""   
limit = 10000
prime_list = [i for i in range(2, limit+1)]

for prime in prime_list:
    for elem in range(prime*2, max(prime_list)+1, prime):
        if elem in prime_list:
            prime_list.remove(elem)
"""   
, number=10))

4voto

Stryker Punkte 5104

Lassen Sie uns das gleiche Wörterbuch in jedem der folgenden Bereiche einrichten und die Ausführungszeit testen.

Das Argument setup dient im Wesentlichen der Einrichtung des Wörterbuchs

Zahl ist, den Code 1000000 Mal auszuführen. Nicht das Setup, sondern die Anweisung

Wenn Sie dies ausführen, können Sie sehen, dass index viel schneller ist als get. Sie können es mehrere Male ausführen, um zu sehen.

Der Code versucht im Wesentlichen, den Wert von c im Wörterbuch abzurufen.

import timeit

print('Getting value of C by index:', timeit.timeit(stmt="mydict['c']", setup="mydict={'a':5, 'b':6, 'c':7}", number=1000000))
print('Getting value of C by get:', timeit.timeit(stmt="mydict.get('c')", setup="mydict={'a':5, 'b':6, 'c':7}", number=1000000))

Hier sind meine Ergebnisse, Ihre werden abweichen.

nach Index: 0.20900007452246427

von get: 0.54841166886888

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X