MCPcopy Create free account
hub / github.com/async-profiler/async-profiler / dump

Method dump

src/profiler.cpp:1124–1165  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1122}
1123
1124Error Profiler::dump(Writer& out, Arguments& args) {
1125 MutexLocker ml(_state_lock);
1126 if (_state == TERMINATED && _global_args._file != NULL && args._file != NULL && strcmp(_global_args._file, args._file) == 0) {
1127 return Error::OK;
1128 } else if (_state != IDLE && _state != RUNNING) {
1129 return Error("Profiler has not started");
1130 }
1131
1132 if (_state == RUNNING) {
1133 updateJavaThreadNames();
1134 updateNativeThreadNames();
1135 }
1136
1137 switch (args._output) {
1138 case OUTPUT_COLLAPSED:
1139 dumpCollapsed(out, args);
1140 break;
1141 case OUTPUT_FLAMEGRAPH:
1142 dumpFlameGraph(out, args, false);
1143 break;
1144 case OUTPUT_TREE:
1145 dumpFlameGraph(out, args, true);
1146 break;
1147 case OUTPUT_TEXT:
1148 dumpText(out, args);
1149 break;
1150 case OUTPUT_JFR:
1151 if (_state == RUNNING) {
1152 lockAll();
1153 _jfr.flush();
1154 unlockAll();
1155 }
1156 break;
1157 case OUTPUT_OTLP:
1158 dumpOtlp(out, args);
1159 break;
1160 default:
1161 return Error("No output format selected");
1162 }
1163
1164 return Error::OK;
1165}
1166
1167void Profiler::writeMetrics(Writer& out) {
1168 constexpr size_t KB = 1024;

Callers 1

dumpFlameGraphMethod · 0.45

Calls 2

ErrorClass · 0.85
flushMethod · 0.45

Tested by

no test coverage detected