971 DCmdArgument<char*> _filepath;
972 public:
973 static int num_arguments() { return 3; }
974 ThreadDumpToFileDCmd(outputStream *output, bool heap);
975 static const char *name() {
976 return "Thread.dump_to_file";
977 }
978 static const char *description() {
979 return "Dump threads, with stack traces, to a file in plain text or JSON format.";
980 }
981 static const char* impact() {
982 return "Medium: Depends on the number of threads.";
983 }
984 static const JavaPermission permission() {
985 JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", nullptr};
986 return p;
987 }
988 virtual void execute(DCmdSource source, TRAPS);
989 };
990
991 class CompilationMemoryStatisticDCmd: public DCmdWithParser {
992 protected:
993 DCmdArgument<bool> _human_readable;
994 DCmdArgument<MemorySizeArgument> _minsize;
995 public:
996 static int num_arguments() { return 2; }
997 CompilationMemoryStatisticDCmd(outputStream* output, bool heap);
998 static const char* name() {
999 return "Compiler.memory";
1000 }
1001 static const char* description() {
1002 return "Print compilation footprint";
1003 }
1004 static const char* impact() {
1005 return "Medium: Pause time depends on number of compiled methods";
1006 }
1007 static const JavaPermission permission() {
1008 JavaPermission p = {"java.lang.management.ManagementPermission",
1009 "monitor", nullptr};
1010 return p;
|
971 DCmdArgument<char*> _filepath;
972 public:
973 static int num_arguments() { return 3; }
974 ThreadDumpToFileDCmd(outputStream *output, bool heap);
975 static const char *name() {
976 return "Thread.dump_to_file";
977 }
978 static const char *description() {
979 return "Dump threads, with stack traces, to a file in plain text or JSON format.";
980 }
981 static const char* impact() {
982 return "Medium: Depends on the number of threads.";
983 }
984 static const JavaPermission permission() {
985 JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", nullptr};
986 return p;
987 }
988 virtual void execute(DCmdSource source, TRAPS);
989 };
990
991 class VThreadSchedulerDCmd : public DCmd {
992 public:
993 VThreadSchedulerDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
994 static const char* name() {
995 return "Thread.vthread_scheduler";
996 }
997 static const char* description() {
998 return "Print virtual thread scheduler info.";
999 }
1000 static const char* impact() { return "Low"; }
1001 virtual void execute(DCmdSource source, TRAPS);
1002 };
1003
1004 class CompilationMemoryStatisticDCmd: public DCmdWithParser {
1005 protected:
1006 DCmdArgument<bool> _human_readable;
1007 DCmdArgument<MemorySizeArgument> _minsize;
1008 public:
1009 static int num_arguments() { return 2; }
1010 CompilationMemoryStatisticDCmd(outputStream* output, bool heap);
1011 static const char* name() {
1012 return "Compiler.memory";
1013 }
1014 static const char* description() {
1015 return "Print compilation footprint";
1016 }
1017 static const char* impact() {
1018 return "Medium: Pause time depends on number of compiled methods";
1019 }
1020 static const JavaPermission permission() {
1021 JavaPermission p = {"java.lang.management.ManagementPermission",
1022 "monitor", nullptr};
1023 return p;
|