版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1深圳大学深圳大学-冯禹洪冯禹洪: Linux下如何检测内存泄露和分析内存使用下如何检测内存泄露和分析内存使用基础题基础题 (70分)分)进阶题进阶题 (30分)分)2深圳大学深圳大学-冯禹洪冯禹洪: 基础题基础题 3深圳大学深圳大学-冯禹洪冯禹洪: 什么是内存泄露什么是内存泄露?n以下说法哪个正确以下说法哪个正确? ?l 应用程序在分配某段内存后,由于程序使用错误造成物理内存的缺失A. 应用程序在分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费4深圳大学深圳大学-冯禹洪冯禹洪: 什么是内存泄露什么是内存泄露? ?n 指的是指的是堆内存堆内存的泄露的泄露, ,堆内存是
2、指程序从堆中分配堆内存是指程序从堆中分配的的, ,任意大小的使用后必须任意大小的使用后必须显式释放显式释放的内存的内存l分配: malloc, calloc, realloc, newl释放: free, deleten 由于疏忽或错误造成程序未能释放已经不再使用由于疏忽或错误造成程序未能释放已经不再使用的内存的情况的内存的情况5深圳大学深圳大学-冯禹洪冯禹洪: Linux下检查内存泄露下检查内存泄露n 内存泄露的主要表现及其危害内存泄露的主要表现及其危害l当程序连续运行时,与程序相关的内存(或堆)变的越来越大l内存泄露会减少可用内存的数量从而降低计算机的性能l当所消耗的内存达到系统的上限时候
3、,自己会崩溃,严重者导致系统挂起或崩溃6深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (一一)7深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (一一)8深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)9深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)10深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)n ps:显示瞬间进程的状态n 常用参数:l: 长格式输出u: 按用户名和启动时
4、间的顺序来显示进程j: 用任务格式来显示进程f: 用树形格式来显示进程a: 显示所有用户的所有进程x: 显示无控制终端的进程r: 显示运行中的进程ww: 避免详细参数被截断11深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)n ps使用范例 $ps /列出当前shell里当前用户的进程 $ps u yuhong /列出用户yuhong运行的所有进程 $ps el /以详细列表方式显示运行的所有进程 $ps aux /以详细的BSD风格显示运行的所有进程%MEM: 占用的内存的使用率VSZ : 虚拟内存大小,即一个程序完全驻留在内存的话需要占用多 少
5、内存空间RSS: 当前实际占用了多少内存STAT: 进程当前状态 12深圳大学深圳大学-冯禹洪冯禹洪: 进程的状态进程的状态n TASK_RUNNING(运行)n TASK_INTERRUPTIBLE(可中断)n TASK_UNINTERRUPTIBLE(不可中断)n TASK_ZOMBIE(僵死) n TASK_STOPPED(停止)R RS SD DZ ZT Tn 后缀l ( (高优先级进程高优先级进程) )l N (N (低优先级进程低优先级进程) )l L (L (内存锁页内存锁页) )l s (s (该进程为会话首该进程为会话首进程进程) ) l + (+ (前台进程前台进程) )l
6、 l (l (多线程进程多线程进程) )如果有进程状态为Ssl?13深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)http:/ 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)n top:按序显示正在执行的进程 $ top - d delay p pid q c C S s i n iter b uptime行,系统重新引导至今的时间、用户数、负载平均数 第二行, 进程统计行:进程总数,sleeping, running, zombie和stopping进程数 第三行, CPU统计数据:用户、系统、nice以及空闲进程所 占CPU时间
7、的百分比 第四行, 存储器的统计数据:可用内存总数、自由内 存、使用的内存、共享内存,用于缓存空间 第五行, 虚拟内存或交换区统计数据:可用总交换区、使 用的交换区、自由交换区以及缓存交换区 自此以下,类似于PS格式15深圳大学深圳大学-冯禹洪冯禹洪: 以下程序会发生内存泄露吗以下程序会发生内存泄露吗? (二二)16深圳大学深圳大学-冯禹洪冯禹洪: Linux下检查内存泄露下检查内存泄露n ps aux, topn 静态分析工具静态分析工具 mtracel 在main.c代码中嵌入: #include mtrace(); /*要检查是否会有内存泄露的代码段要检查是否会有内存泄露的代码段*/ m
8、untrace();l 编译运行 $gcc o main main.c $export MALLOC_TRACE=./log /用该环境变量来定义一个文件log用于输出 $./main $cat log17深圳大学深圳大学-冯禹洪冯禹洪: Log文件分析文件分析18深圳大学深圳大学-冯禹洪冯禹洪: Linux下检查内存泄露下检查内存泄露n ps aux, topn 静态分析工具 mtracen 动态分析l Valgrindu 访问 Valgrind HOW TO 站点 /HOWTO/Valgrind-HOWTO/u Steve Best,“Debugging Memory Problems”(Linux Magazine,2003.05)l Memwatchl Electric fencen 更多.l LeakTracer Linux,Solaris和HP-UX下跟踪和分析程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中国互联网+x86 服务器项目经营分析报告
- 2026年中国电火锅电商项目经营分析报告
- 2025黑龙江哈尔滨“丁香人才周”(春季) 民兵教练员补充招聘20人考试笔试模拟试题及答案解析
- 2026湖北省定向西安电子科技大学选调生招录笔试考试备考试题及答案解析
- 福建医科大学《景观快题训练》2024-2025学年第一学期期末试卷
- 2025年湖南省炎德英才大联考高二上生物期末复习检测试题含解析
- 2025吉州区政府发展研究服务中心招聘见习人员1人考试笔试备考试题及答案解析
- 液氮生物智能储存系统项目商业计划书
- 幼儿生活自理能力培养穿脱盥洗保育活动计划
- 2025江苏徐州市泉山区城北社区服务中心招聘12人笔试考试参考试题附答案解析
- 新造船合同(标准版)
- 2025年秋外研版(三起)(2024)小学英语三年级上册期中考试模拟试卷及答案
- 《2025年浙江公务员录用审计专业试卷(审计监督)》
- 厦门市总工会招聘工会专干和集体协商指导员笔试真题2024
- 地理环境保护与发展+课件-2025-2026学年八年级地理上学期(人教版2024)
- 2025-2026学年人教PEP版(2024)小学英语三年级上册期中检测试卷及答案
- 初中男生性教育指南
- 军队文职护理岗考试题库及答案解析
- 物业公司安全生产奖惩管理办法
- 卫星姿态控制课件
- 煤矿爆破工安全风险分级管控清单
评论
0/150
提交评论