Rust支持2个内存分配器(allocator):alloc_system和alloc_jemalloc。
alloc_jemalloc不支持valgrind,valgrind是查看内存泄漏很有帮助的工具,所以在定位内存泄漏问题时,需要切换成alloc_system。
The Rust Programming Language 第一版上的说明已经过时了,只写
#![feature(alloc_system)]
extern crate alloc_system;
是不够的,The Unstable Book 中的说明是目前版本中可用的。
#![feature(alloc_system, global_allocator, allocator_api)]
extern crate alloc_system;
use alloc_system::System;
#[global_allocator]
static A: System = System;
需要在main文件开头写。