editor php Yuzai hari ini akan memperkenalkan kepada anda masalah yang berkaitan dengan Protogen: keadaan apabila timbunan Goroutine melebihi. Apabila membangun dengan Protogen, kadangkala anda akan menemui mesej ralat yang menunjukkan bahawa susunan Goroutine melebihi. Kejadian masalah ini boleh menyebabkan ranap program atau kemerosotan prestasi. Jadi, mengapa masalah ini berlaku dan bagaimana untuk menyelesaikannya? Seterusnya, kami akan menjawabnya satu persatu.
Baru-baru ini saya menghadapi masalah penjanaan kod dalam golang. Saya mempunyai fail mentah yang besar dan kini perlu menambah pengelogan pada kebanyakan mesej menggunakan pakej luaran. Walau bagaimanapun, jika saya menambah pengelogan untuk terlalu banyak medan, ia panik dan mengatakan timbunan goroutine telah melebihi. Adakah terdapat cara untuk menjana kod dalam ketulan, atau hanya meningkatkan saiz cache maksimum gorouti yang dihasilkan?
Saya cuba nyahpepijat.SetMaxStack dan menjalankan arahan bina dengan kod go tetapi tiada apa yang berubah, ia nampaknya bukan penyelesaian yang baik kepada saya
Ternyata masalahnya adalah, seperti yang @BurakSerdar mengulas mengenai pencetakan rekursif berkata dalam kitaran. Jadi jika anda mempunyai sesuatu seperti:
message human { string name = 1; human child = 2; human parent = 3; }
Anda tidak sepatutnya melakukan ini:
message human { string name = 1; human child = 2 [(logger.field) = true]; human parent = 3; }
Saya percaya perkara yang sama berlaku untuk penyesuaian lain yang ingin anda tambahkan pada medan, jika anda mempunyai mesej, sertakan medan dengan jenis mesej yang sama
Atas ialah kandungan terperinci Timbunan Protogen Goroutine melebihi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!