14个版本
0.5.4 | 2023年7月27日 |
---|---|
0.5.0 | 2022年5月24日 |
0.3.2 | 2019年6月14日 |
0.3.0 | 2019年3月20日 |
0.1.0 | 2016年1月21日 |
#4 在 内存管理 中
419,578 每月下载量
用于 194 个Crate(137个直接使用)
2MB
51K SLoC
tikv-jemallocator
该项目是jemallocator的继任者。
出于历史原因,该项目还以jemallocator
的形式发布。这两个Crate在名称之外完全相同。对于新项目,建议使用tikv-xxx
版本。
链接到
jemalloc
并提供一个实现分配器API的Jemalloc
单元类型,它可以设置为#[global_allocator]
概述
jemalloc
支持生态系统包括以下Crate
tikv-jemalloc-sys
:构建和链接到jemalloc
,向它暴露原始C绑定。tikv-jemallocator
:提供实现GlobalAlloc
和Alloc
特征的Jemalloc
类型。tikv-jemalloc-ctl
:在jemalloc
的控制和内省API(mallctl*()
函数系列和MALLCTL命名空间)之上提供高级包装器
文档
要使用tikv-jemallocator
,请将其添加为依赖项
# Cargo.toml
[dependencies]
[target.'cfg(not(target_env = "msvc"))'.dependencies]
tikv-jemallocator = "0.5"
要将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 |
x86_64-apple-darwin (第一级) |
✓ | ✓ | ✗ |
功能
tikv-jemallocator
crate 重新导出 tikv-jemalloc-sys
依赖的功能。
许可证
本项目根据您的选择,许可为以下之一
- Apache License,版本 2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给 tikv-jemallocator
的任何贡献,根据 Apache-2.0 许可证定义,将作为上述双重许可,没有任何额外的条款或条件。