Apa cara yang tepat untuk membandingkan 2 kali dalam Python untuk mempercepat menguji bagian kode? Saya mencoba membaca dokumen API. Saya tidak yakin saya memahami hal timedelta.
Sejauh ini saya memiliki kode ini:
from datetime import datetime
tstart = datetime.now()
print t1
# code to speed test
tend = datetime.now()
print t2
# what am I missing?
# I'd like to print the time diff here
python
datetime
time
time-measurement
BuddyJoe
sumber
sumber
Jawaban:
datetime.timedelta
hanya perbedaan antara dua datetimes ... jadi seperti periode waktu, dalam hari / detik / mikrodetikKetahuilah bahwa
c.microseconds
hanya mengembalikan bagian mikrodetik dari timedelta! Untuk tujuan waktu selalu gunakanc.total_seconds()
.Anda dapat melakukan segala macam matematika dengan datetime.timedelta, misalnya:
Mungkin lebih bermanfaat untuk melihat waktu CPU daripada waktu jam dinding meskipun ... itu tergantung sistem operasi ... di bawah sistem mirip Unix, lihat perintah 'waktu'.
sumber
int(c.total_seconds() / 60)
dalam kasus iniKarena Python 2.7 ada metode timedelta.total_seconds (). Jadi, untuk mendapatkan milidetik yang berlalu:
sumber
Anda mungkin ingin menggunakan modul timeit saja.
sumber
Anda juga bisa menggunakan:
Atau Anda dapat menggunakan profiler python .
sumber
start = time.clock()
mencetakDeprecationWarning: time.clock has been deprecated in Python 3.3 and will be removed from Python 3.8: use time.perf_counter or time.process_time instead
.Saya tahu ini terlambat, tetapi saya sebenarnya sangat suka menggunakan:
time.time()
memberi Anda detik sejak zaman. Karena ini adalah waktu yang terstandarisasi dalam detik, Anda dapat mengurangi waktu mulai dari waktu selesai untuk mendapatkan waktu proses (dalam detik).time.clock()
bagus untuk pembandingan, tetapi saya merasa ini tidak berguna jika Anda ingin tahu berapa lama proses Anda. Misalnya, jauh lebih intuitif untuk mengatakan "proses saya membutuhkan 10 detik" daripada mengatakan "proses saya membutuhkan 10 unit jam prosesor"Pada contoh pertama di atas, Anda diperlihatkan waktu 0,05 untuk time.clock () vs 0,06377 untuk time.time ()
Dalam contoh kedua, entah bagaimana waktu prosesor menunjukkan "0" meskipun prosesnya tidur sebentar.
time.time()
benar menunjukkan sedikit lebih dari 1 detik.sumber
import time
pernyataanKode berikut harus menampilkan waktu yang ditentukan ...
sumber
Anda cukup mencetak perbedaannya:
sumber
Saya bukan programmer Python, tapi saya tahu cara menggunakan Google dan inilah yang saya temukan: Anda menggunakan operator "-". Untuk melengkapi kode Anda:
Selain itu, sepertinya Anda dapat menggunakan fungsi strftime () untuk memformat perhitungan rentang waktu untuk membuat waktu namun membuat Anda bahagia.
sumber
time.time () / datetime baik untuk penggunaan cepat, tetapi tidak selalu 100% tepat. Untuk alasan itu, saya suka menggunakan salah satu profiler std lib (terutama jagoan) untuk mencari tahu apa apa.
sumber
Anda mungkin ingin melihat modul profil . Anda akan mendapatkan hasil pembacaan yang lebih baik dari tempat perlambatan Anda, dan sebagian besar pekerjaan Anda akan diotomatiskan sepenuhnya.
sumber
Berikut adalah fungsi khusus yang meniru fungsi Matlab / Oktaf
tic
toc
.Contoh penggunaan:
Fungsi:
sumber
Anda bisa menggunakan timeit seperti ini untuk menguji skrip bernama module.py
sumber
Panah: Tanggal & waktu yang lebih baik untuk Python
sumber