Tugas Selari yang Memalukan dan Prestasi Pergi
Latar Belakang:
Kod yang disediakan menangani pengoptimuman tugas untuk meningkatkan prestasi pengiraan yang melibatkan purata bergerak bagi tetingkap data, dengan matlamat mencapai kelajuan yang ketara menggunakan goroutine.
Soalan:
Mengapakah pelaksanaan berasaskan goroutine yang disediakan (moving_avg_concurrent2 dan moving_avg_concurrent3) tidak menunjukkan prestasi yang dijangkakan penambahbaikan?
Jawapan:
Fakta #1: Tugasan Ini Tidak Memalukan Selari
Pengiraan purata bergerak secara semula jadi satu proses yang berurutan. Walaupun ia beroperasi pada berbilang titik data, pengiraan bergantung pada nilai sebelumnya dalam tetingkap, menjadikannya mustahil untuk menyelaraskan operasi sepenuhnya.
Fakta #2: Had Pemprosesan Teragih Go
Keupayaan pemprosesan yang diedarkan Go hanya menjadi berkesan apabila sebahagian besar pemprosesan adalah selari. Dalam kes ini, pengiraan purata bergerak adalah secara berurutan, mengehadkan faedah pengagihan.
Pertimbangan Tambahan:
Kesimpulan:
Sementara Goroutines dan pemprosesan selari boleh berkesan untuk jenis pengiraan tertentu, ia bukan peluru perak untuk peningkatan prestasi. Dalam kes ini, sifat jujukan yang wujud dalam pengiraan purata bergerak mengehadkan faedah pemprosesan selari.
Atas ialah kandungan terperinci Mengapa Goroutines Tidak Meningkatkan Prestasi dalam Pengiraan Purata Pergerakan ini?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!