Rumah >pembangunan bahagian belakang >Golang >Mengapa Penyelarasan Pengiraan Purata Bergerak dengan Goroutines Mengakibatkan Kemerosotan Prestasi?
Masalah ini melibatkan pengoptimuman fungsi Go untuk mengira purata bergerak bagi kepingan. Fungsi ini sememangnya memalukan selari, bermakna ia boleh dibahagikan dengan mudah kepada tugas bebas yang boleh dilaksanakan secara serentak.
Pemaju cuba menyelaraskan fungsi menggunakan goroutine dalam dua cara:
Tanda aras menunjukkan bahawa kedua-dua pendekatan serentak berprestasi lebih teruk daripada fungsi bersiri asal moving_avg_serial4.
Sebab mengapa moving_avg_concurrent2 tidak berskala ialah overhed mencipta dan mengurus gorout melebihi faedah selari. Dalam kes ini, overhed termasuk masa yang dibelanjakan untuk mencipta dan menjadualkan gorouti, serta masa yang dibelanjakan untuk komunikasi dan penyegerakan antara gorouti.
Paradigma tuan/pekerja memperkenalkan overhed tambahan berbanding goroutine langsung pendekatan. Dalam moving_avg_concurrent3, terdapat keperluan untuk mencipta saluran untuk komunikasi antara goroutine induk dan pekerja, dan untuk menguruskan penghantaran dan penerimaan unit kerja. Overhed ini merendahkan lagi prestasi fungsi.
Ya, ada kemungkinan overhed goroutine boleh memberi kesan yang ketara kepada prestasi program. Goroutine ialah utas yang ringan, tetapi mereka masih mempunyai beberapa overhed yang dikaitkan dengan penciptaan, penjadualan dan penyegerakannya. Dalam kes moving_avg_concurrent3, overhed mengurus saluran dan komunikasi tuan/pekerja menambah masa jalan fungsi.
Atas ialah kandungan terperinci Mengapa Penyelarasan Pengiraan Purata Bergerak dengan Goroutines Mengakibatkan Kemerosotan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!