Сколько байтов байт-кода имеет определенный метод в Java?

Недавно я прочитал в блоге Джона Масамицу, что огромные методы (8000 байт байт-кода) не скомпилированы JIT с HotSpot.

Итак, мой вопрос: как я узнаю (как программист), сколько байтов байтового кода имеет конкретный метод?

Компилятор JIT, конечно, кажется, знает. Могу ли я извлечь эту часть информации из .class файл?

1 ответ

Решение

Ты можешь использовать javap -c mypackage.MyClass сбросить байт-код вашего класса (и посмотреть размер каждого метода)

Вообще говоря, вы должны знать, что метод слишком велик для чтения и понимания, прежде чем вы достигнете этого предела. ИМХО, это больше проблема для сгенерированного кода. Кстати, в методе есть жесткое ограничение в 65536 байт.

Другие вопросы по тегам