gcc 程序内存使用分析
来源:互联网 发布:志鸿优化系列赢在高考 编辑:程序博客网 时间:2024/06/05 13:00
前提:
程序使用gcc编译的, 并且编译时加入了-g
命令:
valgrind --vgdb=yes --tool=massif <程序启动命令>
如 valgrind --vgdb=yes --tool=massif ./dbserver 0 0
有两种分析方式:
1) 程序退出是分析运行过程中的内存变化
当程序退出出会生成采样文件 massif.out.<pid> 例如 massif.out.6430
使用ms_print命令把采样文件转成可阅读的文件:
ms_print massif.out.<pid> ><out_file>
如 ms_print massif.out.6430 > ms_print.out.6430
2)程序运行时, 分析当前内存占用
可以使用gdb attach到运行中的程序, 不过由于程序是运行在valgrind环境之下, gdb命令有所改变
在shell中输入:
gdb <程序>
如 gdb dbserver
待gdb加载程序完毕之后, 输入:
target remote | vgdb
这时候gdb就已经attach到程序上了, 除了使用正常的gdb命令之外, 可以使用massif的特殊命令.
一个比较有用的功能是采样当前内存使用情况并输出到文件
在gdb shell中输入
monitor detailed_snapshot
会在当前目录下产出一个massif.vgdb.out 的文件, 即为本次采样数据
0 0
- gcc 程序内存使用分析
- Gcc - c 内存分析
- Gcc - c 内存分析
- Java程序内存分析:使用mat工具分析内存占用
- java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用MAT工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- Java程序内存分析:使用mat工具分析内存占用
- 使用leakcanary分析程序中的内存泄露
- LINUX GCC下sizeof内存情况分析
- Java 程序内存分析
- Java 程序内存分析
- 各种linux系统配置多IP方法整理
- LeetCode 167. Two Sum II - Input array is sorted
- 0121
- 2017年要学习的三个CSS新特性
- 10G/11G/12cr1版本中backup archivelog命令是否会触发归档current logfile操作
- gcc 程序内存使用分析
- 在macOS 10.12 上编译 Android 5.1
- FBI树(提高组)
- Makefile讲解
- PHP Call to undefined function mysql_connect()
- 2017.1.21【初中部 GDKOI】模拟赛B组
- C++的tie()函数
- Tango 开发指南 — 参考帧
- 3D游戏开发之在UE4中创建非玩家角色(NPC)