jemalloc原理及内存管理
引言
虚拟内存是操作系统对物理内存的抽象,为应用程序提供了一个连续的地址空间。Linux进程的地址空间通常分为几个区域,包括代码段、数据段、堆、栈、库等。 常见布局如下所示:
可以通过pmap命令查看进程的内存布局。如下是一个简单的C程序的内存布局示例:
内存管理单元负责虚拟地址到物理地址的转换。
机制
分配
释放
回收
痛点与难点
- 多线程
- 多核
- 内存碎片
jemalloc
调优
https://pkold.com/docs/jemalloc/06-tuning/