php Xiaobian Yuzai は今日、Protogen に関連する問題、つまり Goroutine スタックが超過した場合の状況を紹介します。 Protogen を使用して開発している場合、Goroutine スタックが超過したことを示すエラー メッセージが表示されることがあります。この問題が発生すると、プログラムのクラッシュやパフォーマンスの低下が発生する可能性があります。では、なぜこの問題が発生するのか、またその解決方法は何でしょうか?それでは、一つずつお答えしていきます。
最近、golang でコード生成の問題に遭遇しました。巨大な生ファイルがあるため、外部パッケージを使用してほとんどのメッセージにログを追加する必要があります。ただし、あまりにも多くのフィールドのログを追加すると、パニックが発生し、ゴルーチンのスタックを超えたと表示されます。コードをチャンクで生成する方法、または生成されたゴルーチンの最大キャッシュ サイズを増やす方法はありますか?
debug.SetMaxStack を試し、go コードでビルド コマンドを実行しましたが、何も変化はありませんでした。良い解決策とは思えませんでした。
問題が判明しました。 @BurakSerdar が再帰的印刷ループに関するコメントで述べたように、です。 したがって、次のようなものがある場合:
リーリーこれはすべきではありません:
リーリー同じメッセージ タイプのフィールドが含まれるメッセージがある場合、フィールドに追加したい他のカスタマイズについても同じことが当てはまると思います
以上がProtogen Goroutine スタックが超過しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。