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中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号