mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-09 16:21:45 +00:00
Flatten mem stats
This commit is contained in:
1 parent
de037d6ef9
commit
b55ba5a660
4 files changed
+42
-44
No files matched your search
+18
-19
@@ -3913,29 +3913,28 @@ size_t mg_usage(int task, int metric) {
|
||||
}
|
||||
#endif
|
||||
|
||||
static size_t print_stacks(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
int i;
|
||||
int count = (int) mg_usage(-1, MG_USAGE_NUM_TASKS);
|
||||
size_t len = mg_xprintf(fn, arg, "[");
|
||||
for (i = 0; i < count; i++) {
|
||||
const char *name = (const char *) mg_usage(i, MG_USAGE_TASK_NAME);
|
||||
len += mg_xprintf(fn, arg, "%s{%m:%m,%m:%zu,%m:%zu}",
|
||||
i == 0 ? "" : ",", MG_ESC("name"),
|
||||
MG_ESC(name == NULL ? "" : name), MG_ESC("free"),
|
||||
(size_t) mg_usage(i, MG_USAGE_STACK_FREE), MG_ESC("total"),
|
||||
(size_t) mg_usage(i, MG_USAGE_STACK_TOTAL));
|
||||
}
|
||||
(void) ap;
|
||||
return len + mg_xprintf(fn, arg, "]");
|
||||
static size_t print_mem_stat(mg_pfn_t fn, void *arg, const char *name,
|
||||
size_t free, size_t total) {
|
||||
return mg_xprintf(fn, arg, "{%m:%m,%m:%zu,%m:%zu}", MG_ESC("name"),
|
||||
MG_ESC(name == NULL ? "" : name), MG_ESC("free"), free,
|
||||
MG_ESC("total"), total);
|
||||
}
|
||||
|
||||
size_t mg_print_mem_stats(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
size_t heap_total = (size_t) mg_usage(0, MG_USAGE_HEAP_TOTAL);
|
||||
size_t heap_free = (size_t) mg_usage(0, MG_USAGE_HEAP_FREE);
|
||||
int i, count;
|
||||
size_t heap_total = mg_usage(0, MG_USAGE_HEAP_TOTAL);
|
||||
size_t heap_free = mg_usage(0, MG_USAGE_HEAP_FREE);
|
||||
size_t len = mg_xprintf(fn, arg, "[");
|
||||
len += print_mem_stat(fn, arg, "heap", heap_free, heap_total);
|
||||
count = (int) mg_usage(-1, MG_USAGE_NUM_TASKS);
|
||||
for (i = 0; i < count; i++) {
|
||||
const char *name = (const char *) mg_usage(i, MG_USAGE_TASK_NAME);
|
||||
len += mg_xprintf(fn, arg, ",");
|
||||
len += print_mem_stat(fn, arg, name, mg_usage(i, MG_USAGE_STACK_FREE),
|
||||
mg_usage(i, MG_USAGE_STACK_TOTAL));
|
||||
}
|
||||
(void) ap;
|
||||
return mg_xprintf(fn, arg, "{%m:%zu,%m:%zu,%m:%M}",
|
||||
MG_ESC("heap_total"), heap_total, MG_ESC("heap_free"),
|
||||
heap_free, MG_ESC("stacks"), print_stacks);
|
||||
return len + mg_xprintf(fn, arg, "]");
|
||||
}
|
||||
|
||||
#if MG_ARCH == MG_ARCH_ESP32
|
||||
|
||||
+3
-3
@@ -4516,8 +4516,8 @@ size_t mg_usage(int task, int metric);
|
||||
|
||||
#define MG_HEALTH_INIT() mg_health_init()
|
||||
extern size_t mg_print_crash_record(mg_pfn_t, void *, va_list *);
|
||||
// JSON memory statistics via mg_usage(), suitable for %M: heap_total, heap_free,
|
||||
// and a stacks array of {name, free, total}
|
||||
// JSON memory statistics via mg_usage(), suitable for %M: an array of
|
||||
// {name, free, total} entries, starting with "heap", then task stacks
|
||||
// A zero total means unknown
|
||||
extern size_t mg_print_mem_stats(mg_pfn_t, void *, va_list *);
|
||||
extern void mg_health_init(void);
|
||||
@@ -4540,7 +4540,7 @@ static inline size_t mg_print_crash_record(mg_pfn_t fn, void *arg,
|
||||
}
|
||||
static inline size_t mg_print_mem_stats(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
(void) ap;
|
||||
return mg_xprintf(fn, arg, "{}");
|
||||
return mg_xprintf(fn, arg, "[]");
|
||||
}
|
||||
static inline bool mg_health_coredump_begin(size_t *size) {
|
||||
(void) size;
|
||||
|
||||
+18
-19
@@ -58,29 +58,28 @@ size_t mg_usage(int task, int metric) {
|
||||
}
|
||||
#endif
|
||||
|
||||
static size_t print_stacks(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
int i;
|
||||
int count = (int) mg_usage(-1, MG_USAGE_NUM_TASKS);
|
||||
size_t len = mg_xprintf(fn, arg, "[");
|
||||
for (i = 0; i < count; i++) {
|
||||
const char *name = (const char *) mg_usage(i, MG_USAGE_TASK_NAME);
|
||||
len += mg_xprintf(fn, arg, "%s{%m:%m,%m:%zu,%m:%zu}",
|
||||
i == 0 ? "" : ",", MG_ESC("name"),
|
||||
MG_ESC(name == NULL ? "" : name), MG_ESC("free"),
|
||||
(size_t) mg_usage(i, MG_USAGE_STACK_FREE), MG_ESC("total"),
|
||||
(size_t) mg_usage(i, MG_USAGE_STACK_TOTAL));
|
||||
}
|
||||
(void) ap;
|
||||
return len + mg_xprintf(fn, arg, "]");
|
||||
static size_t print_mem_stat(mg_pfn_t fn, void *arg, const char *name,
|
||||
size_t free, size_t total) {
|
||||
return mg_xprintf(fn, arg, "{%m:%m,%m:%zu,%m:%zu}", MG_ESC("name"),
|
||||
MG_ESC(name == NULL ? "" : name), MG_ESC("free"), free,
|
||||
MG_ESC("total"), total);
|
||||
}
|
||||
|
||||
size_t mg_print_mem_stats(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
size_t heap_total = (size_t) mg_usage(0, MG_USAGE_HEAP_TOTAL);
|
||||
size_t heap_free = (size_t) mg_usage(0, MG_USAGE_HEAP_FREE);
|
||||
int i, count;
|
||||
size_t heap_total = mg_usage(0, MG_USAGE_HEAP_TOTAL);
|
||||
size_t heap_free = mg_usage(0, MG_USAGE_HEAP_FREE);
|
||||
size_t len = mg_xprintf(fn, arg, "[");
|
||||
len += print_mem_stat(fn, arg, "heap", heap_free, heap_total);
|
||||
count = (int) mg_usage(-1, MG_USAGE_NUM_TASKS);
|
||||
for (i = 0; i < count; i++) {
|
||||
const char *name = (const char *) mg_usage(i, MG_USAGE_TASK_NAME);
|
||||
len += mg_xprintf(fn, arg, ",");
|
||||
len += print_mem_stat(fn, arg, name, mg_usage(i, MG_USAGE_STACK_FREE),
|
||||
mg_usage(i, MG_USAGE_STACK_TOTAL));
|
||||
}
|
||||
(void) ap;
|
||||
return mg_xprintf(fn, arg, "{%m:%zu,%m:%zu,%m:%M}",
|
||||
MG_ESC("heap_total"), heap_total, MG_ESC("heap_free"),
|
||||
heap_free, MG_ESC("stacks"), print_stacks);
|
||||
return len + mg_xprintf(fn, arg, "]");
|
||||
}
|
||||
|
||||
#if MG_ARCH == MG_ARCH_ESP32
|
||||
|
||||
+3
-3
@@ -139,8 +139,8 @@ size_t mg_usage(int task, int metric);
|
||||
|
||||
#define MG_HEALTH_INIT() mg_health_init()
|
||||
extern size_t mg_print_crash_record(mg_pfn_t, void *, va_list *);
|
||||
// JSON memory statistics via mg_usage(), suitable for %M: heap_total, heap_free,
|
||||
// and a stacks array of {name, free, total}
|
||||
// JSON memory statistics via mg_usage(), suitable for %M: an array of
|
||||
// {name, free, total} entries, starting with "heap", then task stacks
|
||||
// A zero total means unknown
|
||||
extern size_t mg_print_mem_stats(mg_pfn_t, void *, va_list *);
|
||||
extern void mg_health_init(void);
|
||||
@@ -163,7 +163,7 @@ static inline size_t mg_print_crash_record(mg_pfn_t fn, void *arg,
|
||||
}
|
||||
static inline size_t mg_print_mem_stats(mg_pfn_t fn, void *arg, va_list *ap) {
|
||||
(void) ap;
|
||||
return mg_xprintf(fn, arg, "{}");
|
||||
return mg_xprintf(fn, arg, "[]");
|
||||
}
|
||||
static inline bool mg_health_coredump_begin(size_t *size) {
|
||||
(void) size;
|
||||
|
||||
Reference in new issue
Block a user