使用jemalloc优化swoole内存分配性能

最后更新于:2022-04-02 06:40:46

# 使用jemalloc优化swoole内存分配性能 [TOC] > 现已不建议使用jemalloc, 可能会降低程序稳定性 > > 建议使用标准的malloc和PHP官方提供的emalloc (默认) ## 关于jemalloc jemalloc是一个比glibc malloc更高效的内存池技术,在Facebook公司被大量使用,在FreeBSD和FireFox项目中使用了jemalloc作为默认的内存管理器。使用jemalloc可以使程序的内存管理性能提升,减少内存碎片。 ## 安装jemalloc * GITHUB主页:[https://github.com/jemalloc/jemalloc](https://github.com/jemalloc/jemalloc) * 下载地址:[https://github.com/jemalloc/jemalloc/releases/tag/4.0.4](https://github.com/jemalloc/jemalloc/releases/tag/4.0.4) 编译安装: ~~~ cd jemalloc ./configure --with-jemalloc-prefix=je_ make -j 4 ~~~ ## 使用jemalloc 编译`Swoole`时增加`--with-jemalloc-dir=/path/to/jemalloc` ~~~ phpize ./configure --with-jemalloc-dir=/path/to/jemalloc make make install ~~~ ## 预先载入 除了手工编译`jemalloc`增加命名空间的使用方式之外也可以使用`LD_PRELOAD`使用`jemalloc`。此方法也可以用于`Google`的`tcmalloc`内存池技术。 ~~~ LD_PRELOAD="/usr/lib/libjemalloc.so" php server.php LD_PRELOAD="/usr/lib/libtcmalloc.so" php server.php ~~~ > `/usr/lib/libjemalloc.so`请填写正确的`jemalloc.so`路径
';