Playing with proxies compilation flags.
$ gradle [-q] build
$ gradle [-q] run
gradle build
is a prerequisite for each of thoses tasks.
$ java -Xbatch -XX:-TieredCompilation \
-XX:+PrintCompilation \
-XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining \
-XX:+LogCompilation \
-cp build/classes/main \
org.dryft.antiproxy.Main
Or:
$ ./print_inlining.sh
$ java -Xbatch -XX:-TieredCompilation \
-XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly \
-cp build/classes/main \
org.dryft.antiproxy.Main
Or:
$ ./print_assembly.sh
325 bytecode instructions by default on Linux 64 bits.
Print hot methods.
https://gist.github.com/rednaxelafx/1165804#file-notes-md
Print inlining tree and class profile.
-XX:+UnlockDiagnosticVmOptions
required for inlining to work.
More info, branch profile info, etc
Annotated generated code.
HotSpot disassembler plugin needed: https://kenai.com/projects/base-hsdis/downloads
-Xbatch
: one thread running and compilation-XX:-TieredCompilation