发明名称 |
一种实现嵌入式实时系统内存泄漏检测和定位的方法 |
摘要 |
本发明属于对计算机性能的改进,具体涉及一种实现嵌入式实时系统内存泄漏检测和定位的方法。通过环形队列注册内存申请、定时扫描以及用户自定义内存扫描时间,使得内存泄露检测所耗系统资源非常少并且不会出现瞬间的高峰。采用用户自定义内存生存期,就可以减少内存泄漏检查的误报,并且由于只对超出了最长生存期的内存进行报告,这样在实际运行中报告的信息量非常少,大大减少了定位和判断内存泄漏的时间,从而节省了大量人力,提高了调试和测试系统的效率。本发明不但可用于调试和测试阶段,而且在产品阶段也可以应用,由于该方法系统消耗资源非常少,用户又可以根据情况来决定是否启动,因此提高了实时操作系统的稳定性和可靠性。 |
申请公布号 |
CN1327352C |
申请公布日期 |
2007.07.18 |
申请号 |
CN200410006956.9 |
申请日期 |
2004.03.01 |
申请人 |
中兴通讯股份有限公司 |
发明人 |
王陈;黄烨明;危才华;芦东昕;缪敬;左雪梅 |
分类号 |
G06F11/34(2006.01);G06F9/46(2006.01) |
主分类号 |
G06F11/34(2006.01) |
代理机构 |
|
代理人 |
|
主权项 |
1、一种实现嵌入式实时系统内存泄漏检测和定位的方法,至少包括如下步骤:第一步:建立一个由队列项所构成的循环队列,所述循环队列有一个游标,游标所指向的队列项为当前时间,游标每隔指定时间,往下走一格;第二步:在申请内存时,同时申请内存泄漏管理块,用于填写相关信息,并且在所述申请的内存头中附加一个指针,用于指向内存泄漏管理块;第三步:根据用户在申请内存时规定的内存最长生存期,当所述内存最长生存期超过循环队列总长度时,用该生存期整除循环队列总长度得到循环圈数,当循环圈数为0,确定发生了泄漏;计算出该申请内存在循环队列中的位置,并在该位置进行注册,即在该位置挂上内存泄漏管理块,由所有在该位置的内存泄漏管理块组成双向链表,利用遍历队列项所指的内存泄漏管理块组成的双向链表来对内存泄漏进行定位。 |
地址 |
518057广东省深圳市南山区高新技术产业园科技南路中兴通讯大厦 |