# Use the profiler
The Hexagon profiler can profile all Hexagon processor applications: standalone, RTOS-based, single-threaded, or multi-threaded. The profiler performs *post-mortem* processing of the target application; that is, it is used after the target application has completed executing.
Before an application can be profiled, the profile data file must first be created for it. As shown in the following figure, the Hexagon profiler obtains its profiling information from a profile data file that the Hexagon simulator generates when simulating the target application. When you input this data file into the profiler, the profiler translates it into an HTML file that you can then view in a web browser.
## Create the profile data file
When you run an application in the simulator, the simulator generates the profile data file while it executes the target application.
Simulate the application on the command line with the `--packet_analyze` option. This option instructs the simulator to generate a packet statistics file in JSON format*,* which is used as the profile data file.
For more information on packet statistics files, see the *Qualcomm Hexagon Simulator User Guide*.
## Run the Hexagon profiler
After the simulation is finished, input the generated profile data file into the Hexagon profiler. The profiler will then generate the profile information report in HTML format.
Note
The Hexagon profiler operates as a command-line utility.
### Command
From the command line, enter the following:
hexagon-profiler [options...]
Copy to clipboard
### Options
--dockMenu
--elf=[:reloc][,[:reloc],...]
--help
--hideJumpToFuncs
--highlightJumps
--json=
--noChromeMagnifyFix
--noUnderlineJumps
-o
--packet_analyze
--show_0x
--showLeadingZeros
--showPacketBraces
--showSelectedType
--tools_dir=
-v
Copy to clipboard
**Option details**
--dockMenu
Copy to clipboard
Start with the menu already open.
--elf=[:reloc][,[:reloc],...]
Copy to clipboard
Input one or more Hexagon ELF/OBJ/LIB files for disassembly, with optional relocation offsets to match their memory locations when the Hexagon code was run by `hexagon-sim`.
The Hexagon application binary file (such as *app.elf*) that was profiled.
This file must be the same file that was executed on the simulator to create the profile data file. The file is in ELF format.
--help
Copy to clipboard
Display the command usage information and exit.
--hideJumpToFuncs
Copy to clipboard
Hide the function names of jump and call targets.
--highlightJumps
Copy to clipboard
Highlight address links in the disassembly.
--json=
Copy to clipboard
Input the packet statistics JSON `` that was generated when the Hexagon simulator ran the ELF file: `hexagon-sim --timing --packet_analyze `.
--noChromeMagnifyFix
Copy to clipboard
Use Chrome 54+ as-is, with its new magnification.
--noUnderlineJumps
Copy to clipboard
Hide address link underlines in the disassembly.
-o
Copy to clipboard
Place the output into <file>.
The profiler creates this file in HTML format, with the conventional extension, *.html*.
--packet_analyze
Copy to clipboard
Produce an HTML file that shows packet analysis.
--show_0x
Copy to clipboard
Show the hex indicator, 0x, in the address columns.
--showLeadingZeros
Copy to clipboard
Show the leading zeros in the address columns.
--showPacketBraces
Copy to clipboard
Show braces around each packet in the disassembly.
--showSelectedType
Copy to clipboard
Show only the type of stall or event selected.
--tools_dir=
Copy to clipboard
Find `hexagon-llvm-objdump` and other tools in ``.
-v
Copy to clipboard
Enable Verbose mode.
### Example
hexagon-profiler --packet_analyze --elf=app.elf --json=app.json -o app.html
Copy to clipboard
In this example, the hexagon-profiler reads both the *app.elf* executable binary file and the *app.json* data file created by the simulator, and then it generates the *app.html* file.
## View the profile report file
When viewed in a web browser, the HTML report file presents an interactive document (user interface) that allows you to select and display the following profile information:
- Total number of cycles executed
- Total number of stall cycles
- Highest cycle or stall counts (by function or instruction packet)
- Commit and stall statistics (by function or instruction packet)
- PMU event counts (by event type or instruction packet)
- Annotated disassembly of instruction packets
- Assembly instruction counts
Additional information, such as derived statistics and HVX commit and stall statistics, might be available depending on the processor version and features. For more details, see [Hexagon profiler user interface](https://docs.qualcomm.com/doc/80-N3040-23/topic/hexagon-profiler-user-interface.html).
Last Published: Oct 06, 2026
[Previous Topic
Technical assistance](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/profiler-ug-introduction.md) [Next Topic
Hexagon profiler user interface](https://docs.qualcomm.com/bundle/publicresource/80-N3040-23/topics/hexagon-profiler-user-interface.md)