内存分配器
默认情况下, Rust 使用系统中的 libc 提供的内存分配器, 对于 linux 平台来说, 就是 glibc 里面的 allocator.
但是, Rust 也支持使用自定义的内存分配器.
这里的 Jemalloc
是实现了 alloca::GlobalAlloc
trait 接口的. 该接口只是简单定义了
两个方法:
pub trait GlobalAlloc {
unsafe fn alloc(&self, layout: Layout) -> *mut u8;
unsafe fn dealloc(&self, ptr: *mut u8, layout: Layout);
}
参考
- https://doc.rust-lang.org/stable/edition-guide/rust-next/no-jemalloc.html
- https://doc.rust-lang.org/stable/edition-guide/rust-2018/platform-and-target-support/global-allocators.html
- https://doc.rust-lang.org/std/alloc/trait.GlobalAlloc.html