深入理解ptmalloc的运作机制

1、前言

        一直对glibc的内存分配器的设计与实现感兴趣,之前一直没有下定决心以及抽出足够的时间进攻这个方向,最近抽出了几天对glibc的ptmalloc源码进行了梳理和研究,现在将研究成果梳理总结成文。
        为什么要写这篇文章?相信很多读者对系统是怎样管理内存感兴趣,通过深入研究ptmalloc,读者可以深刻了解到系统是怎样减少内存碎片,如何提升多线程环境下的内存分配和释放的性能,这对读者更好地进行系统编程有着直接或间接的帮助。本文立足于glibc 2.26的源码,为了方便读者理解和方便笔者书写,着重介绍概念和运作原理,不会贴大段的代码,各位看官大可放心食用。最有本人水平有限,如有书写不当的地方欢迎大家联系我修改,欢迎大家加入技术讨论群:QQ185017593。

[Read More]
C 

红黑树探索

前言

        在沉浸了一年多之后,我开始重新拾起了写博客的习惯。过去一年主要在忙我的书的事情,一本关于如何实现Lua解释器的书–《Lua解释器构建:从虚拟机到编译器》。这本书将由机械工业出版社出版,目前已经过了终审,处于校对环节,预计明年1月能够出样书,大概2月份能够上市。随书源码已经放到github上了,有兴趣的读者可以点击这里进行访问。由于我想写的内容已经在书中展现,因此原来的博客dummylua-tutorial系列不再更新。
        对书籍的预热结束,言归正传,本篇将深入探索红黑树。红黑树由于难于理解与实现,业内一直将“手撸红黑树”作为调侃的梗。本文将要探索的是红黑树的设计与实现,在开始写博客之前,我已经动手将红黑树实现了一遍,并且通过了预定的测试,确实是“手撸红黑树”了,XD。该项目我已经放到github上,读者可以通过这个链接red-black-tree进行下载。

[Read More]
C 

关于sizeof的一些思考

前言

今天,我所在的技术群(qq185017593),讨论了sizeof的问题,聊得不亦乐乎,然而一个群友贴的代码,我感觉有一些漏洞,于是梳理了一下思路和知识点,特此记录一下。

[Read More]
C