Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
阿桑手下的Redis和jemalloc_Redis_Malloc_Sanitizer - Fatal编程技术网

阿桑手下的Redis和jemalloc

阿桑手下的Redis和jemalloc,redis,malloc,sanitizer,Redis,Malloc,Sanitizer,我正在以4种不同的方式编译Redis 3.0.6: 杰马洛克 马洛克图书馆 asan+jemalloc(-fsanize=address-fno省略帧指针) asan+libc-malloc 然后我在所有这些二进制文件下运行标准的redis bench。我不明白的是,场景3的性能非常接近场景1 有人能给我解释一下这是怎么可能的吗?我在asan手册中没有发现任何不支持jemalloc或相关内容的内容。您没有提供确切的复制案例,但我猜您 使用GCC 使用LD_PRELOAD链接到jemalloc

我正在以4种不同的方式编译Redis 3.0.6:

  • 杰马洛克
  • 马洛克图书馆
  • asan+jemalloc(
    -fsanize=address-fno省略帧指针
  • asan+libc-malloc
  • 然后我在所有这些二进制文件下运行标准的
    redis bench
    。我不明白的是,场景
    3
    的性能非常接近场景
    1


    有人能给我解释一下这是怎么可能的吗?我在asan手册中没有发现任何不支持jemalloc或相关内容的内容。

    您没有提供确切的复制案例,但我猜您

    • 使用GCC
    • 使用LD_PRELOAD链接到jemalloc
    在这种情况下,jemalloc的分配器将覆盖ASan的拦截器,堆分配将不会被检查(这将解释为什么运行不会减慢)。相反,您应该将可执行文件与jemalloc静态链接:

    LDFLAGS += -ljemalloc
    
    我认为理想情况下,ASan在拦截堆分配器失败时应该报告一个有用的警告,这样您就可以在他们的github上提交一个bug