# The Magma Profiler

- [Introduction](intro.md)

- [Profiler Basics](profiler-basics.md)

  - [`SetProfile(b): BoolElt`](profiler-basics.md#function-setprofile-boolelt)

  - [`GetProfile() → BoolElt`](profiler-basics.md#function-getprofile)

  - [`ProfileReset()`](profiler-basics.md#function-profilereset)

  - [`ProfileGraph() → GrphDir`](profiler-basics.md#function-profilegraph)

  - [`Example: Basic Profiling`](profiler-basics.md#example-ex-cfc120)

- [Exploring the Call Graph](call-graph.md)

  - [Internal Reports](call-graph.md#internal-reports)

    - [`ProfilePrintByTotalCount(G): GrphDir`](call-graph.md#function-profileprintbytotalcount-grphdir)

    - [`ProfilePrintByTotalTime(G): GrphDir`](call-graph.md#function-profileprintbytotaltime-grphdir)

    - [`ProfilePrintChildrenByCount(G, n): GrphDir, GrphVert`](call-graph.md#function-profileprintchildrenbycount-grphdir-grphvert)

    - [`ProfilePrintChildrenByCount(G, n): GrphDir, RngIntElt`](call-graph.md#function-profileprintchildrenbycount-grphdir-rngintelt)

    - [`ProfilePrintChildrenByTime(G, n): GrphDir, GrphVert`](call-graph.md#function-profileprintchildrenbytime-grphdir-grphvert)

    - [`ProfilePrintChildrenByTime(G, n): GrphDir, RngIntElt`](call-graph.md#function-profileprintchildrenbytime-grphdir-rngintelt)

    - [`Example: Profile Reports`](call-graph.md#example-ex-981ae1)

  - [HTML Reports](call-graph.md#html-reports)

    - [`ProfileHTMLOutput(G, prefix): GrphDir, MonStgElt`](call-graph.md#function-profilehtmloutput-grphdir-monstgelt)

- [Recursion and the Profiler](recursion-profiler.md)

  - [`Example: Profiler Recursion`](recursion-profiler.md#example-ex-89657b)
