Максимальный размер метода в java?

Я узнаю, что максимальный размер метода в java равен 64k. И если он будет превышать, мы получим предупреждение о компиляторе, например "Слишком большой код для компиляции". Поэтому мы можем назвать это недостатком java с этим небольшим объемом памяти.

Можно ли увеличить этот размер или увеличить его?

Чем больше идея относительно размера этого метода?

3 ответа

По моему опыту ограничение 64 КБ - это только проблема для сгенерированного кода. особенно при инциализации больших массивов (что делается в коде)

В хорошо структурированном коде каждый метод является управляемой длиной и намного меньше этого предела. Большие части данных, которые нужно загружать в массивы, можно читать из файлов, отличных от Java, таких как текстовый или двоичный файл.

EDIT:

Не стоит ничего, что JIT не будет компилировать методы размером более 8 К. Это означает, что код работает медленнее и может влиять на время GC (поскольку менее эффективно искать стек вызовов потока с помощью методов, которые не скомпилированы esp большие)

Если возможно, вы хотите ограничить свои методы до 8 К, а не 64 К.


64k довольно много, если вы его превысите, вы можете подумать о реорганизации кода.

В моем проекте я встретил это ограничение один раз в сгенерированных источниках. Решено путем простого разделения одного метода на несколько.


Если ваш метод длиннее 50 строк, включая внутренние комментарии, разделите его. В этом случае вы никогда не достигнете каких-либо ограничений (даже если они существуют).

Я лично видел 1000 строк длинных методов (написанных преступниками, которые называют себя программистами:)), но не видел такого ограничения.

licensed under cc by-sa 3.0 with attribution.