2014年02月05日 星期三 11:11
Memory Slices是GLib库中的一组内存分配管理模块,当我们需要分配大量小块内存时,使用此模块会得到更加高效的内存使用效率。
编程示例如下:
#include <stdio.h> #include <glib.h> #include <string.h> #include <stdlib.h> struct Person { int id; char name[128]; char email[128]; int age; }; int main(int argc,char **argv) { char *s=g_slice_alloc(16); for(int i=0;i<16;i++) { printf("%d ",s[i]); } printf("\n"); g_slice_free1(16,s); s=g_slice_alloc0(16); for(int i=0;i<16;i++) { printf("%d ",s[i]); } printf("\n"); g_slice_free1(16,s); struct Person *p1=g_slice_new(struct Person); struct Person *p2=g_slice_new0(struct Person); struct Person *p3=g_slice_dup(struct Person,p1); printf("p1->id: %d\n",p1->id); printf("p2->id: %d\n",p2->id); printf("p3->id: %d\n",p3->id); g_slice_free(struct Person,p1); g_slice_free(struct Person,p2); g_slice_free(struct Person,p3); return 0; }
参考资料:
https://developer.gnome.org/glib/2.39/glib-Memory-Slices.html
Zeuux © 2024
京ICP备05028076号