jemalloc在linux上从安装到使用
来源:互联网 发布:vmware企业级软件 编辑:程序博客网 时间:2024/06/06 03:50
jemalloc在linux上从安装到使用
上次在引导大家安装redis时提到可能会报错:
发现了redis有用到jemalloc。
首先,jemalloc是干什么的?
我们看看作者自己的介绍:
jemalloc is a general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support
意思是说jemalloc干了malloc干的活,而且干得好一些,主要体现在避免内存碎片与并发扩展上。
首先,什么是内存碎片?
假设系统只有一片64字节的内存,分配给4个单元,每个16个字节:
将这4个单元分配释放再重新分配4个12字节的内存片:
我们发现多了4*4不连续的内存片,下次我们就不能分配12或者16字节的内存了。
另外,glibc分配内存一般向4或者8取整,比如我们向申请13字节的内存,实际上得到的内存片会是16字节,多出来的3个字节我们不知道,也就无法使用了。
内存碎片很可怕吗?
短时间内不明显,对于线上的服务器比如nginx,运行时间可能经年,每天几亿的请求量,如果每天产生100片 ,一年下来也是3万多片 ,相当恐怖!
jemalloc可以有效的解决这个问题!
jemalloc的性能图(上篇已经展示过):
既然jemalloc这么牛逼,我们就来安装吧!
先github上下载:
https://github.com/jemalloc/jemalloc/releases
下载包地址:
jemalloc-4.2.1
下载到linux目录下解压:
tar -xjvf jemalloc-4.2.1.tar.bz2
生成的文件列表如下:
在此目录下预编译
./configure –prefix=/usr/local/jemalloc
完成后再编译:
make -j8 && make install
我们到生成目录去看看:
生成的头文件在include里,库在lib里。
至此,安装算是完成了。
下面看看如何使用:
在编译链接时直接指向jemalloc即可:
gcc -g -c -o 1.o 1.c
gcc -g -o 1.out 1.o -L/usr/local/jemalloc/lib -ljemalloc
运行程序时可能会报找不到库:
只要将jemalloc的库被系统找到即可:
echo /usr/local/jemalloc/lib >> /etc/ld.so.conf
ldconfig
再次运行即可
- jemalloc在linux上从安装到使用
- jemalloc在linux上从安装到使用
- redis在linux上从安装到使用
- nginx在linux上从安装到使用
- oracle11gr2在linux上,从安装到编程实战
- 在Linux是使用libxml2---从安装到使用
- 在Linux是使用libxml2---从安装到使用
- 在Linux是使用libxml2---从安装到使用
- 在Linux是使用libxml2---从安装到使用
- jemalloc Linux 安装与使用方法
- Mac上从安装到使用CocoaPods
- 在windows下使用jemalloc库
- 在linux上使用yum安装JDK
- 在linux上使用yum安装JDK
- 在linux上使用yum安装JDK
- 在linux上使用yum安装JDK
- 在linux上使用yum安装jdk
- 在linux上使用yum安装JDK
- 一看就懂的ReactJs入门教程(精华版)
- CodeForces 706D Vasiliy's Multiset 字典树
- 【Spring源码--IOC容器的实现】(三)BeanDefinition的载入和解析【I】
- apk签名信息的获取
- UML类图几种关系的总结
- jemalloc在linux上从安装到使用
- Theme.Compat.Light 报错,导入v7包依然报错的解决办法!
- 【HDU】-2082-找单词(母函数)
- 英文计算机文章和api翻译(欢迎有志之士加入)
- CodeForces 476B Dreamoon and WiFi 数学 概率 DP
- Js中sort()方法的用法
- MySQL基础操作(未完)
- 图片拍照或相册选择的实现以及裁剪功能
- 正则表达式完整用法(转载)