mirror of
https://github.com/DarkPlacesEngine/gmqcc.git
synced 2025-04-09 19:42:04 +00:00
Add statistics for vector usage to the output. Step one in lowering memory usage. ONE FUCKING MILLION VECTORS for XONOTIC..
This commit is contained in:
parent
d85e86141c
commit
280dfdd3f8
1 changed files with 16 additions and 5 deletions
21
util.c
21
util.c
|
@ -166,7 +166,7 @@ static void util_dumpmem(struct memblock_t *memory, uint16_t cols) {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
static uint64_t vectors = 0;
|
||||
void util_meminfo() {
|
||||
struct memblock_t *info;
|
||||
|
||||
|
@ -180,6 +180,10 @@ void util_meminfo() {
|
|||
util_dumpmem(info, OPTS_OPTION_U16(OPTION_MEMDUMPCOLS));
|
||||
}
|
||||
}
|
||||
|
||||
con_out("Additional Statistics:\n Total vectors used: %lu\n",
|
||||
vectors
|
||||
);
|
||||
|
||||
if (OPTS_OPTION_BOOL(OPTION_DEBUG) ||
|
||||
OPTS_OPTION_BOOL(OPTION_MEMCHK)) {
|
||||
|
@ -434,13 +438,20 @@ size_t util_strtononcmd(const char *in, char *out, size_t outsz) {
|
|||
/* TODO: rewrite ... when I redo the ve cleanup */
|
||||
void _util_vec_grow(void **a, size_t i, size_t s) {
|
||||
vector_t *d = vec_meta(*a);
|
||||
size_t m = *a ? 2 * d->allocated +i : i+1;
|
||||
void *p = mem_r((*a ? d : NULL), s * m + sizeof(vector_t));
|
||||
size_t m = 0;
|
||||
void *p = NULL;
|
||||
|
||||
if (!*a)
|
||||
if (*a) {
|
||||
m = 2 * d->allocated + i;
|
||||
p = mem_r(d, s * m + sizeof(vector_t));
|
||||
} else {
|
||||
m = i + 1;
|
||||
p = mem_a(s * m + sizeof(vector_t));
|
||||
((vector_t*)p)->used = 0;
|
||||
*a = (vector_t*)p + 1;
|
||||
vectors++;
|
||||
}
|
||||
|
||||
*a = (vector_t*)p + 1;
|
||||
vec_meta(*a)->allocated = m;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue