忍者ブログ

ひつ(じのひよこが)プログラミングします。
お仕事や趣味で困ったこととか、何度も「あれ?どうだったかしら」と調べたりしたこととか、作ったものとか、こどものこととかを書きます
★前は週末定期更新でしたが今は不定期更新です

2024/11    10« 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  »12

Method code too large in Groovy & Grails? - Stack Overflow の翻訳と java.lang.RuntimeException: Method code too large と言われた時の対応

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

Method code too large in Groovy & Grails? - Stack Overflow の翻訳と java.lang.RuntimeException: Method code too large と言われた時の対応

権利的な話

この記事は Creative Commons by-by 3.0 で公開されている記事を翻訳したものです。その為、この記事も同じライセンスとなります。

元記事は Method code too large in Groovy & Grails? - Stack Overflow です。

この記事は何?

Method code too large in Groovy & Grails? - Stack Overflow の翻訳です。ある日のこと、会社の後輩が「なんじゃそりゃあああ」ってしてたので「どうしたの?」したら「ひよちゃん、java.lang.RuntimeException: Method code too large って何」と問われたので調べてみたところ見つけたところです (まぁ、これだけでは後輩の問題は解決しないんだけど……)。

本文

Method code too large in Groovy & Grails?

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 ファイルのサイズは 149KB しかないのですが……

質問日時 2014年6月17日 05:28

質問者 wright


もうちょっと詳細教えてよ。Grails のバージョンとか、問題を起こしているコードの詳細とかさ

日時 2014年6月17日 05:57

返答者 saw303

JVM (Java Virtual Machine) の制限で1メソッドの長さは 65536 bytes までと決まっています。これについてはこの記事が詳しく説明しています。この問題を解決する最善策は大きなメソッドをいくつかの小さなメソッドに分割することであり、ベストプラクティスです。

また、JVM の JIT compiler は 8192 bytes より長いコードをコンパイルしません。この挙動は -XX:-DontCompileHugeMethods で変更できます。

日時 2014年6月17日 06:15

返答者 dror-bereznitsky

で???

後輩が直面したのは Groovy on Jenkins でのことであった。以上の情報でこれを後輩に解決してこい、というのはちょっと無茶である。この問題は結構前から知られているようであり ([JENKINS-37984] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed: General error during class generation: Method code too large! error in pipeline Script - Jenkins JIRA) また、解決も難しいだろう。大変ありがたいことに [JENKINS-56500] Declerative pipeline restricted in code size - Jenkins JIRA 曰く以下の通りらしい。

When working with a declarative pipeline script, we run into an error "Method Code too large".

This seems to happen when the code between 'pipeline{}' is more than a specific size.

つまり パイプラインを記述したスクリプトを動かそうとしたが、 "Method Code too large" と言われて止まった。どうも pipeline{} が一定以上長いと発生するらしい。とのことだ。これをそのまま信じるとすれば、パイプラインを分けるしかないんだろうなぁ……

PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R