runtime: more malloc statistics
expvar: default publishings for cmdline, memstats
godoc: import expvar
R=r
CC=golang-dev
https://golang.org/cl/815041
diff --git a/src/pkg/runtime/mfixalloc.c b/src/pkg/runtime/mfixalloc.c
index dd4f3f2..8347a15 100644
--- a/src/pkg/runtime/mfixalloc.c
+++ b/src/pkg/runtime/mfixalloc.c
@@ -21,6 +21,8 @@
f->list = nil;
f->chunk = nil;
f->nchunk = 0;
+ f->inuse = 0;
+ f->sys = 0;
}
void*
@@ -31,9 +33,11 @@
if(f->list) {
v = f->list;
f->list = *(void**)f->list;
+ f->inuse += f->size;
return v;
}
if(f->nchunk < f->size) {
+ f->sys += FixAllocChunk;
f->chunk = f->alloc(FixAllocChunk);
if(f->chunk == nil)
throw("out of memory (FixAlloc)");
@@ -44,12 +48,14 @@
f->first(f->arg, v);
f->chunk += f->size;
f->nchunk -= f->size;
+ f->inuse += f->size;
return v;
}
void
FixAlloc_Free(FixAlloc *f, void *p)
{
+ f->inuse -= f->size;
*(void**)p = f->list;
f->list = p;
}