
haproxy
文章平均质量分 79
likesq
淘空见
展开
-
Haproxy代码分析系列:内存管理
Haproxy实现了自己的内存管理,主要思路是为经常使用的数据结构维护一个内存池,把所有的内存池再串起来,申请和释放内存时,首先到该内存池链表中查找该类型的内存池是否有空闲内存,有的话直接使用,没有的话再重新分配。 代码主要在src/Memory.c中,文章来源于: Haproxy中的内存池结构是: struct pool_head { void **free_list; struct原创 2012-07-21 22:01:15 · 1922 阅读 · 0 评论 -
Haproxy代码分析系列-一些小的Tips
likely与unlikely #define likely(x) (__builtin_expect((x) != 0, 1)) #define unlikely(x) (__builtin_expect((x) != 0, 0)) 这个宏定义主要是告诉编译器x变量更可能是1或者是0,方便编译器进行分支优化,__builtin_expect是gcc的一个宏,并没有改变变量x的值 例如,程序:原创 2012-07-22 23:21:59 · 1063 阅读 · 0 评论