|
| 1 | +<!-- |
| 2 | +* Copyright (c) 2017, 2024 IBM Corp. and others |
| 3 | +* |
| 4 | +* This program and the accompanying materials are made |
| 5 | +* available under the terms of the Eclipse Public License 2.0 |
| 6 | +* which accompanies this distribution and is available at |
| 7 | +* https://www.eclipse.org/legal/epl-2.0/ or the Apache |
| 8 | +* License, Version 2.0 which accompanies this distribution and |
| 9 | +* is available at https://www.apache.org/licenses/LICENSE-2.0. |
| 10 | +* |
| 11 | +* This Source Code may also be made available under the |
| 12 | +* following Secondary Licenses when the conditions for such |
| 13 | +* availability set forth in the Eclipse Public License, v. 2.0 |
| 14 | +* are satisfied: GNU General Public License, version 2 with |
| 15 | +* the GNU Classpath Exception [1] and GNU General Public |
| 16 | +* License, version 2 with the OpenJDK Assembly Exception [2]. |
| 17 | +* |
| 18 | +* [1] https://www.gnu.org/software/classpath/license.html |
| 19 | +* [2] https://openjdk.org/legal/assembly-exception.html |
| 20 | +* |
| 21 | +* SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0 OR GPL-2.0-only WITH OpenJDK-assembly-exception-1.0 |
| 22 | +--> |
| 23 | + |
| 24 | +# -XX:[+|-]FlightRecorder |
| 25 | + |
| 26 | +**Linux® on x86, Linux on AArch64** |
| 27 | + |
| 28 | + This option enables or disables the Java Flight Recorder (JFR) tool in the VM. This built-in profiling and troubleshooting tool in the VM collects profiling and diagnostic information. |
| 29 | + |
| 30 | +:fontawesome-solid-pencil:{: .note aria-hidden="true"} **Note:** Support for the JFR tool is currently provided as a technical preview. All JFR-related `jcmd` options might change in future releases. |
| 31 | + |
| 32 | +## Syntax |
| 33 | + |
| 34 | + -XX:[+|-]FlightRecorder |
| 35 | + |
| 36 | +| Setting | Effect | Default | |
| 37 | +|------------------------------------|---------|:----------------------------------------------------------------------------------:| |
| 38 | +| `-XX:+FlightRecorder` | Enable | :fontawesome-solid-check:{: .yes aria-hidden="true"}<span class="sr-only">yes</span> | |
| 39 | +| `-XX:-FlightRecorder` | Disable | | |
| 40 | + |
| 41 | +## Explanation |
| 42 | + |
| 43 | +If the JFR tool is enabled in the VM with the `-XX:+FlightRecorder` option, then you can trigger profile and diagnostic recording with the [`jcmd`](https://eclipse.dev/openj9/docs/tool_jcmd/) tool. Recording does not start automatically, it must be triggered. |
| 44 | + |
| 45 | +To start a recording, specify the following command: |
| 46 | + |
| 47 | +``` |
| 48 | +jcmd <vmid | display name | 0> JFR.start [filename=<file_name_with_path>] [duration=<time_with_unit_of_time>] |
| 49 | +
|
| 50 | +``` |
| 51 | +where: |
| 52 | + |
| 53 | +- Optional parameters are shown in brackets, [ ]. |
| 54 | + |
| 55 | +- `filename=<file_name_with_path>` specifies the name of the file and its location where the recording is saved. The file name should have a `.jfr` extension. If a file name is not specified, the recording is saved in the `defaultJ9recording.jfr` file in the process working directory by default. |
| 56 | + |
| 57 | +- `duration=<time_with_unit_of_time>` specifies the duration of the recording. Units of time are `s` (seconds), `m` (minutes), `h` (hours), and `d` (days). You can specify only one unit of time, for example, 54s, 12m, 1h, or 2d. If the duration is not specified, the tool continues to record until the recording is manually stopped or the VM is shut down. |
| 58 | + |
| 59 | +Example: |
| 60 | + |
| 61 | +``` |
| 62 | +jcmd 1234 JFR.start filename=/path/ABCD.jfr duration=4s |
| 63 | +
|
| 64 | +``` |
| 65 | + |
| 66 | + |
| 67 | + |
| 68 | +## See Also |
| 69 | + |
| 70 | +- [What's new in version 0.49.0](version0.49.md#new-xx-flightrecorder-option-added) |
| 71 | + |
| 72 | + |
| 73 | +<!-- ==== END OF TOPIC ==== xxflightrecorder.md ==== --> |
0 commit comments