There is a bug in g_mem_profile which causes it to print out completely ridiculous statistics. Here's an example: GLib-INFO: 1073785336 allocations of greater than 8191 bytes GLib-INFO: 8193 bytes allocated GLib-INFO: 0 bytes freed GLib-INFO: 8193 bytes in use That's alot of allocations. The loop in g_mem_profile which copies the allocation data doesn't copy the last element. To see it, build glib with --enable-mem-profile and then run this program: #include int main (int argc, char ** argv) { g_atexit (g_mem_profile); g_malloc (8193); return 0; }