Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在以 4 种不同的方式编译 Redis 3.0.6:
-fsanitize=address -fno-omit-frame-pointer
然后我redis-bench在所有这些二进制文件下运行标准。我不明白的是,场景3的性能非常接近场景1。
redis-bench
3
1
有人可以向我解释这怎么可能?我在 asan 手册上没有找到任何不支持 jemalloc 或相关内容的内容。
您没有提供确切的复制案例,但我的猜测是您
在这种情况下,jemalloc 的分配器将覆盖 ASan 的拦截器,并且不会检查堆分配(这将解释您的运行速度不会减慢)。相反,您应该将可执行文件与 jemalloc 静态链接:
LDFLAGS += -ljemalloc
我认为理想情况下,当 ASan 未能拦截堆分配器时,它应该报告一个有用的警告,因此您可能想在他们的 github 上提交一个错误。