---
name: "mlprof"
section: "1"
platform: "linux"
package: "mlton"
version: "20241230-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/mlprof"
---

# mlprof(1)

display profiling information for a MLton-compiled executable

## NAME

**mlprof** - display profiling information for a MLton-compiled executable

## SYNOPSIS

**mlprof** *\[option ...\] a.out \[mlmon.out ...\]*

## DESCRIPTION

**mlprof** extracts information from an executable compiled by **MLton** with **-profile alloc** or **-profile time** and the resulting **mlmon.out** file produced by running the executable.

The output of **mlprof** consists of an initial line indicating the total amount of CPU time or bytes allocated.  After this, source functions are listed along with the percentage of this total that they used, in decreasing order.  If the program was compiled with **-profile-stack true**, **mlprof** will display the time spent or bytes allocated while the function was on the stack and in GC in addition to the time or bytes that the function is directly responsible for.

With multiple **mlmon.out** files, **mlprof** will sum the profiling information.

## OPTIONS

- **-call-graph** *file*

  **Write a call graph containing the table data to a dot file.  See the** **MLton User Guide for details.**

- **-graph-title** *string*

  **Set the call-graph title.**

- **-gray** *{***false***\|***true***}*

  **Gray call-graph nodes according to stack %.  This only makes sense if** **the executable was compiled -profile-stack true.**

- **-keep** *exp*

  **Only show functions specified by** *exp***.  For details on the** **allowed expressions, see the MLton User Guide.  Multiple** **-keep expressions are not allowed.**

- **-mlmon** *file*

  **Process the list of whitespace-separated mlmon.out files found** **in the specified file.**

- **-raw** *{***false***\|***true***}*

  **Show the raw counts in addition to the percentages.**

- **-show-line** *{***false***\|***true***}*

  **Show the file and line for each function.**

- **-split** *regexp*

  **Treat duplicates of functions whose name matches** *regexp* **as** **different functions.**

- **-thresh** *x*

  **An abbreviation for -keep '(thresh x)', which only prints** **information about functions whose percentage is greater than or equal** **to x, where 0 \<= x \<= 100.0.**

- **-tolerant** *{***false***\|***true***}*

  **Print a warning about broken mlmon.out files, but do not exit.**

## SEE ALSO

[**mlton**(1)](/mlton/1.md) **and the MLton Guide.**
