1 <?xml version="1.0" encoding="UTF-8"?>
4 Recommended way to edit .jfc files is to use Java Mission Control,
5 see Window -> Flight Recorder Template Manager.
8 <configuration version="1.0" name="Profiling" description="Low overhead configuration for profiling, typically around 2 % overhead." provider="Oracle">
10 <producer uri="http://www.oracle.com/hotspot/jvm/" label="Oracle JDK">
15 Contents of the control element is not read by the JVM, it's used
16 by Java Mission Control to change settings that carry the control attribute.
19 <selection name="gc-level" default="detailed" label="Garbage Collector">
20 <option label="Off" name="off">off</option>
21 <option label="Normal" name="detailed">normal</option>
22 <option label="All" name="all">all</option>
25 <condition name="gc-enabled-normal" true="true" false="false">
27 <test name="gc-level" operator="equal" value="normal"/>
28 <test name="gc-level" operator="equal" value="all"/>
32 <condition name="gc-enabled-all" true="true" false="false">
33 <test name="gc-level" operator="equal" value="all"/>
36 <selection name="compiler-level" default="detailed" label="Compiler">
37 <option label="Off" name="off">off</option>
38 <option label="Normal" name="normal">normal</option>
39 <option label="Detailed" name="detailed">detailed</option>
40 <option label="All" name="all">all</option>
43 <condition name="compiler-enabled" true="false" false="true">
44 <test name="compiler-level" operator="equal" value="off"/>
47 <condition name="compiler-enabled-failure" true="true" false="false">
49 <test name="compiler-level" operator="equal" value="detailed"/>
50 <test name="compiler-level" operator="equal" value="all"/>
54 <condition name="compiler-sweeper-threshold" true="0 ms" false="100 ms">
55 <test name="compiler-level" operator="equal" value="all"/>
58 <condition name="compiler-compilation-threshold" true="1000 ms">
59 <test name="compiler-level" operator="equal" value="normal"/>
62 <condition name="compiler-compilation-threshold" true="100 ms">
63 <test name="compiler-level" operator="equal" value="detailed"/>
66 <condition name="compiler-compilation-threshold" true="0 ms">
67 <test name="compiler-level" operator="equal" value="all"/>
70 <condition name="compiler-phase-threshold" true="60 s">
71 <test name="compiler-level" operator="equal" value="normal"/>
74 <condition name="compiler-phase-threshold" true="10 s">
75 <test name="compiler-level" operator="equal" value="detailed"/>
78 <condition name="compiler-phase-threshold" true="0 s">
79 <test name="compiler-level" operator="equal" value="all"/>
82 <selection name="method-sampling-interval" default="maximum" label="Method Sampling">
83 <option label="Off" name="off">999 d</option>
84 <option label="Normal" name="normal">20 ms</option>
85 <option label="Maximum" name="maximum">10 ms</option>
88 <condition name="method-sampling-enabled" true="false" false="true">
89 <test name="method-sampling-interval" operator="equal" value="999 d"/>
92 <selection name="thread-dump-interval" default="everyMinute" label="Thread Dump">
93 <option label="Off" name="off">999 d</option>
94 <option label="At least Once" name="normal">everyChunk</option>
95 <option label="Every 60 s" name="everyMinute">60 s</option>
96 <option label="Every 10 s" name="everyTenSecond">10 s</option>
97 <option label="Every 1 s" name="everySecond">1 s</option>
100 <condition name="thread-dump-enabled" true="false" false="true">
101 <test name="thread-dump-interval" operator="equal" value="999 d"/>
104 <selection name="exception-level" default="errors" label="Exceptions">
105 <option label="Off" name="off">off</option>
106 <option label="Errors Only" name="errors">errors</option>
107 <option label="All Exceptions, including Errors" name="all">all</option>
110 <condition name="enable-errors" true="true" false="false">
112 <test name="exception-level" operator="equal" value="errors"/>
113 <test name="exception-level" operator="equal" value="all"/>
117 <condition name="enable-exceptions" true="true" false="false">
118 <test name="exception-level" operator="equal" value="all"/>
121 <text name="synchronization-threshold" label="Synchronization Threshold" contentType="timespan" minimum="0 s">10 ms</text>
123 <text name="file-io-threshold" label="File I/O Threshold" contentType="timespan" minimum="0 s">10 ms</text>
125 <text name="socket-io-threshold" label="Socket I/O Threshold" contentType="timespan" minimum="0 s">10 ms</text>
127 <flag name="heap-statistics-enabled" label="Heap Statistics">false</flag>
129 <flag name="class-loading-enabled" label="Class Loading">false</flag>
131 <flag name="allocation-profiling-enabled" label="Allocation Profiling">true</flag>
135 <event path="java/statistics/thread_allocation">
136 <setting name="enabled">true</setting>
137 <setting name="period">everyChunk</setting>
140 <event path="java/statistics/class_loading">
141 <setting name="enabled">true</setting>
142 <setting name="period">1000 ms</setting>
145 <event path="java/statistics/threads">
146 <setting name="enabled">true</setting>
147 <setting name="period">1000 ms</setting>
150 <event path="java/thread_start">
151 <setting name="enabled">true</setting>
154 <event path="java/thread_end">
155 <setting name="enabled">true</setting>
158 <event path="java/thread_sleep">
159 <setting name="enabled">true</setting>
160 <setting name="stackTrace">true</setting>
161 <setting name="threshold" control="synchronization-threshold">10 ms</setting>
164 <event path="java/thread_park">
165 <setting name="enabled">true</setting>
166 <setting name="stackTrace">true</setting>
167 <setting name="threshold" control="synchronization-threshold">10 ms</setting>
170 <event path="java/monitor_enter">
171 <setting name="enabled">true</setting>
172 <setting name="stackTrace">true</setting>
173 <setting name="threshold" control="synchronization-threshold">10 ms</setting>
176 <event path="java/monitor_wait">
177 <setting name="enabled">true</setting>
178 <setting name="stackTrace">true</setting>
179 <setting name="threshold" control="synchronization-threshold">10 ms</setting>
182 <event path="vm/class/load">
183 <setting name="enabled" control="class-loading-enabled">false</setting>
184 <setting name="stackTrace">true</setting>
185 <setting name="threshold">0 ms</setting>
188 <event path="vm/class/unload">
189 <setting name="enabled" control="class-loading-enabled">false</setting>
192 <event path="vm/info">
193 <setting name="enabled">true</setting>
194 <setting name="period">everyChunk</setting>
197 <event path="vm/initial_system_property">
198 <setting name="enabled">true</setting>
199 <setting name="period">everyChunk</setting>
202 <event path="vm/prof/execution_sample">
203 <setting name="enabled" control="method-sampling-enabled">true</setting>
204 <setting name="period" control="method-sampling-interval">10 ms</setting>
207 <event path="vm/prof/execution_sampling_info">
208 <setting name="enabled">false</setting>
209 <setting name="threshold">1 ms</setting>
212 <event path="vm/runtime/execute_vm_operation">
213 <setting name="enabled">true</setting>
214 <setting name="threshold">10 ms</setting>
217 <event path="vm/runtime/thread_dump">
218 <setting name="enabled" control="thread-dump-enabled">true</setting>
219 <setting name="period" control="thread-dump-interval">60 s</setting>
222 <event path="vm/flag/long">
223 <setting name="enabled">true</setting>
224 <setting name="period">everyChunk</setting>
227 <event path="vm/flag/ulong">
228 <setting name="enabled">true</setting>
229 <setting name="period">everyChunk</setting>
232 <event path="vm/flag/double">
233 <setting name="enabled">true</setting>
234 <setting name="period">everyChunk</setting>
237 <event path="vm/flag/boolean">
238 <setting name="enabled">true</setting>
239 <setting name="period">everyChunk</setting>
242 <event path="vm/flag/string">
243 <setting name="enabled">true</setting>
244 <setting name="period">everyChunk</setting>
247 <event path="vm/flag/long_changed">
248 <setting name="enabled">true</setting>
251 <event path="vm/flag/ulong_changed">
252 <setting name="enabled">true</setting>
255 <event path="vm/flag/double_changed">
256 <setting name="enabled">true</setting>
259 <event path="vm/flag/boolean_changed">
260 <setting name="enabled">true</setting>
263 <event path="vm/flag/string_changed">
264 <setting name="enabled">true</setting>
267 <event path="vm/gc/detailed/object_count">
268 <setting name="enabled" control="heap-statistics-enabled">false</setting>
269 <setting name="period">everyChunk</setting>
272 <event path="vm/gc/configuration/gc">
273 <setting name="enabled" control="gc-enabled-normal">true</setting>
274 <setting name="period">everyChunk</setting>
277 <event path="vm/gc/configuration/heap">
278 <setting name="enabled" control="gc-enabled-normal">true</setting>
279 <setting name="period">everyChunk</setting>
282 <event path="vm/gc/configuration/young_generation">
283 <setting name="enabled" control="gc-enabled-normal">true</setting>
284 <setting name="period">everyChunk</setting>
287 <event path="vm/gc/configuration/tlab">
288 <setting name="enabled" control="gc-enabled-normal">true</setting>
289 <setting name="period">everyChunk</setting>
292 <event path="vm/gc/configuration/survivor">
293 <setting name="enabled" control="gc-enabled-normal">true</setting>
294 <setting name="period">everyChunk</setting>
297 <event path="vm/gc/detailed/object_count_after_gc">
298 <setting name="enabled">false</setting>
301 <event path="vm/gc/heap/summary">
302 <setting name="enabled" control="gc-enabled-normal">true</setting>
305 <event path="vm/gc/heap/ps_summary">
306 <setting name="enabled" control="gc-enabled-normal">true</setting>
309 <event path="vm/gc/heap/metaspace_summary">
310 <setting name="enabled" control="gc-enabled-normal">true</setting>
313 <event path="vm/gc/metaspace/gc_threshold">
314 <setting name="enabled" control="gc-enabled-normal">true</setting>
317 <event path="vm/gc/metaspace/allocation_failure">
318 <setting name="enabled" control="gc-enabled-normal">true</setting>
319 <setting name="stackTrace">true</setting>
322 <event path="vm/gc/metaspace/out_of_memory">
323 <setting name="enabled" control="gc-enabled-normal">true</setting>
324 <setting name="stackTrace">true</setting>
327 <event path="vm/gc/metaspace/chunk_free_list_summary">
328 <setting name="enabled" control="gc-enabled-normal">true</setting>
331 <event path="vm/gc/collector/garbage_collection">
332 <setting name="enabled" control="gc-enabled-normal">true</setting>
333 <setting name="threshold">0 ms</setting>
336 <event path="vm/gc/collector/parold_garbage_collection">
337 <setting name="enabled" control="gc-enabled-normal">true</setting>
338 <setting name="threshold">0 ms</setting>
341 <event path="vm/gc/collector/young_garbage_collection">
342 <setting name="enabled" control="gc-enabled-normal">true</setting>
343 <setting name="threshold">0 ms</setting>
346 <event path="vm/gc/collector/old_garbage_collection">
347 <setting name="enabled" control="gc-enabled-normal">true</setting>
348 <setting name="threshold">0 ms</setting>
351 <event path="vm/gc/collector/g1_garbage_collection">
352 <setting name="enabled" control="gc-enabled-normal">true</setting>
353 <setting name="threshold">0 ms</setting>
356 <event path="vm/gc/phases/pause">
357 <setting name="enabled" control="gc-enabled-normal">true</setting>
358 <setting name="threshold">0 ms</setting>
361 <event path="vm/gc/phases/pause_level_1">
362 <setting name="enabled" control="gc-enabled-normal">true</setting>
363 <setting name="threshold">0 ms</setting>
366 <event path="vm/gc/phases/pause_level_2">
367 <setting name="enabled" control="gc-enabled-normal">true</setting>
368 <setting name="threshold">0 ms</setting>
371 <event path="vm/gc/phases/pause_level_3">
372 <setting name="enabled" control="gc-enabled-all">false</setting>
373 <setting name="threshold">0 ms</setting>
376 <event path="vm/gc/reference/statistics">
377 <setting name="enabled" control="gc-enabled-normal">true</setting>
380 <event path="vm/gc/detailed/promotion_failed">
381 <setting name="enabled" control="gc-enabled-normal">true</setting>
384 <event path="vm/gc/detailed/evacuation_failed">
385 <setting name="enabled" control="gc-enabled-normal">true</setting>
388 <event path="vm/gc/detailed/evacuation_info">
389 <setting name="enabled" control="gc-enabled-normal">true</setting>
392 <event path="vm/gc/detailed/concurrent_mode_failure">
393 <setting name="enabled" control="gc-enabled-normal">true</setting>
396 <event path="vm/gc/detailed/allocation_requiring_gc">
397 <setting name="enabled" control="gc-enabled-all">false</setting>
398 <setting name="stackTrace">true</setting>
401 <event path="vm/compiler/config">
402 <setting name="enabled" control="compiler-enabled">true</setting>
403 <setting name="period">everyChunk</setting>
406 <event path="vm/compiler/stats">
407 <setting name="enabled" control="compiler-enabled">true</setting>
408 <setting name="period">1000 ms</setting>
411 <event path="vm/compiler/compilation">
412 <setting name="enabled" control="compiler-enabled">true</setting>
413 <setting name="threshold" control="compiler-compilation-threshold">100 ms</setting>
416 <event path="vm/compiler/phase">
417 <setting name="enabled" control="compiler-enabled">true</setting>
418 <setting name="threshold" control="compiler-phase-threshold">10 s</setting>
421 <event path="vm/compiler/failure">
422 <setting name="enabled" control="compiler-enabled-failure">true</setting>
425 <event path="vm/code_sweeper/config">
426 <setting name="enabled" control="compiler-enabled">true</setting>
427 <setting name="period">everyChunk</setting>
430 <event path="vm/code_sweeper/stats">
431 <setting name="enabled" control="compiler-enabled">true</setting>
432 <setting name="period">everyChunk</setting>
435 <event path="vm/code_sweeper/sweep">
436 <setting name="enabled" control="compiler-enabled">true</setting>
437 <setting name="threshold" control="compiler-sweeper-threshold">100 ms</setting>
440 <event path="vm/code_cache/config">
441 <setting name="enabled" control="compiler-enabled">true</setting>
442 <setting name="period">everyChunk</setting>
445 <event path="vm/code_cache/stats">
446 <setting name="enabled" control="compiler-enabled">true</setting>
447 <setting name="period">everyChunk</setting>
450 <event path="vm/code_cache/full">
451 <setting name="enabled" control="compiler-enabled">true</setting>
454 <event path="os/information">
455 <setting name="enabled">true</setting>
456 <setting name="period">everyChunk</setting>
459 <event path="os/processor/cpu_information">
460 <setting name="enabled">true</setting>
461 <setting name="period">everyChunk</setting>
464 <event path="os/processor/context_switch_rate">
465 <setting name="enabled" control="compiler-enabled">true</setting>
466 <setting name="period">10 s</setting>
469 <event path="os/processor/cpu_load">
470 <setting name="enabled">true</setting>
471 <setting name="period">1000 ms</setting>
474 <event path="os/processor/cpu_tsc">
475 <setting name="enabled">true</setting>
476 <setting name="period">everyChunk</setting>
479 <event path="os/system_process">
480 <setting name="enabled">true</setting>
481 <setting name="period">everyChunk</setting>
484 <event path="os/initial_environment_variable">
485 <setting name="enabled">true</setting>
486 <setting name="period">everyChunk</setting>
489 <event path="os/memory/physical_memory">
490 <setting name="enabled">true</setting>
491 <setting name="period">everyChunk</setting>
494 <event path="java/object_alloc_in_new_TLAB">
495 <setting name="enabled" control="allocation-profiling-enabled">true</setting>
496 <setting name="stackTrace">true</setting>
499 <event path="java/object_alloc_outside_TLAB">
500 <setting name="enabled" control="allocation-profiling-enabled">true</setting>
501 <setting name="stackTrace">true</setting>
506 <producer uri="http://www.oracle.com/hotspot/jdk/" label="Oracle JDK">
508 <event path="java/file_read">
509 <setting name="enabled">true</setting>
510 <setting name="stackTrace">true</setting>
511 <setting name="threshold" control="http://www.oracle.com/hotspot/jvm/file-io-threshold">10 ms</setting>
514 <event path="java/file_write">
515 <setting name="enabled">true</setting>
516 <setting name="stackTrace">true</setting>
517 <setting name="threshold" control="http://www.oracle.com/hotspot/jvm/file-io-threshold">10 ms</setting>
520 <event path="java/socket_read">
521 <setting name="enabled">true</setting>
522 <setting name="stackTrace">true</setting>
523 <setting name="threshold" control="http://www.oracle.com/hotspot/jvm/socket-io-threshold">10 ms</setting>
526 <event path="java/socket_write">
527 <setting name="enabled">true</setting>
528 <setting name="stackTrace">true</setting>
529 <setting name="threshold" control="http://www.oracle.com/hotspot/jvm/socket-io-threshold">10 ms</setting>
532 <event path="java/exception_throw">
533 <setting name="enabled" control="http://www.oracle.com/hotspot/jvm/enable-exceptions">false</setting>
534 <setting name="stackTrace">true</setting>
537 <event path="java/error_throw">
538 <setting name="enabled" control="http://www.oracle.com/hotspot/jvm/enable-errors">true</setting>
539 <setting name="stackTrace">true</setting>
542 <event path="java/statistics/throwables">
543 <setting name="enabled">true</setting>
544 <setting name="period">1000 ms</setting>
549 <producer uri="http://www.oracle.com/hotspot/jfr-info/" label="Oracle JDK">
551 <event path="recordings/recording">
552 <setting name="enabled">true</setting>
555 <event path="recordings/recording_setting">
556 <setting name="enabled">true</setting>