Files
TheRock/rocm-systems/projects/rocprofiler-systems/external/timemory/examples/ex-c
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00
..

ex-c

This example demonstrates the use of timemory timing components (timers), resident set size (rss) and context switches for instrumentation of C code. The instrumentation marker containing the following components is used for instrumentation.

TIMEMORY_MARKER(func, WALL_CLOCK, SYS_CLOCK, USER_CLOCK, CPU_CLOCK,
                      CPU_UTIL, PAGE_RSS, PEAK_RSS, PRIORITY_CONTEXT_SWITCH,
                      VOLUNTARY_CONTEXT_SWITCH, CALIPER);

Build

See examples. This examples requires an additional -DTIMEMORY_BUILD_C=ON flag to be built.

Expected Output

$ ./ex_c_timing
'/Users/jrmadsen/devel/c++/timemory-develop/examples/ex-c/ex_c_timing.c' : main @ 105. Running fibonacci(43, 28)...
main (untimed): fibonacci(43, 43) = 433494437
main (timed): fibonacci(43, 28) = 433494437
# laps = 9576

'/Users/jrmadsen/devel/c++/timemory-develop/examples/ex-c/ex_c_timing.c' : main @ 134 --> n = 433494437, 433494437, 433494437
[cpu_util]|0> Outputting 'timemory-ex-c-timing-output/cpu_util.json'...
[cpu_util]|0> Outputting 'timemory-ex-c-timing-output/cpu_util.tree.json'...
[cpu_util]|0> Outputting 'timemory-ex-c-timing-output/cpu_util.txt'...

|-------------------------------------------------------------------------------------------------------------------------------------------------|
|                                              PERCENTAGE OF CPU-CLOCK TIME DIVIDED BY WALL-CLOCK TIME                                            |
|-------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT | DEPTH | METRIC   | UNITS | SUM   | MEAN  | MIN   | MAX   | STDDEV | % SELF |
|------------------------------------------------------------|-------|-------|----------|-------|-------|-------|-------|-------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |     1 |     0 | cpu_util | %     |  99.5 |  99.5 |  99.5 |  99.5 |    0.0 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |     1 |     0 | cpu_util | %     |  98.6 |  98.6 |  98.6 |  98.6 |    0.0 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |     1 |     0 | cpu_util | %     |  99.7 |  99.7 |  99.7 |  99.7 |    0.0 |    0.0 |
| >>> |_fibonacci[using_tuple=0]                             |     1 |     1 | cpu_util | %     |  99.7 |  99.7 |  99.7 |  99.7 |    0.0 |    0.0 |
| >>>   |_fibonacci[using_tuple=0]                           |     2 |     2 | cpu_util | %     |  99.7 |  49.9 |  99.6 |  99.9 |    0.2 |    0.0 |
| >>>     |_fibonacci[using_tuple=0]                         |     4 |     3 | cpu_util | %     |  99.7 |  24.9 |  98.6 | 100.8 |    0.9 |    0.0 |
| >>>       |_fibonacci[using_tuple=0]                       |     8 |     4 | cpu_util | %     |  99.7 |  12.5 |  97.4 | 103.1 |    1.9 |    0.0 |
| >>>         |_fibonacci[using_tuple=0]                     |    16 |     5 | cpu_util | %     |  99.7 |   6.2 |  91.4 | 110.2 |    5.2 |    0.0 |
| >>>           |_fibonacci[using_tuple=0]                   |    32 |     6 | cpu_util | %     |  99.7 |   3.1 |  76.8 | 140.7 |   14.2 |    0.0 |
| >>>             |_fibonacci[using_tuple=0]                 |    64 |     7 | cpu_util | %     |  99.8 |   1.6 |  62.2 | 186.0 |   24.5 |    0.0 |
| >>>               |_fibonacci[using_tuple=0]               |   128 |     8 | cpu_util | %     |  99.8 |   0.8 |   0.0 | 493.8 |   66.0 |    1.0 |
| >>>                 |_fibonacci[using_tuple=0]             |   247 |     9 | cpu_util | %     |  98.8 |   0.4 |   0.0 | 486.7 |  104.5 |    0.0 |
| >>>                   |_fibonacci[using_tuple=0]           |   382 |    10 | cpu_util | %     |  99.2 |   0.3 |   0.0 | 494.0 |  142.3 |    0.0 |
| >>>                     |_fibonacci[using_tuple=0]         |   386 |    11 | cpu_util | %     | 100.6 |   0.3 |   0.0 | 493.9 |  159.7 |    3.7 |
| >>>                       |_fibonacci[using_tuple=0]       |   232 |    12 | cpu_util | %     |  96.8 |   0.4 |   0.0 | 493.9 |  175.5 |   10.4 |
| >>>                         |_fibonacci[using_tuple=0]     |    79 |    13 | cpu_util | %     |  86.8 |   1.1 |   0.0 | 494.0 |  175.5 |    0.0 |
| >>>                           |_fibonacci[using_tuple=0]   |    14 |    14 | cpu_util | %     |  95.6 |   6.8 |   0.0 | 432.9 |  162.1 |    0.0 |
| >>>                             |_fibonacci[using_tuple=0] |     1 |    15 | cpu_util | %     | 449.2 | 449.2 | 449.2 | 449.2 |    0.0 |  100.0 |
|-------------------------------------------------------------------------------------------------------------------------------------------------|

[cpu]|0> Outputting 'timemory-ex-c-timing-output/cpu.flamegraph.json'...
[cpu]|0> Outputting 'timemory-ex-c-timing-output/cpu.json'...
[cpu]|0> Outputting 'timemory-ex-c-timing-output/cpu.tree.json'...
[cpu]|0> Outputting 'timemory-ex-c-timing-output/cpu.txt'...

|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                                                  TOTAL CPU TIME SPENT IN BOTH USER- AND KERNEL-MODE                                                  |
|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT  | DEPTH  | METRIC | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|------------------------------------------------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |      1 |      0 | cpu    | sec    |  1.830 |  1.830 |  1.830 |  1.830 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |      1 |      0 | cpu    | sec    |  1.870 |  1.870 |  1.870 |  1.870 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |      1 |      0 | cpu    | sec    |  1.850 |  1.850 |  1.850 |  1.850 |  0.000 |    0.0 |
| >>> |_fibonacci[using_tuple=0]                             |      1 |      1 | cpu    | sec    |  1.850 |  1.850 |  1.850 |  1.850 |  0.000 |    0.0 |
| >>>   |_fibonacci[using_tuple=0]                           |      2 |      2 | cpu    | sec    |  1.850 |  0.925 |  0.700 |  1.150 |  0.318 |    0.0 |
| >>>     |_fibonacci[using_tuple=0]                         |      4 |      3 | cpu    | sec    |  1.850 |  0.463 |  0.270 |  0.720 |  0.188 |    0.0 |
| >>>       |_fibonacci[using_tuple=0]                       |      8 |      4 | cpu    | sec    |  1.850 |  0.231 |  0.100 |  0.450 |  0.108 |    0.0 |
| >>>         |_fibonacci[using_tuple=0]                     |     16 |      5 | cpu    | sec    |  1.850 |  0.116 |  0.040 |  0.290 |  0.061 |    0.0 |
| >>>           |_fibonacci[using_tuple=0]                   |     32 |      6 | cpu    | sec    |  1.850 |  0.058 |  0.020 |  0.180 |  0.034 |    0.0 |
| >>>             |_fibonacci[using_tuple=0]                 |     64 |      7 | cpu    | sec    |  1.850 |  0.029 |  0.010 |  0.110 |  0.019 |    0.0 |
| >>>               |_fibonacci[using_tuple=0]               |    128 |      8 | cpu    | sec    |  1.850 |  0.014 |  0.000 |  0.070 |  0.011 |    1.6 |
| >>>                 |_fibonacci[using_tuple=0]             |    247 |      9 | cpu    | sec    |  1.820 |  0.007 |  0.000 |  0.050 |  0.007 |    7.1 |
| >>>                   |_fibonacci[using_tuple=0]           |    382 |     10 | cpu    | sec    |  1.690 |  0.004 |  0.000 |  0.030 |  0.006 |   24.9 |
| >>>                     |_fibonacci[using_tuple=0]         |    386 |     11 | cpu    | sec    |  1.270 |  0.003 |  0.000 |  0.020 |  0.005 |   51.2 |
| >>>                       |_fibonacci[using_tuple=0]       |    232 |     12 | cpu    | sec    |  0.620 |  0.003 |  0.000 |  0.010 |  0.004 |   72.6 |
| >>>                         |_fibonacci[using_tuple=0]     |     79 |     13 | cpu    | sec    |  0.170 |  0.002 |  0.000 |  0.010 |  0.004 |   82.4 |
| >>>                           |_fibonacci[using_tuple=0]   |     14 |     14 | cpu    | sec    |  0.030 |  0.002 |  0.000 |  0.010 |  0.004 |   66.7 |
| >>>                             |_fibonacci[using_tuple=0] |      1 |     15 | cpu    | sec    |  0.010 |  0.010 |  0.010 |  0.010 |  0.000 |  100.0 |
|------------------------------------------------------------------------------------------------------------------------------------------------------|

[user]|0> Outputting 'timemory-ex-c-timing-output/user.flamegraph.json'...
[user]|0> Outputting 'timemory-ex-c-timing-output/user.json'...
[user]|0> Outputting 'timemory-ex-c-timing-output/user.tree.json'...
[user]|0> Outputting 'timemory-ex-c-timing-output/user.txt'...

|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                                                              CPU TIME SPENT IN USER-MODE                                                             |
|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT  | DEPTH  | METRIC | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|------------------------------------------------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |      1 |      0 | user   | sec    |  1.820 |  1.820 |  1.820 |  1.820 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |      1 |      0 | user   | sec    |  1.850 |  1.850 |  1.850 |  1.850 |  0.000 |    0.0 |
| >>> |_fibonacci[using_tuple=1]                             |      1 |      1 | user   | sec    |  1.850 |  1.850 |  1.850 |  1.850 |  0.000 |    0.0 |
| >>>   |_fibonacci[using_tuple=1]                           |      2 |      2 | user   | sec    |  1.850 |  0.925 |  0.690 |  1.160 |  0.332 |    0.0 |
| >>>     |_fibonacci[using_tuple=1]                         |      4 |      3 | user   | sec    |  1.850 |  0.463 |  0.260 |  0.710 |  0.186 |    0.0 |
| >>>       |_fibonacci[using_tuple=1]                       |      8 |      4 | user   | sec    |  1.850 |  0.231 |  0.090 |  0.430 |  0.103 |    0.0 |
| >>>         |_fibonacci[using_tuple=1]                     |     16 |      5 | user   | sec    |  1.850 |  0.116 |  0.030 |  0.270 |  0.059 |    0.5 |
| >>>           |_fibonacci[using_tuple=1]                   |     32 |      6 | user   | sec    |  1.840 |  0.058 |  0.010 |  0.160 |  0.033 |    0.0 |
| >>>             |_fibonacci[using_tuple=1]                 |     64 |      7 | user   | sec    |  1.840 |  0.029 |  0.000 |  0.100 |  0.019 |    0.0 |
| >>>               |_fibonacci[using_tuple=1]               |    128 |      8 | user   | sec    |  1.840 |  0.014 |  0.000 |  0.060 |  0.011 |    1.1 |
| >>>                 |_fibonacci[using_tuple=1]             |    247 |      9 | user   | sec    |  1.820 |  0.007 |  0.000 |  0.040 |  0.007 |    7.1 |
| >>>                   |_fibonacci[using_tuple=1]           |    382 |     10 | user   | sec    |  1.690 |  0.004 |  0.000 |  0.020 |  0.005 |   25.4 |
| >>>                     |_fibonacci[using_tuple=1]         |    386 |     11 | user   | sec    |  1.260 |  0.003 |  0.000 |  0.010 |  0.005 |   47.6 |
| >>>                       |_fibonacci[using_tuple=1]       |    232 |     12 | user   | sec    |  0.660 |  0.003 |  0.000 |  0.010 |  0.005 |   71.2 |
| >>>                         |_fibonacci[using_tuple=1]     |     79 |     13 | user   | sec    |  0.190 |  0.002 |  0.000 |  0.010 |  0.004 |   68.4 |
| >>>                           |_fibonacci[using_tuple=1]   |     14 |     14 | user   | sec    |  0.060 |  0.004 |  0.000 |  0.010 |  0.005 |  100.0 |
| >>>                             |_fibonacci[using_tuple=1] |      1 |     15 | user   | sec    |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |    0.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |      1 |      0 | user   | sec    |  1.840 |  1.840 |  1.840 |  1.840 |  0.000 |  100.0 |
|------------------------------------------------------------------------------------------------------------------------------------------------------|

[sys]|0> Outputting 'timemory-ex-c-timing-output/sys.flamegraph.json'...
[sys]|0> Outputting 'timemory-ex-c-timing-output/sys.json'...
[sys]|0> Outputting 'timemory-ex-c-timing-output/sys.tree.json'...
[sys]|0> Outputting 'timemory-ex-c-timing-output/sys.txt'...

|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                                                             CPU TIME SPENT IN KERNEL-MODE                                                            |
|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT  | DEPTH  | METRIC | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|------------------------------------------------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |      1 |      0 | sys    | sec    |  0.010 |  0.010 |  0.010 |  0.010 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |      1 |      0 | sys    | sec    |  0.020 |  0.020 |  0.020 |  0.020 |  0.000 |    0.0 |
| >>> |_fibonacci[using_tuple=1]                             |      1 |      1 | sys    | sec    |  0.020 |  0.020 |  0.020 |  0.020 |  0.000 |    0.0 |
| >>>   |_fibonacci[using_tuple=1]                           |      2 |      2 | sys    | sec    |  0.020 |  0.010 |  0.010 |  0.010 |  0.000 |    0.0 |
| >>>     |_fibonacci[using_tuple=1]                         |      4 |      3 | sys    | sec    |  0.020 |  0.005 |  0.000 |  0.010 |  0.006 |    0.0 |
| >>>       |_fibonacci[using_tuple=1]                       |      8 |      4 | sys    | sec    |  0.020 |  0.003 |  0.000 |  0.010 |  0.005 |    0.0 |
| >>>         |_fibonacci[using_tuple=1]                     |     16 |      5 | sys    | sec    |  0.020 |  0.001 |  0.000 |  0.010 |  0.003 |    0.0 |
| >>>           |_fibonacci[using_tuple=1]                   |     32 |      6 | sys    | sec    |  0.020 |  0.001 |  0.000 |  0.010 |  0.002 |    0.0 |
| >>>             |_fibonacci[using_tuple=1]                 |     64 |      7 | sys    | sec    |  0.020 |  0.000 |  0.000 |  0.010 |  0.002 |    0.0 |
| >>>               |_fibonacci[using_tuple=1]               |    128 |      8 | sys    | sec    |  0.020 |  0.000 |  0.000 |  0.010 |  0.001 |    0.0 |
| >>>                 |_fibonacci[using_tuple=1]             |    247 |      9 | sys    | sec    |  0.020 |  0.000 |  0.000 |  0.010 |  0.001 |    0.0 |
| >>>                   |_fibonacci[using_tuple=1]           |    382 |     10 | sys    | sec    |  0.020 |  0.000 |  0.000 |  0.010 |  0.001 |   50.0 |
| >>>                     |_fibonacci[using_tuple=1]         |    386 |     11 | sys    | sec    |  0.010 |  0.000 |  0.000 |  0.010 |  0.001 |    0.0 |
| >>>                       |_fibonacci[using_tuple=1]       |    232 |     12 | sys    | sec    |  0.010 |  0.000 |  0.000 |  0.010 |  0.001 |  100.0 |
| >>>                         |_fibonacci[using_tuple=1]     |     79 |     13 | sys    | sec    |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |    0.0 |
| >>>                           |_fibonacci[using_tuple=1]   |     14 |     14 | sys    | sec    |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |    0.0 |
| >>>                             |_fibonacci[using_tuple=1] |      1 |     15 | sys    | sec    |  0.000 |  0.000 |  0.000 |  0.000 |  0.000 |    0.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |      1 |      0 | sys    | sec    |  0.010 |  0.010 |  0.010 |  0.010 |  0.000 |  100.0 |
|------------------------------------------------------------------------------------------------------------------------------------------------------|

[wall]|0> Outputting 'timemory-ex-c-timing-output/wall.flamegraph.json'...
[wall]|0> Outputting 'timemory-ex-c-timing-output/wall.json'...
[wall]|0> Outputting 'timemory-ex-c-timing-output/wall.tree.json'...
[wall]|0> Outputting 'timemory-ex-c-timing-output/wall.txt'...

|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                                                       REAL-CLOCK TIMER (I.E. WALL-CLOCK TIMER)                                                       |
|------------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT  | DEPTH  | METRIC | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|------------------------------------------------------------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |      1 |      0 | wall   | sec    |  1.839 |  1.839 |  1.839 |  1.839 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |      1 |      0 | wall   | sec    |  1.896 |  1.896 |  1.896 |  1.896 |  0.000 |    0.0 |
| >>> |_fibonacci[using_tuple=1]                             |      1 |      1 | wall   | sec    |  1.896 |  1.896 |  1.896 |  1.896 |  0.000 |    0.0 |
| >>>   |_fibonacci[using_tuple=1]                           |      2 |      2 | wall   | sec    |  1.896 |  0.948 |  0.709 |  1.187 |  0.339 |    0.0 |
| >>>     |_fibonacci[using_tuple=1]                         |      4 |      3 | wall   | sec    |  1.896 |  0.474 |  0.265 |  0.737 |  0.195 |    0.0 |
| >>>       |_fibonacci[using_tuple=1]                       |      8 |      4 | wall   | sec    |  1.896 |  0.237 |  0.100 |  0.447 |  0.107 |    0.0 |
| >>>         |_fibonacci[using_tuple=1]                     |     16 |      5 | wall   | sec    |  1.896 |  0.118 |  0.038 |  0.279 |  0.061 |    0.0 |
| >>>           |_fibonacci[using_tuple=1]                   |     32 |      6 | wall   | sec    |  1.896 |  0.059 |  0.015 |  0.170 |  0.034 |    0.0 |
| >>>             |_fibonacci[using_tuple=1]                 |     64 |      7 | wall   | sec    |  1.895 |  0.030 |  0.006 |  0.107 |  0.019 |    0.0 |
| >>>               |_fibonacci[using_tuple=1]               |    128 |      8 | wall   | sec    |  1.894 |  0.015 |  0.002 |  0.068 |  0.010 |    0.7 |
| >>>                 |_fibonacci[using_tuple=1]             |    247 |      9 | wall   | sec    |  1.881 |  0.008 |  0.002 |  0.042 |  0.006 |    7.7 |
| >>>                   |_fibonacci[using_tuple=1]           |    382 |     10 | wall   | sec    |  1.736 |  0.005 |  0.002 |  0.026 |  0.003 |   26.1 |
| >>>                     |_fibonacci[using_tuple=1]         |    386 |     11 | wall   | sec    |  1.282 |  0.003 |  0.002 |  0.017 |  0.002 |   49.6 |
| >>>                       |_fibonacci[using_tuple=1]       |    232 |     12 | wall   | sec    |  0.646 |  0.003 |  0.002 |  0.010 |  0.001 |   68.7 |
| >>>                         |_fibonacci[using_tuple=1]     |     79 |     13 | wall   | sec    |  0.203 |  0.003 |  0.002 |  0.006 |  0.001 |   83.3 |
| >>>                           |_fibonacci[using_tuple=1]   |     14 |     14 | wall   | sec    |  0.034 |  0.002 |  0.002 |  0.004 |  0.001 |   93.8 |
| >>>                             |_fibonacci[using_tuple=1] |      1 |     15 | wall   | sec    |  0.002 |  0.002 |  0.002 |  0.002 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |      1 |      0 | wall   | sec    |  1.855 |  1.855 |  1.855 |  1.855 |  0.000 |    0.0 |
| >>> |_fibonacci[using_tuple=0]                             |      1 |      1 | wall   | sec    |  1.855 |  1.855 |  1.855 |  1.855 |  0.000 |    0.0 |
| >>>   |_fibonacci[using_tuple=0]                           |      2 |      2 | wall   | sec    |  1.855 |  0.928 |  0.700 |  1.155 |  0.321 |    0.0 |
| >>>     |_fibonacci[using_tuple=0]                         |      4 |      3 | wall   | sec    |  1.855 |  0.464 |  0.274 |  0.725 |  0.189 |    0.0 |
| >>>       |_fibonacci[using_tuple=0]                       |      8 |      4 | wall   | sec    |  1.855 |  0.232 |  0.101 |  0.455 |  0.109 |    0.0 |
| >>>         |_fibonacci[using_tuple=0]                     |     16 |      5 | wall   | sec    |  1.855 |  0.116 |  0.038 |  0.291 |  0.063 |    0.0 |
| >>>           |_fibonacci[using_tuple=0]                   |     32 |      6 | wall   | sec    |  1.855 |  0.058 |  0.014 |  0.181 |  0.035 |    0.0 |
| >>>             |_fibonacci[using_tuple=0]                 |     64 |      7 | wall   | sec    |  1.855 |  0.029 |  0.005 |  0.109 |  0.019 |    0.0 |
| >>>               |_fibonacci[using_tuple=0]               |    128 |      8 | wall   | sec    |  1.854 |  0.014 |  0.002 |  0.066 |  0.010 |    0.7 |
| >>>                 |_fibonacci[using_tuple=0]             |    247 |      9 | wall   | sec    |  1.841 |  0.007 |  0.002 |  0.041 |  0.006 |    7.5 |
| >>>                   |_fibonacci[using_tuple=0]           |    382 |     10 | wall   | sec    |  1.704 |  0.004 |  0.002 |  0.025 |  0.003 |   25.9 |
| >>>                     |_fibonacci[using_tuple=0]         |    386 |     11 | wall   | sec    |  1.263 |  0.003 |  0.002 |  0.015 |  0.002 |   49.3 |
| >>>                       |_fibonacci[using_tuple=0]       |    232 |     12 | wall   | sec    |  0.640 |  0.003 |  0.002 |  0.009 |  0.001 |   69.4 |
| >>>                         |_fibonacci[using_tuple=0]     |     79 |     13 | wall   | sec    |  0.196 |  0.002 |  0.002 |  0.006 |  0.001 |   84.0 |
| >>>                           |_fibonacci[using_tuple=0]   |     14 |     14 | wall   | sec    |  0.031 |  0.002 |  0.002 |  0.004 |  0.000 |   92.9 |
| >>>                             |_fibonacci[using_tuple=0] |      1 |     15 | wall   | sec    |  0.002 |  0.002 |  0.002 |  0.002 |  0.000 |  100.0 |
|------------------------------------------------------------------------------------------------------------------------------------------------------|

[vol_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/vol_cxt_swch.json'...
[vol_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/vol_cxt_swch.tree.json'...
[vol_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/vol_cxt_swch.txt'...

|---------------------------------------------------------------------------------------------------------------------------------|
|        NUMBER OF CONTEXT SWITCHES DUE TO A PROCESS VOLUNTARILY GIVING UP THE PROCESSOR BEFORE ITS TIME SLICE WAS COMPLETED      |
|---------------------------------------------------------------------------------------------------------------------------------|
|                        LABEL                          | COUNT | DEPTH |    METRIC    | SUM | MEAN | MIN | MAX | STDDEV | % SELF |
|-------------------------------------------------------|-------|-------|--------------|-----|------|-----|-----|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]       |     1 |     0 | vol_cxt_swch |   0 |    0 |   0 |   0 |      0 |      0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)] |     1 |     0 | vol_cxt_swch |   0 |    0 |   0 |   0 |      0 |      0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)] |     1 |     0 | vol_cxt_swch |   0 |    0 |   0 |   0 |      0 |      0 |
|---------------------------------------------------------------------------------------------------------------------------------|

[prio_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/prio_cxt_swch.json'...
[prio_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/prio_cxt_swch.tree.json'...
[prio_cxt_swch]|0> Outputting 'timemory-ex-c-timing-output/prio_cxt_swch.txt'...

|-------------------------------------------------------------------------------------------------------------------------------------|
|   NUMBER OF CONTEXT SWITCH DUE TO HIGHER PRIORITY PROCESS BECOMING RUNNABLE OR BECAUSE THE CURRENT PROCESS EXCEEDED ITS TIME SLICE  |
|-------------------------------------------------------------------------------------------------------------------------------------|
|                        LABEL                          | COUNT | DEPTH |    METRIC     | SUM  | MEAN | MIN  | MAX  | STDDEV | % SELF |
|-------------------------------------------------------|-------|-------|---------------|------|------|------|------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]       |     1 |     0 | prio_cxt_swch | 1451 | 1451 | 1451 | 1451 |      0 |    100 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)] |     1 |     0 | prio_cxt_swch | 2607 | 2607 | 2607 | 2607 |      0 |    100 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)] |     1 |     0 | prio_cxt_swch | 1483 | 1483 | 1483 | 1483 |      0 |    100 |
|-------------------------------------------------------------------------------------------------------------------------------------|

[peak_rss]|0> Outputting 'timemory-ex-c-timing-output/peak_rss.json'...
[peak_rss]|0> Outputting 'timemory-ex-c-timing-output/peak_rss.tree.json'...
[peak_rss]|0> Outputting 'timemory-ex-c-timing-output/peak_rss.txt'...

|--------------------------------------------------------------------------------------------------------------------------------------------------------|
|                   MEASURES CHANGES IN THE HIGH-WATER MARK FOR THE AMOUNT OF MEMORY ALLOCATED IN RAM. MAY FLUCTUATE IF SWAP IS ENABLED                  |
|--------------------------------------------------------------------------------------------------------------------------------------------------------|
|                           LABEL                            | COUNT  | DEPTH  | METRIC   | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|------------------------------------------------------------|--------|--------|----------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]            |      1 |      0 | peak_rss | MB     |  0.012 |  0.012 |  0.012 |  0.012 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)]      |      1 |      0 | peak_rss | MB     |  0.152 |  0.152 |  0.152 |  0.152 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)]      |      1 |      0 | peak_rss | MB     |  0.098 |  0.098 |  0.098 |  0.098 |  0.000 |   54.2 |
| >>> |_fibonacci[using_tuple=0]                             |      1 |      1 | peak_rss | MB     |  0.045 |  0.045 |  0.045 |  0.045 |  0.000 |    9.1 |
| >>>   |_fibonacci[using_tuple=0]                           |      2 |      2 | peak_rss | MB     |  0.041 |  0.020 |  0.000 |  0.041 |  0.029 |    0.0 |
| >>>     |_fibonacci[using_tuple=0]                         |      4 |      3 | peak_rss | MB     |  0.041 |  0.010 |  0.000 |  0.041 |  0.020 |   10.0 |
| >>>       |_fibonacci[using_tuple=0]                       |      8 |      4 | peak_rss | MB     |  0.037 |  0.005 |  0.000 |  0.037 |  0.013 |    0.0 |
| >>>         |_fibonacci[using_tuple=0]                     |     16 |      5 | peak_rss | MB     |  0.037 |  0.002 |  0.000 |  0.037 |  0.009 |   11.1 |
| >>>           |_fibonacci[using_tuple=0]                   |     32 |      6 | peak_rss | MB     |  0.033 |  0.001 |  0.000 |  0.029 |  0.005 |    0.0 |
| >>>             |_fibonacci[using_tuple=0]                 |     64 |      7 | peak_rss | MB     |  0.033 |  0.001 |  0.000 |  0.029 |  0.004 |    0.0 |
| >>>               |_fibonacci[using_tuple=0]               |    128 |      8 | peak_rss | MB     |  0.033 |  0.000 |  0.000 |  0.016 |  0.002 |   12.5 |
| >>>                 |_fibonacci[using_tuple=0]             |    247 |      9 | peak_rss | MB     |  0.029 |  0.000 |  0.000 |  0.012 |  0.001 |    0.0 |
| >>>                   |_fibonacci[using_tuple=0]           |    382 |     10 | peak_rss | MB     |  0.029 |  0.000 |  0.000 |  0.012 |  0.001 |   57.1 |
| >>>                     |_fibonacci[using_tuple=0]         |    386 |     11 | peak_rss | MB     |  0.012 |  0.000 |  0.000 |  0.008 |  0.000 |    0.0 |
| >>>                       |_fibonacci[using_tuple=0]       |    232 |     12 | peak_rss | MB     |  0.012 |  0.000 |  0.000 |  0.008 |  0.001 |    0.0 |
| >>>                         |_fibonacci[using_tuple=0]     |     79 |     13 | peak_rss | MB     |  0.012 |  0.000 |  0.000 |  0.008 |  0.001 |   66.7 |
| >>>                           |_fibonacci[using_tuple=0]   |     14 |     14 | peak_rss | MB     |  0.004 |  0.000 |  0.000 |  0.004 |  0.001 |    0.0 |
| >>>                             |_fibonacci[using_tuple=0] |      1 |     15 | peak_rss | MB     |  0.004 |  0.004 |  0.004 |  0.004 |  0.000 |  100.0 |
|--------------------------------------------------------------------------------------------------------------------------------------------------------|

[page_rss]|0> Outputting 'timemory-ex-c-timing-output/page_rss.json'...
[page_rss]|0> Outputting 'timemory-ex-c-timing-output/page_rss.tree.json'...
[page_rss]|0> Outputting 'timemory-ex-c-timing-output/page_rss.txt'...

|---------------------------------------------------------------------------------------------------------------------------------------------------|
|                  AMOUNT OF MEMORY ALLOCATED IN PAGES OF MEMORY. UNLIKE PEAK_RSS, VALUE WILL FLUCTUATE AS MEMORY IS FREED/ALLOCATED                |
|---------------------------------------------------------------------------------------------------------------------------------------------------|
|                        LABEL                          | COUNT  | DEPTH  | METRIC   | UNITS  |  SUM   | MEAN   |  MIN   |  MAX   | STDDEV | % SELF |
|-------------------------------------------------------|--------|--------|----------|--------|--------|--------|--------|--------|--------|--------|
| >>> get_timer/ex_c_timing.c:20/[main (untimed)]       |      1 |      0 | page_rss | MB     |  0.012 |  0.012 |  0.012 |  0.012 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + tuple)] |      1 |      0 | page_rss | MB     |  0.152 |  0.152 |  0.152 |  0.152 |  0.000 |  100.0 |
| >>> get_timer/ex_c_timing.c:20/[main (timed + timer)] |      1 |      0 | page_rss | MB     |  0.098 |  0.098 |  0.098 |  0.098 |  0.000 |  100.0 |
|---------------------------------------------------------------------------------------------------------------------------------------------------|