Ukur Tepat Tempoh Masa dalam Pergi
Latar Belakang:
Kaedah tradisional untuk mengukur tempoh masa menggunakan pakej masa boleh menjadi tidak tepat kerana pelarasan pada masa sistem, seperti perubahan zon waktu atau lonjakan detik. Pelarasan ini boleh menjejaskan ketepatan pengukuran masa berdasarkan masa.Now().
Jam Monotonic:
Go menyelesaikan isu ini dengan menggunakan jam monotonic, yang bukan tertakluk kepada pelarasan tersebut. Bermula dengan Go 1.9, Go menyediakan jam monotonik untuk mengukur tempoh. Ini memastikan bahawa ukuran masa berlalu adalah konsisten dan tepat, walaupun masa sistem berubah.
Contoh:
start := time.Now() ... operation that takes 20 milliseconds ... t := time.Now() elapsed := t.Sub(start)
Dalam contoh ini, masa berlalu akan sentiasa kira-kira 20 milisaat, tanpa mengira sebarang perubahan pada jam dinding semasa operasi.
Lain-lain Idiom:
Operasi masa lain yang menggunakan jam monotonik termasuk:
Idiom ini juga teguh terhadap jam dinding ditetapkan semula.
Nota:
Sebelum Pergi 1.9, menggunakan masa.Now() untuk pengukuran masa boleh menyebabkan ketidaktepatan. Walau bagaimanapun, dengan pengenalan jam monotonik, Go kini menyediakan ukuran tempoh masa yang tepat dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimanakah Boleh Mengukur Tempoh Masa Dengan Tepat, Walaupun Dengan Perubahan Masa Sistem?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!