Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Πως μπορώ να μετρήσω την συχνότητα ενός loop;

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 7 Μήνες πριν #3812

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
Ας πούμε ότι έχω τον παρακάτω κώδικα:
for i in myList:
    #do something here
    pass

πως μπορώ να μετρήσω πόσος χρόνος χρειάζεται για να τρέξει μία φορά το loop ανεξάρτητα σε τη μηχάνημα τρέχει;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 7 Μήνες πριν #3813

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Δεν καταλαβαίνω τι εννοείς "μία φορά"
Μια φορά θα τρέξει το for loop ούτως ή άλλως.
Μήπως εννοείς για ένα μόνο στοιχείο της λίστας?

Τέλος πάντων, όλο το loop μπορείς να το μετρήσεις με το time:
import time
 
start_time = time.time()
for i in myList:
    # do something here
    pass
end_time = time.time()
print("total time taken: ", end_time - start_time)

Για ένα στοιχείο μόνο, πρέπει να μεταφέρεις την μέτρηση μέσα στο for loop.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 7 Μήνες πριν #3814

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
Προφανώς αν τρέξει μόνο μια φορά, δεν παίρνεις αξιόπιστες μετρήσεις.
Κατά τα άλλα, ότι έγραψε ο babaliaris1 και ο embryo.
Επίσης δες αυτό.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": babaliaris1

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 7 Μήνες πριν #3815

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 445
  • Ληφθείσες Ευχαριστίες 75
kamar έγραψε:
Προφανώς αν τρέξει μόνο μια φορά, δεν παίρνεις αξιόπιστες μετρήσεις.
Κατά τα άλλα, ότι έγραψε ο babaliaris1 και ο embryo.
Επίσης δες αυτό.

Το timeit την κάνει την δουλεία ;)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 7 Μήνες πριν #3816

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 249
  • Ληφθείσες Ευχαριστίες 70
Αν δεν καταλαβαίνεις πως δουλεύει το timeit γιατί ούτε εγώ το κατάλαβα αμέσως δίνω ένα παράδειγμα
Βάζεις το κώδικα σου μέσα σε μία συνάρτηση
def f():
  #Ο κώδικάς σου 
 
import timeit
 
xronos=timeit.Timer('f()', 'from __main__ import f') #αυτό μας επιστρέφει ένα timeit.Timer object
 
print(xronos.timeit(number=a)) #όπου a πόσες φορές θέλουμε να εκτελεστεί η συνάρτηση.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πως μπορώ να μετρήσω την συχνότητα ενός loop; 7 Χρόνια 6 Μήνες πριν #3859

  • n_karag
  • Το Άβαταρ του/της n_karag
  • Αποσυνδεμένος
  • py____
  • Software Developer at BMLL Technologies, London,UK
  • Δημοσιεύσεις: 9
  • Ληφθείσες Ευχαριστίες 2
Δεν ξέρω αν έχεις υπ'οψη σου το περιβάλλον IPython. Μοιάζει με το idle, αλλά έχει πολλές επιπλέον δυνατότητες, όπως η συμπλήρωση κώδικα με tab, η εκτέλεση εντολών shell, και οι "μαγικές" εντολές που ξεκινούν με (%).

Για την περίπτωση που αναφέρεις, η εντολή timeit που προαναφέρθηκε δίνεται σε % μορφή. Για παράδειγμα αν δώσεις
In [1]: %timeit f()
θα επιστρέψει κάτι του τύπου (τα νούμερα τυχαία)
1000000 loops, best of 3: 221 ns per loop

Αν θέλεις να τρέξεις τη συνάρτησή σου μόνο μία φορά, τότε μπορείς να δώσεις -n1
In [2]: %timeit -n1 f()

ΥΓ.
Η IPython αποτελεί τον πυρήνα του Jupyter (παραθυρικό περιβάλλον, εκτέλεση σε ξεχωριστά κελιά, κλπ). Αξίζει να τους ρίξεις μια ματιά.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.355 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου