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 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(LICENSE-MIT 或 http://opensource.org/licenses/MIT)
。
贡献
除非您明确表示,否则根据 Apache-2.0 许可证定义,您提交给 tikv-jemallocator
的任何有意贡献都将根据上述方式双重许可,而不附加任何额外条款或条件。