小编Red*_*ain的帖子

使用Massif用valgrind测量时,Rust程序的堆大小非常大

我正在尝试测量正在编写的rust程序的内存大小。我注意到当我使用以下命令测量堆大小时:

valgrind --tool=massif --pages-as-heap=yes ./program

并使用ms_print测量,内存大小非常大(通常约为16MB)。最终,我将rust程序简化为一个空的main函数:

fn main() {
}
Run Code Online (Sandbox Code Playgroud)

我编译后,仍然有16MB的内存大小。我注意到当我使用另一台计算机时,相同的二进制文件总大小为4MB。我的一位朋友在他的计算机上使用相同的程序尝试了此操作,并使用了相同的rust / valgrind版本,并且还获得了4MB的大小。

我想象这是可能在堆中使用的某种预分配内存,但是我无法找到任何控制它的方法。我什至尝试按照指南更改分配器,但没有任何更改。

系统细节:

OS version       = Ubuntu 18.04
valgrind version = valgrind-3.13.0
cargo version    = cargo 1.39.0-nightly (3f700ec43 2019-08-19)
rustc version    = rustc 1.39.0-nightly (e44fdf979 2019-08-21)
ms_print         = ms_print-3.13.0
libc version     = ldd (Ubuntu GLIBC 2.27-3ubuntu1) 2.27
Run Code Online (Sandbox Code Playgroud)

valgrind rust massif

2
推荐指数
1
解决办法
115
查看次数

标签 统计

massif ×1

rust ×1

valgrind ×1