首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >massif能否衡量全局/静态数据成本?

massif能否衡量全局/静态数据成本?
EN

Stack Overflow用户
提问于 2017-06-10 00:08:41
回答 1查看 144关注 0票数 0

我看到massif可以测量堆的使用情况,也可以使用一些选项来衡量堆栈的使用情况。它是否也报告全局数据消耗(定义为全局变量或静态变量的数据)?

EN

回答 1

Stack Overflow用户

发布于 2017-06-10 00:26:02

是否还报告全局数据消耗(定义为全局变量或静态变量的数据)?

不,Massif是仅限堆的工具,不测量.data和.bss段,以及直接映射的内存(但它可以测量用于存储某些局部变量和alloca的堆栈):

http://valgrind.org/docs/manual/ms-manual.html

Massif是一个堆分析器。它测量你的程序使用了多少堆内存。这包括有用的空间,以及为记账和对齐目的而分配的额外字节。它还可以测量程序堆栈的大小,尽管它在默认情况下不会这样做。..。

9.2.8。测量进程中的所有内存

值得一提的是,默认情况下,Massif仅测量堆内存,即使用malloccallocreallocmemalignnewnew[]和其他一些类似函数分配的内存。(当然,它还可以选择测量堆栈内存。)这意味着它不会直接测量使用低级系统调用(如mmapmremapbrk )分配的内存。..。

--stacks=<yes|no> [default: no]

指定是否应执行堆栈分析。此选项会大大降低体量的速度,因此默认情况下处于禁用状态。请注意,Massif假设主堆栈在启动时大小为零。这不是真的,但准确地做其他事情是困难的。此外,从零开始更好地指示用户程序实际控制的主堆栈部分的大小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44462336

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档