首页 > 后端开发 > Golang > 正文

Protogen Goroutine 堆栈超过

王林
发布: 2024-02-09 09:48:09
转载
821 人浏览过

Protogen Goroutine 堆栈超过

php小编鱼仔今天为大家介绍一个与Protogen相关的问题:Goroutine堆栈超过的情况。在使用Protogen进行开发时,有时会遇到Goroutine堆栈超过的错误提示。这个问题的出现可能会导致程序崩溃或性能下降。那么,为什么会出现这个问题,以及如何解决呢?接下来,我们将一一解答。

问题内容

最近我在 golang 中遇到了代码生成问题。我有一个巨大的原始文件,现在需要使用外部包向大多数消息添加日志记录。但是,如果我为太多字段添加日志记录,则会出现恐慌,并表示 goroutine 堆栈超出。有没有办法按块生成代码,或者仅增加生成的 goroutine 最大缓存大小?

我尝试 debug.SetMaxStack 并使用 go 代码运行生成命令,但没有任何改变,这对我来说似乎不是一个好的解决方案

解决方法

事实证明,问题是,正如 @BurakSerdar 在评论递归打印循环中所说。 所以如果你有类似的东西:

message human {
  string name = 1;
  human child = 2;
  human parent = 3;
}
登录后复制

你不应该这样做:

message human {
  string name = 1;
  human child = 2 [(logger.field) = true];
  human parent = 3;
}
登录后复制

我相信您想要添加到字段的其他自定义内容也是如此,如果您有消息,包含具有相同消息类型的字段

以上是Protogen Goroutine 堆栈超过的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:stackoverflow.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!