前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >检测应用的内存泄漏情况(shell)

检测应用的内存泄漏情况(shell)

作者头像
jianghaibobo
发布2019-08-02 14:24:37
8280
发布2019-08-02 14:24:37
举报

写代码——调试——修BUG

改来改去可能还存在一些没发现的问题,在工程量大的时候更容易出现,例如内存泄漏这样的问题,严重影响着系统性能。

网上有些检测C程序是否存在内存泄漏的工具还不错的,例如valgrind。

为解决服务器中运行的应用是否存在内存泄漏问题,编写了脚本来进行检测。

思路如下:

01. 文件1:ProcessList,用来保存需要内存泄漏检测的应用程序名,通过文件2:TestManage来管理,通过./TestManage -a 应用名 来添加或者./TestManage -d 应用名 来去除。

02. 文件3:MemoryLeakTest, 主程序。 首先清空文件4:RSSList(用来保存进程的内存检测结果)和文件5: LeakMemory.log(用来保存存在内存泄漏的应用名)。

03. 开始循环1,循环6次,每次循环通过文件1中的全部应用程序名—进程号—status文件得到占用内存大小,保存与文件4中,每次循环间隔1800秒,因此总计2个半小时。

04. 第三步结束后根据文件4中保存的所有应用程序的6次内存大小,相邻两个比较,若后面的大于前面的10%,flag变量值+1,共比较5次,若flag大于等于4,则认定该应用存在内存泄漏。

shell笔记:

01. sed用法:

  在匹配字符串下一行添加:sed -i /$str/a\ "$str_new" $filename

  在匹配字符串上一行添加:sed -i "/$str/i\\$str_new" $filename $str_new前的一个\是为转义

  两个变量用下划线连接:${str1}_${str2}

02.

代码语言:javascript
复制
grep -m m "$str1" |awk -F $str2 '{print $p}'| sed -n "np"

匹配前m行个str1,在包含str2后的第p列,取第n行。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-17 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档