Τι είναι το Python Timeit ();
Το Python timeit () είναι μια μέθοδος στη βιβλιοθήκη Python για τη μέτρηση του χρόνου εκτέλεσης που λαμβάνεται από το δεδομένο απόσπασμα κώδικα. Η βιβλιοθήκη Python εκτελεί τη δήλωση κώδικα 1 εκατομμύριο φορές και παρέχει τον ελάχιστο χρόνο που απαιτείται από το δεδομένο σύνολο αποσπασμάτων κώδικα. Το Python timeit () είναι μια χρήσιμη μέθοδος που βοηθά στον έλεγχο της απόδοσης του κώδικα.
Σύνταξη:
timeit.timeit(stmt, setup,timer, number)
Παράμετροι
- stmt : Θα πάρει τον κωδικό για τον οποίο θέλετε να μετρήσετε τον χρόνο εκτέλεσης. Η προεπιλεγμένη τιμή είναι "pass".
- setup : Αυτό θα έχει λεπτομέρειες εγκατάστασης που πρέπει να εκτελεστούν πριν από το stmt. Η προεπιλεγμένη τιμή είναι "pass".
- timer : Αυτό θα έχει την τιμή χρονοδιακόπτη, το timeit () έχει ήδη μια προεπιλεγμένη τιμή και μπορούμε να την αγνοήσουμε.
- number : Το stmt θα εκτελεστεί σύμφωνα με τον αριθμό που δίνεται εδώ. Η προεπιλεγμένη τιμή είναι 1000000.
Για να δουλέψουμε με το timeit (), πρέπει να εισαγάγουμε τη λειτουργική μονάδα, όπως φαίνεται παρακάτω:
import timeit
Πρώτο παράδειγμα
Εδώ είναι ένα απλό παράδειγμα της συνάρτησης timeit ()
Παράδειγμα κώδικα 1:
# testing timeit()import timeitprint(timeit.timeit('output = 10*5'))
Παραγωγή:
0.06127880399999999
Έχουμε δει ένα απλό παράδειγμα που μας δίνει τον χρόνο εκτέλεσης της απλής δήλωσης κωδικού εξόδου = 10 * 5 και ο χρόνος που απαιτείται για την εκτέλεση είναι 0,06127880399999999.
Συγχρονισμός πολλαπλών γραμμών σε κώδικα python
Υπάρχουν δύο που μπορείτε να εκτελέσετε πολλές γραμμές κώδικα στο timeit.timeit (), χρησιμοποιώντας ένα ερωτηματικό ή αποθηκεύοντας τον κωδικό που περικλείεται ως συμβολοσειρά με τριπλά εισαγωγικά.
Ακολουθούν παραδείγματα που δείχνουν τη λειτουργία του.
Παράδειγμα 1: Χρήση ερωτηματικού
import timeitprint("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
Παραγωγή:
The time taken is 0.137031482
Παράδειγμα 2: Χρήση τριπλών εισαγωγικών
import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module))
Παραγωγή:
C:\pythontest>python testtimeit.pyThe time taken is 0.182619178
timeit - Μέθοδοι:
Εδώ είναι 2 σημαντικές μέθοδοι χρονικού ορίου
timeit.default_timer () : Αυτό θα επιστρέψει τον προεπιλεγμένο χρόνο κατά την εκτέλεση.
timeit.repeat (stmt, setup, timer, repeat, number) : ίδιο με το timeit (), αλλά με επανάληψη το timeit () ονομάζεται ο αριθμός των φορών που δίνεται επανάληψη.
Παράδειγμα προγράμματος 1:
# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.timeit(stmt=testcode, setup=import_module))
Παραγωγή:
0.46715912400000004
Παράδειγμα 2:
default_timer () Παράδειγμα
# testing timeit()import timeitimport randomdef test():return random.randint(10, 100)starttime = timeit.default_timer()print("The start time is :",starttime)test()print("The time difference is :", timeit.default_timer() - starttime)
Παραγωγή:
The start time is : 0.220261875The time difference is : 0.0004737320000000045
Παράδειγμα 3: timeit.repeat ()
# testing timeit()import timeitimport_module = "import random"testcode = '''def test():return random.randint(10, 100)'''print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))
Παραγωγή:
[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]
timeit.repeat () λειτουργεί παρόμοια με τη συνάρτηση timeit.timeit (), με τη μόνη διαφορά που χρειάζεται στο όρισμα επανάληψης και επιστρέφει τον χρόνο εκτέλεσης σε μορφή πίνακα με τιμές σύμφωνα με τον αριθμό επανάληψης.
Εκτέλεση συνάρτησης χρονισμού timeit.timeit () μέσα στη διεπαφή γραμμής εντολών
Η σύνταξη για την εκτέλεση της λειτουργίας σας εντός του timeit () στη γραμμή εντολών έχει ως εξής:
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement… ]
Παράμετροι γραμμής εντολών:
- -n N: πόσες φορές θέλετε να εκτελεστεί ο κώδικας.
- -r N: ο αριθμός των φορών που θέλετε να επαναληφθεί η συνάρτηση timeit ()
- -s S: αυτό θα έχει λεπτομέρειες εγκατάστασης που θα εκτελεστούν πριν από την εκτέλεση κώδικα.
- -t: για αυτό, μπορείτε να κάνετε χρήση του χρόνου. ώρα ()
- -c: για αυτό, μπορείτε να κάνετε χρήση του time.clock ()
- -h: για βοήθεια
- δήλωση κωδικού: Οι λεπτομέρειες του κωδικού.
Παράδειγμα:
C:\pythontest>python -m timeit -s 'text="hello world"'20000000 loops, best of 5: 13.1 nsec per loop
Ένας άλλος τρόπος για να εκτελέσετε την εσωτερική γραμμή εντολών είναι όπως φαίνεται παρακάτω:
Παράδειγμα:
>>> import timeit>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))The time taken is 0.15048536300000137>>>
Γιατί είναι το timeit () ο καλύτερος τρόπος μέτρησης του χρόνου εκτέλεσης του κώδικα Python;
Εδώ είναι μερικοί λόγοι για τους οποίους θεωρούμε ότι το timeit () είναι ο καλύτερος τρόπος μέτρησης του χρόνου εκτέλεσης.
- Εκτελεί τη δήλωση κώδικα 1 εκατομμύριο φορές που είναι η προεπιλεγμένη τιμή και από αυτό, θα σας επιστρέψει τον ελάχιστο χρόνο που απαιτείται. Μπορείτε επίσης να αυξήσετε / μειώσετε το 1 εκατομμύριο ορίζοντας τον αριθμό ορίσματος στη συνάρτηση χρόνου ().
- Κατά την εκτέλεση της δοκιμής, η συλλογή απορριμμάτων απενεργοποιείται κάθε φορά ανά ώρα ().
- Το timeit () παίρνει εσωτερικά τον ακριβή χρόνο σύμφωνα με το λειτουργικό σας σύστημα που χρησιμοποιείται. Για παράδειγμα, θα χρησιμοποιήσει το time.clock () για το λειτουργικό σύστημα των Windows και το time.time () για mac και Linux.
Περίληψη
Το Timeit () χρησιμοποιείται για να πάρει τον χρόνο εκτέλεσης που απαιτείται για τον μικρό κωδικό που δίνεται
Παράμετροι που χρησιμοποιούνται με το timeit ()
- stmt: Θα πάρει τον κωδικό που θέλετε να μετρήσετε τον χρόνο εκτέλεσης
- setup: Αυτό θα έχει λεπτομέρειες εγκατάστασης που πρέπει να εκτελεστούν πριν από το stmt
- timer: Αυτό θα έχει την τιμή χρονοδιακόπτη, το timeit () έχει ήδη μια προεπιλεγμένη τιμή και μπορούμε να την αγνοήσουμε.
- number: Το stmt θα εκτελεστεί σύμφωνα με τον αριθμό που δίνεται εδώ.