- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux下如何检查内存泄露 什么是内存泄露? 以下说法哪个正确? 应用程序在分配某段内存后,由于程序使用错误造成物理内存的缺失 应用程序在分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费 什么是内存泄露? 指的是堆内存的泄露,堆内存是指程序从堆中分配的,任意大小的使用后必须显式释放的内存 分配: malloc, calloc, realloc, new 释放: free, delete 由于疏忽或错误造成程序未能释放已经不再使用的内存的情况 Linux下检查内存泄露 内存泄露的主要表现及其危害 当程序连续运行时,与程序相关的内存(或堆)变的越来越大 内存泄露会减少可用内存的数量从而降低计算机的性能 当所消耗的内存达到系统的上限时候,自己会崩溃,严重者导致系统挂起或崩溃 以下程序会发生内存泄露吗? (一) 以下程序会发生内存泄露吗? (一) 以下程序会发生内存泄露吗? (二) 以下程序会发生内存泄露吗? (二) 以下程序会发生内存泄露吗? (二) ps:显示瞬间进程的状态 常用参数: l: 长格式输出 u: 按用户名和启动时间的顺序来显示进程 j: 用任务格式来显示进程 f: 用树形格式来显示进程 a: 显示所有用户的所有进程 x: 显示无控制终端的进程 r: 显示运行中的进程 ww: 避免详细参数被截断 以下程序会发生内存泄露吗? (二) ps使用范例 $ps //列出当前shell里当前用户的进程 $ps –u yuhong //列出用户yuhong运行的所有进程 $ps –el //以详细列表方式显示运行的所有进程 $ps aux //以详细的BSD风格显示运行的所有进程 进程的状态 TASK_RUNNING(运行) TASK_INTERRUPTIBLE(可中断) TASK_UNINTERRUPTIBLE(不可中断) TASK_ZOMBIE(僵死) TASK_STOPPED(停止) 以下程序会发生内存泄露吗? (二) 以下程序会发生内存泄露吗? (二) top:按序显示正在执行的进程 $ top [-] [d delay] [p pid] [q] [c] [C] [S] [s] [i] [n iter] [b] uptime行,系统重新引导至今的时间、用户数、负载平均数 第二行, 进程统计行:进程总数,sleeping, running, zombie和stopping进程数 第三行, CPU统计数据:用户、系统、nice以及空闲进程所 占CPU时间的百分比 第四行, 存储器的统计数据:可用内存总数、自由内 存、使用的内存、共享内存,用于缓存空间 第五行, 虚拟内存或交换区统计数据:可用总交换区、使 用的交换区、自由交换区以及缓存交换区 自此以下……,类似于PS格式 以下程序会发生内存泄露吗? (二) Linux下检查内存泄露 ps –aux, top 静态分析工具 – mtrace 在main.c代码中嵌入: #include mcheck.h … mtrace(); /*要检查是否会有内存泄露的代码段*/ muntrace(); 编译运行 $gcc –o main main.c $export MALLOC_TRACE=./log //用该环境变量来定义一个文件log用于输出 $./main $cat log Linux下检查内存泄露 ps –aux, top 静态分析工具 – mtrace 动态分析 Valgrind 访问 Valgrind HOW TO 站点 /HOWTO/Valgrind-HOWTO/ Steve Best,“Debugging Memory Problems”(Linux Magazine,2003.05) Memwatch Electric fence * 深圳大学-冯禹洪: yuhongf@ %MEM: 占用的内存的使用率 VSZ : 虚拟内存大小,即一个程序完全驻留在内存的话需要占用多 少内存空间 RSS: 当前实际占用了多少内存 STAT: 进程当前状态 R S D Z T 后缀 (高优先级进程) N (低优先级进程) L (内存锁页) s (该进程为会话首进程) + (前台进程) l (多线程进程) 如果有进程状态为Ssl?
您可能关注的文档
- linuxapacheoraclephpphp-java-bridge简单编程实例.ppt
- LinuxShell编程与Qt程序设计.pptx
- linuxgdb与shell命令.ppt
- Linux上的XWindow系统介绍.ppt
- linux、oracle简单维护.ppt
- Linux下套接字编程.ppt
- Linux下的C编程[xiwang].ppt
- LINUX下的C语言编程.ppt
- Linux下的DNS配置.ppt
- linux下的常用命令与文本编辑器vi.pptx
- 讲稿:深入理解“五个注重”把握进一步深化改革统筹部署以钉钉子精神抓好落实.pdf
- 副市长在2025年全市医疗工作会议上的讲话.docx
- 2025年市县处级以上党委(党组)理论学习中心组专题学习计划.docx
- 市民族宗教事务局党组书记、局长2024年度民主生活会个人对照检视发言材料.docx
- 烟草局党组书记2024年度抓基层党建工作述职报告.docx
- (汇编)学习2025年全国教育工作会议精神心得体会发言心得感悟.pdf
- 汇编学习领会在二十届中纪委四次全会上的重要讲话精神心得体会.pdf
- 在2025年镇安全生产、消防安全和生态环境保护第一次全体会议上的讲话提纲.docx
- 书记干部座谈会上的讲话+纪委全会上的讲话.pdf
- 党课:从毛泽东诗词中感悟共产党人初心使命.docx
最近下载
- 心衰完整课件.pptx VIP
- 2025年广东省基层住院医师线上岗位培训《中医康复学》-中医学专业培训课程专业课答案.docx VIP
- 设计软件操作技能测试考核试卷.docx
- Hillstone防火墙5.5R2版本操作手册.doc
- 2025年广东省基层住院医师线上岗位培训《卫生法律法规》-中医学专业培训课程公共课答案.docx VIP
- 2024年中国L-缬氨酸行业调查报告.docx
- 自动识别技术及应用(高职)全套教学课件.pptx
- 高中数学第二章数列2.2等差数列说课全国公开课一等奖百校联赛微课赛课特等奖PPT课件.pptx VIP
- 2025年广东省基层住院医师线上岗位培训《中医养生保健学》-中医学专业培训课程专业课答案.docx VIP
- 精神科护理说课.pptx
文档评论(0)