Mempercepatkan Penghuraian Tarikh dengan strptime
Menghuraikan tarikh dalam format 'YYYY-MM-DD' menggunakan datetime.datetime.strptime() Python fungsi boleh menjadi halangan prestasi apabila mengendalikan jumlah kurma yang besar. Artikel ini meneroka alternatif yang cekap untuk mempercepatkan proses penghuraian tarikh.
Kaedah strptime() standard bergantung pada set spesifikasi format yang komprehensif untuk mentafsir rentetan tarikh. Walaupun fleksibiliti ini berharga, ia memperkenalkan overhed pengiraan. Untuk mengurangkan ini, pendekatan yang lebih diperkemas disyorkan apabila berurusan dengan tarikh dalam format yang konsisten.
Penyelesaian yang dicadangkan melibatkan menghuraikan rentetan tarikh secara manual ke dalam komponen konstituennya (tahun, bulan, hari) menggunakan keupayaan manipulasi rentetan Python . Dengan mengelakkan spesifikasi format kompleks strptime(), peningkatan prestasi yang ketara boleh dicapai.
Sebagai contoh konkrit, penanda aras yang membandingkan strptime() dengan pendekatan penghuraian manual menghasilkan hasil yang luar biasa:
datetime.datetime.strptime(a, '%Y-%m-%d').date() # 8.87us datetime.date(*map(int, a.split('-'))) # 1.28us
Kaedah penghuraian manual mengatasi prestasi strptime() dengan faktor 7, dengan berkesan menangani kebimbangan prestasi.
Pengoptimuman lanjut boleh dilakukan dengan menggunakan penghirisan rentetan eksplisit:
datetime.date(int(a[:4]), int(a[5:7]), int(a[8:10])) # 1.06us
Kaedah ini , memanfaatkan fakta bahawa setiap komponen tarikh menduduki kedudukan tetap dalam rentetan, mencapai faktor 8 peningkatan yang mengagumkan berbanding strptime().
Dengan menggunakan pendekatan penghuraian manual atau versi dipertingkatkannya dengan penghirisan eksplisit, ia menjadi sesuai untuk memproses jumlah tarikh yang besar dalam format 'YYYY-MM-DD' dengan kelajuan yang dipertingkatkan dengan ketara.
Atas ialah kandungan terperinci Bagaimanakah Kita Boleh Mempercepatkan Penghuraian Tarikh dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!