Максимальный размер метода в java?
Я узнаю, что максимальный размер метода в java равен 64k. И если он будет превышать, мы получим предупреждение о компиляторе, например "Слишком большой код для компиляции". Поэтому мы можем назвать это недостатком java с этим небольшим объемом памяти.
Можно ли увеличить этот размер или увеличить его?
Чем больше идея относительно размера этого метода?
Ответы
Ответ 1
По моему опыту ограничение 64 КБ - это только проблема для сгенерированного кода. особенно при инциализации больших массивов (что делается в коде)
В хорошо структурированном коде каждый метод является управляемой длиной и намного меньше этого предела. Большие части данных, которые нужно загружать в массивы, можно читать из файлов, отличных от Java, таких как текстовый или двоичный файл.
EDIT:
Не стоит ничего, что JIT не будет компилировать методы размером более 8 К. Это означает, что код работает медленнее и может влиять на время GC (поскольку менее эффективно искать стек вызовов потока с помощью методов, которые не скомпилированы esp большие)
Если возможно, вы хотите ограничить свои методы до 8 К, а не 64 К.
Ответ 2
64k довольно много, если вы его превысите, вы можете подумать о реорганизации кода.
В моем проекте я встретил это ограничение один раз в сгенерированных источниках. Решено путем простого разделения одного метода на несколько.
Ответ 3
Если ваш метод длиннее 50 строк, включая внутренние комментарии, разделите его. В этом случае вы никогда не достигнете каких-либо ограничений (даже если они существуют).
Я лично видел 1000 строк длинных методов (написанных преступниками, которые называют себя программистами:)), но не видел такого ограничения.