Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mengukur Masa Jalanan Fungsi dalam Go dengan Ketepatan Milisaat?

Bagaimanakah Saya Boleh Mengukur Masa Jalanan Fungsi dalam Go dengan Ketepatan Milisaat?

Linda Hamilton
Linda Hamiltonasal
2024-12-01 05:50:10290semak imbas

How Can I Measure Function Runtime in Go with Millisecond Precision?

Mengira Masa Jalan Fungsi dalam Go dengan Ketepatan Milisaat

Dalam Go, mengukur masa jalan fungsi dan mengembalikan tempohnya dalam milisaat menjadi mudah terima kasih kepada kuasa fungsi tertunda. Begini cara anda boleh melakukannya:

Untuk Go 1.x dan ke atas, takrifkan fungsi utiliti berikut:

func trace(s string) (string, time.Time) {
    log.Println("START:", s)
    return s, time.Now()
}

func un(s string, startTime time.Time) {
    endTime := time.Now()
    log.Println("  END:", s, "Elapsed Time in seconds:", endTime.Sub(startTime))
}

Kemudian, untuk menetapkan masa fungsi, hanya tangguhkan fungsi un() dengan rentetan yang sesuai pada permulaan fungsi:

func someFunction() {
    defer un(trace("SOME_ARBITRARY_STRING_SO_YOU_CAN_KEEP_TRACK"))

    // Do your stuff ...
}

Apabila anda menjalankan fungsi ini, anda akan mendapat mesej log ringkas yang menunjukkan mula dan tamat fungsi, bersama-sama dengan masa berlalu dalam beberapa saat.

Perlu diingat bahawa walaupun kaedah ini tidak sesuai untuk pemasaan yang sangat tepat disebabkan oleh overhed pembalakan, ia merupakan pendekatan yang berkesan dan mudah untuk kebanyakan kes penggunaan. Teknik penangguhan Go memudahkan fungsi masa dan menjejaki masa pelaksanaannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengukur Masa Jalanan Fungsi dalam Go dengan Ketepatan Milisaat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn