Memory 在现有大型代码中使用jemalloc
我有一个庞大的代码分布在大量的文件中。此代码当前正在使用普通malloc 我想在其中实现Jemalloc以获得更好的性能,我还想使用Jemalloc的内存分析器来了解代码中的每个分配是如何发生的,以及在哪里发生的 我已经试了三个多星期了。请帮帮我Memory 在现有大型代码中使用jemalloc,memory,malloc,profiler,Memory,Malloc,Profiler,我有一个庞大的代码分布在大量的文件中。此代码当前正在使用普通malloc 我想在其中实现Jemalloc以获得更好的性能,我还想使用Jemalloc的内存分析器来了解代码中的每个分配是如何发生的,以及在哪里发生的 我已经试了三个多星期了。请帮帮我 提前感谢。在您构建了没有任何前缀的jemalloc之后,您将拥有一个共享库,其中所有malloc系列函数都将重新实现 假设:Linux环境 如果应用程序在单个终端中运行,则可以在运行应用程序之前使用LD_PRELOADenvironment变量预加载j
提前感谢。在您构建了没有任何前缀的
jemalloc
之后,您将拥有一个共享库,其中所有malloc
系列函数都将重新实现
假设:Linux环境
如果应用程序在单个终端中运行,则可以在运行应用程序之前使用LD_PRELOAD
environment变量预加载jemalloc.so
。比如:
export LD_PRELOAD=$LD_PRELOAD:/path/to/jemalloc-build/lib/jemalloc.so.1
对于所有受更改影响的应用程序,您可以在文件
/etc/ld.so.preload
中添加一行新行,其中包含lib的路径。(这在基于Debian的系统中确实有效,但在其他系统上也可能有效)我已经在/usr/local中安装了我的jemalloc,因此他不在“正常”库路径中
安装过程为我创建了一个shell,用于使用jemalloc库启动程序
在某种程度上,它自动化了上面描述的Iulius的过程,但它只对我想要执行的程序使用jemalloc。如果这是预期用途,您可以执行以下操作:
首先,检查路径中是否存在该小脚本:
me@mypc/root#
哪个jemalloc.sh
/usr/local/bin/jemalloc.sh
如果存在,您可以通过以下方式执行程序:
me@mypc/root#
jemalloc.sh您的程序您的程序参数&
您可以阅读/usr/local/bin/jemalloc.sh
,以验证它是否使用了与所述IULIU类似的方法
me@mypc/root#
jemalloc config--help
将帮助您查看jemalloc是如何编译的,以及
me@mypc/root#
jemalloc config--version
将显示您的jemalloc版本
通过这种方式,您可以验证您的程序是否可以与jemalloc一起正常工作,而无需重新编译它们。然后你可以做出最后的决定
乔治。你是如何安装jemalloc的?你是从哪里得到jemalloc的。那么。1?真的很久以前了,对不起。您需要编译Jemalloc。