首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Groovy和Grails中的方法代码太大?

Groovy和Grails中的方法代码太大?
EN

Stack Overflow用户
提问于 2014-06-17 13:28:54
回答 2查看 20.3K关注 0票数 8
代码语言:javascript
运行
复制
2014-06-17 11:22:18,622 [Thread-11] ERROR compiler.GrailsProjectWatcher  - Compilation Error: startup failed:
General error during class generation: Method code too large!

解决方案是什么?只需4-5行代码隐藏和重启即可完全运行成功,bootStrap文件大小为149k。当我注释或删除4-5行代码时,它将不会出现任何错误!

EN

回答 2

Stack Overflow用户

发布于 2014-06-17 14:15:06

Java Virtual Machine有一个limitation,它的方法不能大于64k (65536字节)。此post详细描述了此限制。

解决这个问题的最好方法是简单地将您的大型方法拆分成较小的方法,这通常是一个好的实践。

还要注意,JVM JIT编译器不会编译大于8K的方法。但是,您可以使用-XX:-DontCompileHugeMethods选项更改此行为。

票数 12
EN

Stack Overflow用户

发布于 2020-05-24 19:51:28

问题:在Jenkins管道中遇到了以下异常错误:org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during class generation: Method code too large! java.lang.RuntimeException: Method code too large!

解释:单个方法字节码限制64kB是根本原因。Java虚拟机对类有隐含的限制,根据性能和语言限制,必须遵循和限制,例如:帧中操作数堆栈的大小,字段和方法名称的长度,类中可以声明的方法的数量等。你可以在Oracle JVM documentation上遵循这个“检查清单”。在这个场景中,你得到了方法大小的限制。

Solution:为了解决这个问题,只需将类方法分离到共享库或子内部/外部类(例如Utils.Groovy )中,然后将该库导入到您的主类中。一般来说,代码应该是可读的、精简的和高层次的。如果太长,则使用面向对象的体系结构导出功能,您还可以获得可读和可维护的代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24256316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档