Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Timbunan Protogen Goroutine melebihi

Timbunan Protogen Goroutine melebihi

王林
王林ke hadapan
2024-02-09 09:48:09822semak imbas

Protogen Goroutine 堆栈超过

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.

Kandungan soalan

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

Penyelesaian

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!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
Artikel sebelumnya:Menggunakan proksi socks5 goArtikel seterusnya:Menggunakan proksi socks5 go