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 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 https://open-source.org.cn/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您提交给 tikv-jemallocator 的任何贡献,根据 Apache-2.0 许可证定义,将作为上述双重许可,没有任何额外的条款或条件。