624 public: 625 CodeCacheDCmd(outputStream* output, bool heap) : DCmd(output, heap) {} 626 static const char* name() { 627 return "Compiler.codecache"; 628 } 629 static const char* description() { 630 return "Print code cache layout and bounds."; 631 } 632 static const char* impact() { 633 return "Low"; 634 } 635 static const JavaPermission permission() { 636 JavaPermission p = {"java.lang.management.ManagementPermission", 637 "monitor", NULL}; 638 return p; 639 } 640 static int num_arguments() { return 0; } 641 virtual void execute(DCmdSource source, TRAPS); 642 }; 643 644 class CompilerDirectivesPrintDCmd : public DCmd { 645 public: 646 CompilerDirectivesPrintDCmd(outputStream* output, bool heap) : DCmd(output, heap) {} 647 static const char* name() { 648 return "Compiler.directives_print"; 649 } 650 static const char* description() { 651 return "Print all active compiler directives."; 652 } 653 static const char* impact() { 654 return "Low"; 655 } 656 static const JavaPermission permission() { 657 JavaPermission p = {"java.lang.management.ManagementPermission", 658 "monitor", NULL}; 659 return p; 660 } 661 static int num_arguments() { return 0; } 662 virtual void execute(DCmdSource source, TRAPS); 663 }; | 624 public: 625 CodeCacheDCmd(outputStream* output, bool heap) : DCmd(output, heap) {} 626 static const char* name() { 627 return "Compiler.codecache"; 628 } 629 static const char* description() { 630 return "Print code cache layout and bounds."; 631 } 632 static const char* impact() { 633 return "Low"; 634 } 635 static const JavaPermission permission() { 636 JavaPermission p = {"java.lang.management.ManagementPermission", 637 "monitor", NULL}; 638 return p; 639 } 640 static int num_arguments() { return 0; } 641 virtual void execute(DCmdSource source, TRAPS); 642 }; 643 644 //---< BEGIN >--- 8198691: CodeHeap State Analytics. 645 class CodeHeapAnalyticsDCmd : public DCmdWithParser { 646 protected: 647 DCmdArgument<char*> _function; 648 DCmdArgument<char*> _granularity; 649 public: 650 CodeHeapAnalyticsDCmd(outputStream* output, bool heap); 651 static const char* name() { 652 return "Compiler.CodeHeap_Analytics"; 653 } 654 static const char* description() { 655 return "Print CodeHeap analytics"; 656 } 657 static const char* impact() { 658 return "Low: Depends on code heap size and content. " 659 "Holds CodeCache_lock during analysis step, usually sub-second duration."; 660 } 661 static const JavaPermission permission() { 662 JavaPermission p = {"java.lang.management.ManagementPermission", 663 "monitor", NULL}; 664 return p; 665 } 666 static int num_arguments(); 667 virtual void execute(DCmdSource source, TRAPS); 668 }; 669 //---< END >--- 8198691: CodeHeap State Analytics. 670 671 class CompilerDirectivesPrintDCmd : public DCmd { 672 public: 673 CompilerDirectivesPrintDCmd(outputStream* output, bool heap) : DCmd(output, heap) {} 674 static const char* name() { 675 return "Compiler.directives_print"; 676 } 677 static const char* description() { 678 return "Print all active compiler directives."; 679 } 680 static const char* impact() { 681 return "Low"; 682 } 683 static const JavaPermission permission() { 684 JavaPermission p = {"java.lang.management.ManagementPermission", 685 "monitor", NULL}; 686 return p; 687 } 688 static int num_arguments() { return 0; } 689 virtual void execute(DCmdSource source, TRAPS); 690 }; |