Task description:
---------------------
The compiler team is responsible for implementing the following Diagnostic Commands (see main bug):
print_codegenlist
dump_codelist
print_codeblocks
Implementation:
-------------------------
Command: "dump_codegenlist"
New name: "Code.codelist"
Changes: prints to stdout instead of file
Description: compile ID, compile level, name and signature, [start of nmethod, start of code - end of code]
Example:
823 2 spec.jbb.JBButil.NUrand_val(IIIIS)I [0x00007f685d45af90, 0x00007f685d45b1c0 - 0x00007f685d45b8a0]
849 2 spec.jbb.NewOrder.getId()I [0x00007f685d45bb90, 0x00007f685d45bd00 - 0x00007f685d45bfd8]
608 1 spec.jbb.Customer.getDiscountRate()Ljava/math/BigDecimal; [0x00007f685d45c110, 0x00007f685d45c280 - 0x00007f685d45c438]
637 1 spec.jbb.District.getId()I [0x00007f685d45c510, 0x00007f685d45c660 - 0x00007f685d45c798]
...
Command: "print_codegenlist"
New name: "Code.compile_queue"
Example:
Contents of C1 compile queue
----------------------------
Empty
----------------------------
Contents of C2 compile queue
----------------------------
807 4 java.util.TreeMap::getCeilingEntry (107 bytes)
809 4 java.math.BigDecimal::layoutChars (656 bytes)
812 4 java.util.logging.Logger::logp (40 bytes)
817 s 4 spec.jbb.Order::getOrderlineList (45 bytes)
Command: "print_codeblocks"
New name: "Code.codecache"
Changes: Hotspot does not have segments for different code types, thus is contains much less information.
Example:
CodeCache: size=245760Kb used=2577Kb max_used=2580Kb free=243182Kb
bounds [0x00007f82e1000000, 0x00007f82e1290000, 0x00007f82f0000000]
total_blobs=664 nmethods=91 adapters=494
compilation: enabled
Help messages:
----------------------------
>> help Compiler.codecache
Compiler.codecache
Print code cache layout and bounds.
Impact: Low
Permission: java.lang.management.ManagementPermission(monitor)
Syntax: Compiler.codecache
>>help Compiler.codelist
Compiler.codelist
Print all compiled methods in code cache.
Impact: Medium
Permission: java.lang.management.ManagementPermission(monitor)
Syntax: Compiler.codelist
>>help Compiler.queue
Compiler.queue
Print methods queued for compilation.
Impact: Low
Permission: java.lang.management.ManagementPermission(monitor)
Syntax: Compiler.queue