6个版本
| 0.6.0 | 2024年7月14日 |
|---|---|
| 0.5.4 | 2023年7月27日 |
| 0.5.0 | 2022年5月24日 |
| 0.4.3 | 2022年2月21日 |
| 0.4.0 | 2020年7月21日 |
#6 在 内存管理
984,674 每月下载量
在 139 个crates(90个直接)中使用
2MB
51K SLoC
tikv-jemallocator
该项目是 jemallocator 的后继者。
由于历史原因,该项目也以 jemallocator 的名称发布。这两个crates除了名称外都是相同的。对于新项目,建议使用 tikv-xxx 版本。
链接到
jemalloc并提供一个Jemalloc单元类型,该类型实现了分配器API,可以设置为#[global_allocator]
概览
jemalloc 支持生态系统包括以下crates
tikv-jemalloc-sys:构建并链接到jemalloc,暴露原始C绑定。tikv-jemallocator:提供Jemalloc类型,该类型实现了GlobalAlloc和Alloc特性。tikv-jemalloc-ctl:对jemalloc的控制和内省API的高级包装(mallctl*()函数系列和 MALLCTL 命名空间)
文档
要使用 tikv-jemallocator,请将其作为依赖项添加
# Cargo.toml
[dependencies]
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = "0.6"
要将 tikv_jemallocator::Jemalloc 设置为全局分配器,请将以下内容添加到项目中
// main.rs
#[cfg(not(target_env = "msvc"))]
use tikv_jemallocator::Jemalloc;
#[cfg(not(target_env = "msvc"))]
#[global_allocator]
static GLOBAL: Jemalloc = Jemalloc;
这就完成了!一旦你定义了这个 static,jemalloc 将会用于同一程序中由 Rust 代码请求的所有分配。
平台支持
以下表格描述了支持的平台
build:库是否能在目标平台上编译?run:在目标平台上,tikv-jemallocator和tikv-jemalloc-sys的测试是否通过?jemalloc:在目标平台上,tikv-jemalloc的测试是否通过?
一级目标平台在所有 Rust 频道(稳定版、Beta 版和 Nightly 版)上进行测试。其他所有目标平台只在 Rust Nightly 上进行测试。
| Linux 目标平台 | build | run | jemalloc |
|---|---|---|---|
aarch64-unknown-linux-gnu |
✓ | ✓ | ✗ |
powerpc64le-unknown-linux-gnu |
✓ | ✓ | ✗ |
x86_64-unknown-linux-gnu(一级目标平台) |
✓ | ✓ | ✓ |
| MacOSX 目标平台 | build | run | jemalloc |
aarch64-apple-darwin |
✓ | ✓ | ✗ |
功能
tikv-jemallocator 包导出 tikv-jemalloc-sys 依赖的 功能。
许可证
本项目根据您的选择,受以下许可证之一保护
- Apache 许可证 2.0 版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交给 tikv-jemallocator 的任何有意贡献都将根据上述方式双重许可,而不附加任何额外条款或条件。