#include <stdlib.h> #include <glib.h> #include <gst/gst.h> #include "mem.h" int main(int argc,char *argv[]) { GstBuffer *buf; GstBuffer **buffers; gpointer dummy; int i,max; long usage1,usage2; gst_init(&argc,&argv); max = atoi(argv[1]); g_print("creating and destroying a buffer %d times...",max); usage1 = vmsize(); for (i=0;i<max;i++) { buf = gst_buffer_new(); gst_buffer_unref(buf); } usage2 = vmsize(); g_print(" used %d more bytes\n",usage2-usage1); // g_print("pre-allocating space..."); // usage1 = vmsize(); // dummy = g_malloc(100*i); // usage2 = vmsize(); // g_print(" (+%d)\n",usage2-usage1); g_print("creating %d buffers...",max); buffers = g_new(GstBuffer,i); usage1 = vmsize(); for (i=0;i<max;i++) buffers[i] = gst_buffer_new(); // buffers[i] = (GstBuffer *)g_malloc(1024); usage2 = vmsize(); g_print(" (+%d bytes), and destroying them...",usage2-usage1); usage1 = vmsize(); for (i=0;i<max;i++) gst_buffer_unref(buffers[i]); // g_free(buffers[i]); usage2 = vmsize(); g_print("(-%d)\n",usage1-usage2); g_free(buffers); g_print("buffer is %d bytes, list is %d bytes\n", sizeof(GstBuffer),sizeof(GList)); g_print("memory usage is %d\n",vmsize()); }