Quanti byte di bytecode hanno un metodo particolare in Java?

Recentemente ho letto su Weblog di Jon Masamitsu che enormi metodi (8000 byte di bytecode) non sono compilati con JIT HotSpot.

Quindi la mia domanda è: come faccio a scoprire (come programmatore) quanti byte di bytecode ha un particolare metodo?

Il compilatore del JIT, ovviamente, sembra saperlo. Posso estrarre questa informazione dal file .class ?

Puoi usare javap -c mypackage.MyClass per scaricare il bytecode della tua class (e vedere le dimensioni di ogni metodo)

In generale, dovresti sapere che un metodo è troppo grande per essere letto e compreso prima di raggiungere questo limite. IMHO è più un problema per il codice generato. BTW C’è un limite rigido di 65536 byte in un metodo.