mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-05-05 06:59:32 +03:00
expose mi_stats_merge function
This commit is contained in:
parent
4b39c0b06e
commit
4819d3f78f
2 changed files with 18 additions and 17 deletions
|
@ -110,6 +110,7 @@ mi_decl_export size_t mi_good_size(size_t size) mi_attr_noexcept;
|
||||||
mi_decl_export void mi_collect(bool force) mi_attr_noexcept;
|
mi_decl_export void mi_collect(bool force) mi_attr_noexcept;
|
||||||
mi_decl_export void mi_stats_print(FILE* out) mi_attr_noexcept;
|
mi_decl_export void mi_stats_print(FILE* out) mi_attr_noexcept;
|
||||||
mi_decl_export void mi_stats_reset(void) mi_attr_noexcept;
|
mi_decl_export void mi_stats_reset(void) mi_attr_noexcept;
|
||||||
|
mi_decl_export void mi_stats_merge(void) mi_attr_noexcept;
|
||||||
mi_decl_export int mi_version(void) mi_attr_noexcept;
|
mi_decl_export int mi_version(void) mi_attr_noexcept;
|
||||||
|
|
||||||
mi_decl_export void mi_process_init(void) mi_attr_noexcept;
|
mi_decl_export void mi_process_init(void) mi_attr_noexcept;
|
||||||
|
|
34
src/stats.c
34
src/stats.c
|
@ -11,19 +11,6 @@ terms of the MIT license. A copy of the license can be found in the file
|
||||||
#include <string.h> // memset
|
#include <string.h> // memset
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------
|
|
||||||
Merge thread statistics with the main one.
|
|
||||||
----------------------------------------------------------- */
|
|
||||||
|
|
||||||
static void mi_stats_add(mi_stats_t* stats, const mi_stats_t* src);
|
|
||||||
|
|
||||||
void _mi_stats_done(mi_stats_t* stats) {
|
|
||||||
if (stats == &_mi_stats_main) return;
|
|
||||||
mi_stats_add(&_mi_stats_main, stats);
|
|
||||||
memset(stats,0,sizeof(*stats));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------
|
/* -----------------------------------------------------------
|
||||||
Statistics operations
|
Statistics operations
|
||||||
----------------------------------------------------------- */
|
----------------------------------------------------------- */
|
||||||
|
@ -294,6 +281,13 @@ static mi_stats_t* mi_stats_get_default(void) {
|
||||||
return &heap->tld->stats;
|
return &heap->tld->stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void mi_stats_merge_from(mi_stats_t* stats) {
|
||||||
|
if (stats != &_mi_stats_main) {
|
||||||
|
mi_stats_add(&_mi_stats_main, stats);
|
||||||
|
memset(stats, 0, sizeof(mi_stats_t));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void mi_stats_reset(void) mi_attr_noexcept {
|
void mi_stats_reset(void) mi_attr_noexcept {
|
||||||
mi_stats_t* stats = mi_stats_get_default();
|
mi_stats_t* stats = mi_stats_get_default();
|
||||||
if (stats != &_mi_stats_main) { memset(stats, 0, sizeof(mi_stats_t)); }
|
if (stats != &_mi_stats_main) { memset(stats, 0, sizeof(mi_stats_t)); }
|
||||||
|
@ -301,11 +295,17 @@ void mi_stats_reset(void) mi_attr_noexcept {
|
||||||
mi_time_start = _mi_clock_start();
|
mi_time_start = _mi_clock_start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void mi_stats_merge(void) mi_attr_noexcept {
|
||||||
|
mi_stats_merge_from( mi_stats_get_default() );
|
||||||
|
}
|
||||||
|
|
||||||
|
void _mi_stats_done(mi_stats_t* stats) { // called from `mi_thread_done`
|
||||||
|
mi_stats_merge_from(stats);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static void mi_stats_print_ex(mi_stats_t* stats, double secs, FILE* out) {
|
static void mi_stats_print_ex(mi_stats_t* stats, double secs, FILE* out) {
|
||||||
if (stats != &_mi_stats_main) {
|
mi_stats_merge_from(stats);
|
||||||
mi_stats_add(&_mi_stats_main,stats);
|
|
||||||
memset(stats,0,sizeof(mi_stats_t));
|
|
||||||
}
|
|
||||||
_mi_stats_print(&_mi_stats_main, secs, out);
|
_mi_stats_print(&_mi_stats_main, secs, out);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue