jemalloc使用方法
1、编译
在网站https://github.com/jemalloc/jemalloc/releases下载最新版的jemalloc源码包。
- 解压
wget https://github.com/jemalloc/jemalloc/releases/download/5.2.0/jemalloc-5.2.0.tar.bz2 tar xjvf jemalloc-5.2.0.tar.bz2 cd jemalloc-5.2.0/
- 配置
./configure --with-jemalloc-prefix=je_
如果是从github拉取源码,也可以通过配置
sh autogen.sh --with-jemalloc-prefix=je_
注意:这一步确定要把jemalloc的函数编译成哪种形式,比如下面的配置就会把分配内存的函数编译成je_malloc的形式,把calloc编译成je_calloc等等。这样就不会和系统的libc的分配函数malloc冲突,因为若不指定该选项默认编译的分配函数是malloc。
- 编译 make
- 编译完成后在lib目录下回生成以下的几个库文件:
$ ls ./lib libjemalloc.a libjemalloc_pic.a libjemalloc.so libjemalloc.so.2
其中libjemalloc.a是静态库,
libjemalloc.so.2是动态库,这里我使用的是静态库。
2、使用
把在jemalloc库源码目录include下的jemalloc.h,jemalloc_defs.h和libjemalloc.a分别复制到include和lib目录下,并创建一下测试函数。
在使用处#include "jemalloc.h"
编译时添加:
-ljemalloc -DJEMALLOC_NO_DEMANGLE
这里-DJEMALLOC_NO_DEMANGLE用来标明使用je_前缀的函数,解释如下:
/* * The je_* macros can be used as stable alternative names for the * public jemalloc API if JEMALLOC_NO_DEMANGLE is defined. This is primarily * meant for use in jemalloc itself, but it can be used by application code to * provide isolation from the name mangling specified via --with-mangling * and/or --with-jemalloc-prefix. */
这样就可以在代码中直接使用je_malloc je_free等函数
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
分类:
第三方库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了