⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
jemalloc 扩展

jemalloc 扩展用 jemalloc 替换系统的内存分配器。与其他 DuckDB 扩展不同的是,jemalloc 扩展是静态链接的,不能在运行时安装或加载。

操作系统支持

jemalloc 扩展的可用性取决于操作系统。

Linux

DuckDB 的 Linux 版本附带 jemalloc 扩展。要禁用 jemalloc 扩展,请从源代码构建 DuckDB 并按如下方式设置 SKIP_EXTENSIONS 标志:

GEN=ninja SKIP_EXTENSIONS="jemalloc" make

macOS

DuckDB 的 macOS 版本不附带 jemalloc 扩展,但可以从源代码构建以包含它。

GEN=ninja BUILD_JEMALLOC=1 make

Windows

在 Windows 上,此扩展不可用。

配置

环境变量

DuckDB 中的 jemalloc 分配器可以通过 MALLOC_CONF 环境变量进行配置。

后台线程

默认情况下,jemalloc 的后台线程是禁用的。要启用它们,请使用以下配置选项:

SET allocator_background_threads = true;

后台线程异步清理未完成的分配,这样就不必由前台线程同步完成。这提高了分配性能,在内存分配密集型工作负载中应该很明显,尤其是在多核 CPU 上。