写代码——调试——修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.

grep -m m "$str1" |awk -F $str2 '{print $p}'| sed -n "np"

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

检测应用的内存泄漏情况(shell)的更多相关文章

  1. valgrind检查代码内存泄漏,5种内存泄漏情况

    摘要: valgrind是linux下用于调试程序和查找内存泄露的常用工具.valgrind会报告5种内存泄露,"definitely lost", "indirectl ...

  2. 移植Valgrind检测Android JNI内存泄漏

    1.相关工具 Valgrind:从Valgrind官网下载最新的源码包,我这里用的是:valgrind 3.14.0 (tar.bz2) [17MB] - 9 October 2018. Ubuntu ...

  3. Android性能优化之利用LeakCanary检测内存泄漏及解决办法

    前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...

  4. eclipse 检测App的内存占用和泄漏【转载】

    前段时间开发的Android应用,每次都是在运行了半个小时左右后突然挂掉了,很是莫名其妙,也不知道哪里出了问题,后来一步步排查,发现问题出在JNI层,一个被频繁调用的函数分配的内存忘记释放,导致内存泄 ...

  5. C/C++内存泄漏及检测 转

    C/C++内存泄漏及检测 2011-02-20 17:51 by 吴秦, 30189 阅读, 13 评论, 收藏, 编辑 “该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏, ...

  6. VC使用CRT调试功能来检测内存泄漏

    信息来源:csdn     C/C++ 编程语言的最强大功能之一便是其动态分配和释放内存,但是中国有句古话:“最大的长处也可能成为最大的弱点”,那么 C/C++ 应用程序正好印证了这句话.在 C/C+ ...

  7. C++内存泄漏检测工具

    C++内存泄漏检测工具 1.VC自带的CRT:_CrtCheckMemory   调试器和 CRT 调试堆函数 1.1用法: /************************************ ...

  8. 【转】C/C++内存泄漏及检测

    “该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败.内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用ma ...

  9. 【Android内存泄漏检测】LeakCanary使用总结

    一.什么是LeakCanary? LeakCanary就是用来检测Android端内存泄漏的一个工具.能够检测Activity的泄漏 什么是内存泄漏? Java 对象有时也会”长死不死“,GC 拿它没 ...

随机推荐

  1. EXISTS/NOT EXISTS CASE WHEN等使用方法

    --简单判断用法 WHERE EXISTS (SELECT * FROM cpay..System_Setting) --可以替换count ) FROM cpay..System_Setting U ...

  2. webpack2使用ch9-处理模板文件 .html .ejs .tpl模板使用

    1 目录展示 安装依赖 "ejs-loader": "^0.3.0","html-loader": "^0.4.5", ...

  3. samba的安装和配置

    samba是Linux系统上的一种文件共享协议,可以实现Windows系统访问Linux系统上的共享资源,现在介绍一下如何在Ubuntu 14.04上安装和配置samba 实验环境 Ubuntu 14 ...

  4. WPF加载程序集中字符串资源

    WPF资源 WPF资源使用其实的也是resources格式嵌入资源,默认的资源名称为"应用程序名.g.resources",不过WPF资源使用的pack URI来访问资源. 添加图 ...

  5. PHP Server Nginx 安装

    1. PHP 安装: http://jingyan.baidu.com/article/b2c186c8f16d05c46ef6ff3c.html PHP 问题: http://www.cnblogs ...

  6. win10 uwp 毛玻璃

    毛玻璃在UWP很简单,不会和WPF那样伤性能. 本文告诉大家,如何在 UWP 使用 win2d 做毛玻璃. 毛玻璃可以使用 win2D 方法,也可以使用 Compositor . 使用 win2d 得 ...

  7. Loadrunner Webservice接口性能测试脚本编写优化总结

    本文主要介绍使用Loadrunner Webservice接口性能测试脚本编写及优化总结. 1.Webservice协议脚本编写流程 下面介绍使用Loadrunner 11调用Webservice接口 ...

  8. [maven(1)]myeclipse2014下如何配置maven

    1.maven工程下载,解压压缩包到某一目录中 2.配置环境变量 在电脑环境变量中新建M2_HOME M2_HOME:D:\MAVEN\apache-maven-3.3.9(类似Java_Home) ...

  9. 217. Contains Duplicate (leetcode)

    Given an array of integers, find if the array contains any duplicates. Your function should return t ...

  10. LeetCode 54. Spiral Matrix(螺旋矩阵)

    Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral or ...