zoukankan      html  css  js  c++  java
  • 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=
  • 相关阅读:
    Java中List集合去除重复数据的六种方法
    常见的Redis面试"刁难"问题,值得一读
    以Integer类型传参值不变来理解Java值传参
    Linux系统安装snmp服务
    直接取数据到RANGE
    SAP翔子_2019集结号
    销售订单BOM组件分配(CP_BD_DIRECT_INPUT_PLAN_EXT)
    SAP翔子_webservice篇索引
    函数篇3 EXCEL导入函数去除行数限制
    ABAP基础篇4 常用的字符串操作语法
  • 原文地址:https://www.cnblogs.com/zl1991/p/15691588.html
Copyright © 2011-2022 走看看