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 >--- 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 >--- 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 };
|