一种内存操作记录的处理方法及装置制造方法及图纸

技术编号:8105659 阅读:239 留言:0更新日期:2012-12-21 04:18
本申请提供了一种内存操作记录的处理方法及装置,所述方法包括:工作线程模块将内存操作记录写入预先设置的内存操作记录池中;所述内存操作记录包括:当前内存分配记录和/或内存释放记录;内存操作记录读取线程模块从所述内存操作记录池中读取内存操作记录,并判断所述内存操作记录是否为内存分配记录,如果是,则将所述内存分配记录插入至所述内存操作记录映射表中,如果否,则从所述内存操作记录映射表中删除该条内存释放记录的内存地址指示的映射关系。本申请实施例通过预先分配内存操作记录池,可以解决内存操作记录的完整性较低以及被测程序性能降低导致的系统资源开销较大的问题。

【技术实现步骤摘要】

本申请涉及计算机
,特别涉及一种内存操作记录的处理方法及装置
技术介绍
在软件开发过程中常常产生一些内存泄漏现象,例如,在程序运行中向操作系统申请了一块内存,但在使用完成后没有释放,导致这块内存既不在操作系统的空闲内存池中,也不在当前程序的使用中,这样就会使得可用内存变少,而开发出的软件在使用中也往往导致过高的内存占用和性能下降。 为了检测内存泄漏现象,就需要跟踪程序中所有的内存分配,现有技术中有一种检测内存泄露的方法,具体为开发一个动态链接库(DLL),注入到待检测的程序进程中,拦截(hook)所有的内存分配和内存释放函数,使之对原始内存分配或释放的调用可以被DLL截获,进而可以在分配内存时,记录下本次分配的内存地址、大小或调用堆栈等信息,并保存在一个合适的容器中;并当内存释放时,根据被释放的内存地址从容器中删除相应的记录。这样就可以在需要检查内存是否有泄漏时,查看留在容器中的内存记录即可。但是在检测内存泄漏过程中,“保存内存分配的信息到一个容器中”这个操作往往引起新的内存分配,因为保存一条记录到一个容器中往往需要为这条记录分配一块新的内存。而新的内存分配也会被截获并被记本文档来自技高网...

【技术保护点】
一种内存操作记录的处理方法,其特征在于,所述方法应用于内存操作记录的处理装置,所述处理装置包括:内存操作记录池、内存操作记录读取线程模块、内存操作记录映射表和多个工作线程模块,所述内存操作记录池用于存储内存分配记录,所述内存操作记录映射表用于保存内存操作记录与其涉及的内存地址之间的映射关系;该方法包括:所述工作线程模块将内存操作记录写入预先设置的内存操作记录池中;所述内存操作记录包括:当前内存分配记录和/或内存释放记录;所述内存操作记录读取线程模块从所述内存操作记录池中读取内存操作记录,并判断所述内存操作记录是否为内存分配记录,如果是,则将所述内存分配记录插入至所述内存操作记录映射表中,如果否...

【技术特征摘要】

【专利技术属性】
技术研发人员:唐红兵邵有石
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1