- 博客(16)
- 资源 (10)
- 收藏
- 关注
原创 菜鸟nginx源码剖析数据结构篇(五) 基数树 ngx_radix_tree_t
基数树(radix tree)是一种不怎么常见的数据结构,这里简单的做一下介绍:在计算机科学中,基数树,是一种基于trie(字典树)的特殊的数据结构,可以快速定位叶子结点。radix tree是一种多叉搜索树,每个结点有固定的孩子数(叉数 为2^n).
2014-10-28 17:20:14 11812 3
原创 菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_t
ngx_rbtree是一种使用红黑树实现的关联容器,关于红黑树的特性,在《手把手实现红黑树》已经详细介绍,这里就只探讨ngx_rbtree与众不同的地方;ngx_rbtree红黑树容器中的元素都是有序的,支持快速索引,插入,删除操作,也支持范围查询,遍历操作,应用非常广泛。
2014-10-27 21:17:22 18131 7
转载 站在巨人的肩膀上,C++开源库大全
内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统的C标准库规范ISO C++ Standards
2014-10-24 15:04:26 15007 5
原创 菜鸟nginx源码剖析数据结构篇(三) 单向链表 ngx_list_t
ngx_list _t是一个顺序容器,它实际上是动态数组和单向链表的结合体,扩容起来比动态数组简单的多,可以一次扩容一个数组,所以说它结合了 链表插入删除不需要移动的 和 数组下标快速索引 的优势,设计非常让人叫绝,此外它还有以下特点:链表中存储的元素是灵活的,可以是任何一种数据结构。链表元素需要占用的内存由ngx_list_t管理,它已经通过数组分配好了。小块的内存使用链表访问O(n)效率是低下的,可以使用数组通过直接通过偏移量来直接访问O(1)。
2014-10-23 17:20:07 11775 7
原创 菜鸟nginx源码剖析数据结构篇(二) 双向链表ngx_queue_t
ngx_queue作为顺序容器链表,它优势在于其可以高效地执行插入、删除、合并操作,在插入删除的过程中,只需要修改指针指向,而不需要拷贝数据,因此,对于频繁修改的容器很适合。此外,相对于STL list,它还具有以下特点:自身实现了排序功能轻量级,不负责内存的分配自身支持两个链表的合并
2014-10-22 09:20:56 11344 5
原创 菜鸟nginx源码剖析数据结构篇(一)动态数组ngx_array_t
菜鸟nginx源码剖析数据结构篇(四)红黑树ngx_rbtree_t Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:October 27h, 2014 1.ngx_rbtree优势和特点
2014-10-21 13:54:52 67501 8
原创 TCMalloc 对MYSQL 性能 优化的分析
虽然经过研究发现TCMalloc不适合我们现有的游戏框架,但意外收获发现TCMalloc可以大幅度提高MYSQL 性能及内存占用,这里给出配置及测试的结果:
2014-10-20 16:43:03 65366 1
原创 TCMalloc 安装和使用
前面三篇译文《TCMalloc:线程缓冲的Malloc》、《使用TCMalloc的堆栈检查》、《使用TCMalloc进行堆栈分析》介绍了TCMalloc的基本原理,以及堆栈分析和检查工具,TCMalloc优点很多,比glibc 2.3的malloc快、自带的堆栈工具可以轻松找出内存瓶颈和内存泄漏,给服务器开发指明了一条新的道路。
2014-10-20 15:58:01 85672 2
翻译 使用Tcmalloc进行堆栈分析
前一篇译文《使用TCmalloc的堆栈检查》,介绍了Tcmalloc进行堆栈检查,今天翻译《heap-profiling using tcmalloc》,了解如何 TCmalloc进行堆栈分析。
2014-10-16 11:33:44 67618
翻译 使用TCmalloc的堆栈检查
在前一篇译文《TCMalloc:线程缓冲的Malloc》详细讲解了TCMalloc的工作原理和特点,今天翻译《heap-checking using tcmalloc》,了解Tcmalloc堆栈检查。
2014-10-15 19:50:50 15419
翻译 TCMalloc:线程缓冲的Malloc
TCMalloc要比glibc 2.3的malloc(可以从一个叫作ptmalloc2的独立库获得)和其他我测试过的malloc都快。ptmalloc在一台2.8GHz的P4机器上执行一次小对象malloc及free大约需要300纳秒,而TCMalloc的版本同样的操作大约只需要50纳秒。malloc版本的速度是至关重要的,因为如果malloc不够快,应用程序的作者就倾向于在malloc之上写一个自己的内存释放列表。这就可能导致额外的代码复杂度,以及更多的内存占用――除非作者本身非常仔细地划分释放列表的大小
2014-10-13 08:55:04 15841 1
翻译 TCMalloc:线程缓冲的Malloc
TCMalloc:线程缓冲的MallocAuthor:Echo Chen(陈斌)Email:[email protected]:Blog.csdn.net/chen19870707Date:October 10th, 2014 这段时间比较闲,研究下内存管理,从官方文档开始啃起《TCMalloc : Thread-Caching Ma
2014-10-12 21:10:57 596
原创 眉目传情之并发无锁环形队列的实现
前面在《眉目传情之匠心独运的kfifo》一文中详细解析了 linux 内核并发无锁环形队列kfifo的原理和实现,kfifo鬼斧神工,博大精深,让人叹为观止,但遗憾的是kfifo为内核提供服务,并未开放出来。剑不试则利钝暗,弓不试则劲挠诬,鹰不试则巧拙惑,马不试则良驽疑,光说不练是不能学到精髓的,下面就动手实现自己的并发无锁队列UnlockQueue(单生产者单消费者)。
2014-10-11 14:53:21 23908 7
原创 眉目传情之匠心独运的kfifo
学不考儒,务掇精华;文不按古,匠心独运。Linux kernal 鬼斧神工,博大精深,让人叹为观止,拍手叫绝。然匠心独运的设计并非扑朔迷离、盘根错节,真正的匠心独运乃辞简理博、化繁为简,在简洁中昭显优雅和智慧,kfifo就是这样一种数据结构,它就是这样简约高效,匠心独运,妙不可言,下面就跟大家一起探讨学习。
2014-10-08 21:27:53 24649 13
翻译 为什么需要内存屏障
内存屏障,也称内存栅栏,内存栅障,屏障指令等, 是一类同步屏障指令,使得CPU或编译器在对内存随机访问的操作中的一个同步点,使得此点之前的所有读写操作都执行后才可以开始执行此点之后的操作。来自一篇墙外的文章,写的非常好。
2014-10-08 18:00:36 8923 1
原创 十月份计划
1.研究nginx源代码,写一个专栏。 2.整理环形缓冲区,kfifo,tcmalloc。 3.csdn 精品文章20篇,访问量到20W,申请准专家。 4.读完老周的《我的互联网方法论》。 5.慢跑80km,每天坚持5km。
2014-10-08 09:01:44 1404
性能测试工具sysbench
2014-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人