Back to Mimalloc

mi

docs/group__stats.html

3.3.216.4 KB
Original Source

| | mi-malloc 1.8/2.1 | |

Loading...

Searching...

No Matches

Data Structures | Macros | Functions

Statistics

Print out allocation statistics. More...

|

Data Structures

| | struct | [mi_stats_t](#structmi stats s) | | | Statistics. See include/mimalloc-stats.h for the full definition. [More...](#structmi stats s)
| | |

|

Macros

| | #define | MI_STAT_VERSION | | | Statistics version. Increased on each backward incompatible change.
| | | | #define | mi_stats_t_decl(name) | | | Helper to declare a properly initialized mi_stats_t() local variable as name where the size and version fields are properly initialized.
| | |

|

Functions

| | void | mi_process_info_print (void) | | | Print out all process info.
| | | | void | mi_process_info_print_out (mi_output_fun *out, void *arg) | | | Print out all process info.
| | | | void | mi_process_info (size_t *elapsed_msecs, size_t *user_msecs, size_t *system_msecs, size_t *current_rss, size_t *peak_rss, size_t *current_commit, size_t *peak_commit, size_t *page_faults) | | | Return process information (time and memory usage).
| | | | void | mi_stats_print (void *out) | | | Deprecated.
| | | | void | mi_stats_print_out (mi_output_fun *out, void *arg) | | | Print statistics of the current subprocess aggregated over all its heaps.
| | | | bool | mi_stats_get (mi_stats_t *stats) | | | Get the statistics for the current subprocess aggregated over all its heaps.
| | | | char * | mi_stats_get_json (size_t buf_size, char *buf) | | | Get the statistics for the current subprocess aggregated over all its heaps as JSON.
| | | | size_t | mi_stats_get_bin_size (size_t bin) | | | v3 : Return the block size for the given bin.
| | | | bool | mi_heap_stats_get (mi_heap_t *heap, mi_stats_t *stats) | | | v3 : Return statistics for a given heap.
| | | | char * | mi_heap_stats_get_json (mi_heap_t *heap, size_t buf_size, char *buf) | | | v3 : Get the statistics for a heap as JSON.
| | | | void | mi_heap_stats_print_out (mi_heap_t *heap, mi_output_fun *out, void *arg) | | | v3 : Show the heap statistics as JSON.
| | | | void | mi_heap_stats_merge_to_subproc (mi_heap_t *heap) | | | v3 : xplicitly merge the statistics of the current heap with the subprocess.
| | | | bool | mi_subproc_stats_get (mi_subproc_id_t subproc_id, mi_stats_t *stats) | | | v3 : Get statistics for a given subprocess aggregated over all its heaps.
| | | | char * | mi_subproc_stats_get_json (mi_subproc_id_t subproc_id, size_t buf_size, char *buf) | | | v3 : Show the subproc statistics aggregated over all its heaps as JSON.
| | | | void | mi_subproc_stats_print_out (mi_subproc_id_t subproc_id, mi_output_fun *out, void *arg) | | | v3 : Print the subproc statistics aggregated over all its heaps.
| | | | void | mi_subproc_heap_stats_print_out (mi_subproc_id_t subproc_id, mi_output_fun *out, void *arg) | | | v3 : Print statistics for a given subprocess with each heap separately printed.
| | | | char * | mi_stats_as_json (mi_stats_t *stats, size_t buf_size, char *buf) | | | v3 : Show the given statistics as JSON.
| | | | void | mi_stats_reset (void) | | | v1 , v2 : Reset statistics.
| | | | void | mi_stats_merge (void) | | | v1 , v2 : Merge thread local statistics with the main statistics and reset.
| | |

Detailed Description

Print out allocation statistics.


Data Structure Documentation

[◆](#structmi stats s)mi_stats_s

| struct mi_stats_s |

Statistics. See include/mimalloc-stats.h for the full definition.

Data Fields
size_t
size_t

Macro Definition Documentation

MI_STAT_VERSION

| #define MI_STAT_VERSION |

Statistics version. Increased on each backward incompatible change.

mi_stats_t_decl

| #define mi_stats_t_decl | ( | | name | ) | |

Helper to declare a properly initialized mi_stats_t() local variable as name where the size and version fields are properly initialized.

For example:

mi_stats_t_decl(stats);

if (mi_stats_get(&stats)) {

...

}

mi_stats_t_decl

#define mi_stats_t_decl(name)

Helper to declare a properly initialized mi_stats_t() local variable as name where the size and versi...

Definition mimalloc-doc.h:1050

mi_stats_get

bool mi_stats_get(mi_stats_t *stats)

Get the statistics for the current subprocess aggregated over all its heaps.

Function Documentation

mi_heap_stats_get()

| bool mi_heap_stats_get | ( | mi_heap_t * | heap, | | | | mi_stats_t * | stats ) |

v3 : Return statistics for a given heap.

Parameters

| heap | The heap. | | stats | Pointer to a mi_stats_t() structure (declared as mi_stats_t_decl(name)). |

Returns_true_ if stats is not NULL, and if stats->size and stats->version match the sizeof(mi_stats_t) and MI_STAT_VERSION with the linked mimalloc version.

mi_heap_stats_get_json()

| char * mi_heap_stats_get_json | ( | mi_heap_t * | heap, | | | | size_t | buf_size, | | | | char * | buf ) |

v3 : Get the statistics for a heap as JSON.

Parameters

| heap | The heap. | | buf_size | Byte size of the buffer buf (or 0 if buf is NULL). | | buf | The buffer. Pass NULL to allocate a fresh buffer. |

ReturnsPointer to the buffer or NULL on failure. Use mi_free() to free the buffer if the buf parameter was NULL.

mi_heap_stats_merge_to_subproc()

| void mi_heap_stats_merge_to_subproc | ( | mi_heap_t * | heap | ) | |

v3 : xplicitly merge the statistics of the current heap with the subprocess.

Parameters

| heap | The heap. After this call, the heap statistics are reset. |

mi_heap_stats_print_out()

| void mi_heap_stats_print_out | ( | mi_heap_t * | heap, | | | | mi_output_fun * | out, | | | | void * | arg ) |

v3 : Show the heap statistics as JSON.

Parameters

| heap | The heap. | | out | An output function or NULL for the default. | | arg | Optional argument passed to out (if not NULL) |

mi_process_info()

| void mi_process_info | ( | size_t * | elapsed_msecs, | | | | size_t * | user_msecs, | | | | size_t * | system_msecs, | | | | size_t * | current_rss, | | | | size_t * | peak_rss, | | | | size_t * | current_commit, | | | | size_t * | peak_commit, | | | | size_t * | page_faults ) |

Return process information (time and memory usage).

Parameters

| elapsed_msecs | Optional. Elapsed wall-clock time of the process in milli-seconds. | | user_msecs | Optional. User time in milli-seconds (as the sum over all threads). | | system_msecs | Optional. System time in milli-seconds. | | current_rss | Optional. Current working set size (touched pages). | | peak_rss | Optional. Peak working set size (touched pages). | | current_commit | Optional. Current committed memory (backed by the page file). | | peak_commit | Optional. Peak committed memory (backed by the page file). | | page_faults | Optional. Count of hard page faults. |

The current_rss is precise on Windows and MacOSX; other systems estimate this using current_commit. The commit is precise on Windows but estimated on other systems as the amount of read/write accessible memory reserved by mimalloc.

mi_process_info_print()

| void mi_process_info_print | ( | void | | ) | |

Print out all process info.

See alsomi_process_info()

mi_process_info_print_out()

| void mi_process_info_print_out | ( | mi_output_fun * | out, | | | | void * | arg ) |

Print out all process info.

Parameters

| out | An output function or NULL for the default. | | arg | Optional argument passed to out (if not NULL) |

See alsomi_process_print()

mi_stats_as_json()

| char * mi_stats_as_json | ( | mi_stats_t * | stats, | | | | size_t | buf_size, | | | | char * | buf ) |

v3 : Show the given statistics as JSON.

Parameters

| stats | The statistics. | | buf_size | Byte size of the buffer buf (or 0 if buf is NULL). | | buf | The buffer. Pass NULL to allocate a fresh buffer. |

ReturnsPointer to the buffer or NULL on failure. Use mi_free() to free the buffer if the buf parameter was NULL.

mi_stats_get()

| bool mi_stats_get | ( | mi_stats_t * | stats | ) | |

Get the statistics for the current subprocess aggregated over all its heaps.

Parameters

| stats | Pointer to a mi_stats_t() structure (declared as mi_stats_t_decl(name)). |

Returns_true_ if stats is not NULL, and if stats->size and stats->version match the sizeof(mi_stats_t) and MI_STAT_VERSION with the linked mimalloc version.

mi_stats_get_bin_size()

| size_t mi_stats_get_bin_size | ( | size_t | bin | ) | |

v3 : Return the block size for the given bin.

mi_stats_get_json()

| char * mi_stats_get_json | ( | size_t | buf_size, | | | | char * | buf ) |

Get the statistics for the current subprocess aggregated over all its heaps as JSON.

Parameters

| buf_size | Byte size of the buffer buf (or 0 if buf is NULL) | | buf | The buffer. Pass NULL to allocate a fresh buffer. |

ReturnsPointer to the buffer or NULL on failure. Use mi_free() to free the buffer if the buf parameter was NULL.

mi_stats_merge()

| void mi_stats_merge | ( | void | | ) | |

v1 , v2 : Merge thread local statistics with the main statistics and reset.

mi_stats_print()

| void mi_stats_print | ( | void * | out | ) | |

Deprecated.

Parameters

| out | Ignored, outputs to the registered output function or stderr by default. |

Most detailed when using a debug build.

mi_stats_print_out()

| void mi_stats_print_out | ( | mi_output_fun * | out, | | | | void * | arg ) |

Print statistics of the current subprocess aggregated over all its heaps.

Parameters

| out | An output function or NULL for the default. | | arg | Optional argument passed to out (if not NULL) |

Most detailed when using a debug build.

mi_stats_reset()

| void mi_stats_reset | ( | void | | ) | |

v1 , v2 : Reset statistics.

mi_subproc_heap_stats_print_out()

| void mi_subproc_heap_stats_print_out | ( | mi_subproc_id_t | subproc_id, | | | | mi_output_fun * | out, | | | | void * | arg ) |

v3 : Print statistics for a given subprocess with each heap separately printed.

Parameters

| subproc_id | The subprocess | | out | An output function or NULL for the default. | | arg | Optional argument passed to out (if not NULL) |

mi_subproc_stats_get()

| bool mi_subproc_stats_get | ( | mi_subproc_id_t | subproc_id, | | | | mi_stats_t * | stats ) |

v3 : Get statistics for a given subprocess aggregated over all its heaps.

Parameters

| subproc_id | The subprocess | | stats | Pointer to a mi_stats_t() structure (declared as mi_stats_t_decl(name)). |

Returns_true_ if stats is not NULL, and if stats->size and stats->version match the sizeof(mi_stats_t) and MI_STAT_VERSION with the linked mimalloc version.

mi_subproc_stats_get_json()

| char * mi_subproc_stats_get_json | ( | mi_subproc_id_t | subproc_id, | | | | size_t | buf_size, | | | | char * | buf ) |

v3 : Show the subproc statistics aggregated over all its heaps as JSON.

Parameters

| subproc_id | The subprocess. | | buf_size | Byte size of the buffer buf (or 0 if buf is NULL). | | buf | The buffer. Pass NULL to allocate a fresh buffer. |

ReturnsPointer to the buffer or NULL on failure. Use mi_free() to free the buffer if the buf parameter was NULL.

mi_subproc_stats_print_out()

| void mi_subproc_stats_print_out | ( | mi_subproc_id_t | subproc_id, | | | | mi_output_fun * | out, | | | | void * | arg ) |

v3 : Print the subproc statistics aggregated over all its heaps.

Parameters

| subproc_id | The subprocess. | | out | An output function or NULL for the default. | | arg | Optional argument passed to out (if not NULL) |

  • Generated by 1.11.0