ホームページ > バックエンド開発 > Golang > Protogen Goroutine スタックが超過しました

Protogen Goroutine スタックが超過しました

王林
リリース: 2024-02-09 09:48:09
転載
858 人が閲覧しました

Protogen Goroutine 堆栈超过

php Xiaobian Yuzai は今日、Protogen に関連する問題、つまり Goroutine スタックが超過した場合の状況を紹介します。 Protogen を使用して開発している場合、Goroutine スタックが超過したことを示すエラー メッセージが表示されることがあります。この問題が発生すると、プログラムのクラッシュやパフォーマンスの低下が発生する可能性があります。では、なぜこの問題が発生するのか、またその解決方法は何でしょうか?それでは、一つずつお答えしていきます。

質問内容

最近、golang でコード生成の問題に遭遇しました。巨大な生ファイルがあるため、外部パッケージを使用してほとんどのメッセージにログを追加する必要があります。ただし、あまりにも多くのフィールドのログを追加すると、パニックが発生し、ゴルーチンのスタックを超えたと表示されます。コードをチャンクで生成する方法、または生成されたゴルーチンの最大キャッシュ サイズを増やす方法はありますか?

debug.SetMaxStack を試し、go コードでビルド コマンドを実行しましたが、何も変化はありませんでした。良い解決策とは思えませんでした。

回避策

問題が判明しました。 @BurakSerdar が再帰的印刷ループに関するコメントで述べたように、です。 したがって、次のようなものがある場合:

リーリー

これはすべきではありません:

リーリー

同じメッセージ タイプのフィールドが含まれるメッセージがある場合、フィールドに追加したい他のカスタマイズについても同じことが当てはまると思います

以上がProtogen Goroutine スタックが超過しましたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート