937 DCmdArgument<char*> _filepath;
938 public:
939 static int num_arguments() { return 3; }
940 ThreadDumpToFileDCmd(outputStream *output, bool heap);
941 static const char *name() {
942 return "Thread.dump_to_file";
943 }
944 static const char *description() {
945 return "Dump threads, with stack traces, to a file in plain text or JSON format.";
946 }
947 static const char* impact() {
948 return "Medium: Depends on the number of threads.";
949 }
950 static const JavaPermission permission() {
951 JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", nullptr};
952 return p;
953 }
954 virtual void execute(DCmdSource source, TRAPS);
955 };
956
957 class CompilationMemoryStatisticDCmd: public DCmdWithParser {
958 protected:
959 DCmdArgument<bool> _human_readable;
960 DCmdArgument<MemorySizeArgument> _minsize;
961 public:
962 static int num_arguments() { return 2; }
963 CompilationMemoryStatisticDCmd(outputStream* output, bool heap);
964 static const char* name() {
965 return "Compiler.memory";
966 }
967 static const char* description() {
968 return "Print compilation footprint";
969 }
970 static const char* impact() {
971 return "Medium: Pause time depends on number of compiled methods";
972 }
973 static const JavaPermission permission() {
974 JavaPermission p = {"java.lang.management.ManagementPermission",
975 "monitor", nullptr};
976 return p;
|
937 DCmdArgument<char*> _filepath;
938 public:
939 static int num_arguments() { return 3; }
940 ThreadDumpToFileDCmd(outputStream *output, bool heap);
941 static const char *name() {
942 return "Thread.dump_to_file";
943 }
944 static const char *description() {
945 return "Dump threads, with stack traces, to a file in plain text or JSON format.";
946 }
947 static const char* impact() {
948 return "Medium: Depends on the number of threads.";
949 }
950 static const JavaPermission permission() {
951 JavaPermission p = {"java.lang.management.ManagementPermission", "monitor", nullptr};
952 return p;
953 }
954 virtual void execute(DCmdSource source, TRAPS);
955 };
956
957 class VThreadSchedulerDCmd : public DCmd {
958 public:
959 VThreadSchedulerDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
960 static const char* name() {
961 return "Thread.vthread_scheduler";
962 }
963 static const char* description() {
964 return "Print virtual thread scheduler info.";
965 }
966 static const char* impact() { return "Low"; }
967 virtual void execute(DCmdSource source, TRAPS);
968 };
969
970 class CompilationMemoryStatisticDCmd: public DCmdWithParser {
971 protected:
972 DCmdArgument<bool> _human_readable;
973 DCmdArgument<MemorySizeArgument> _minsize;
974 public:
975 static int num_arguments() { return 2; }
976 CompilationMemoryStatisticDCmd(outputStream* output, bool heap);
977 static const char* name() {
978 return "Compiler.memory";
979 }
980 static const char* description() {
981 return "Print compilation footprint";
982 }
983 static const char* impact() {
984 return "Medium: Pause time depends on number of compiled methods";
985 }
986 static const JavaPermission permission() {
987 JavaPermission p = {"java.lang.management.ManagementPermission",
988 "monitor", nullptr};
989 return p;
|