# 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. Page-1 Sheet.2 Sheet.1 Simulator Simulator Sheet.3 Profiler Profiler Sheet.7 Profile data file Profile data file Sheet.19 Dynamic connector Sheet.23 Sheet.24 Browser Browser Sheet.25 Sheet.28 Profile report file Profile report file Dynamic connector.29 Sheet.30 ## 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)