CN109542778A - 一种资源泄露检测的方法及装置 - Google Patents

一种资源泄露检测的方法及装置 Download PDF

Info

Publication number
CN109542778A
CN109542778A CN201811339180.0A CN201811339180A CN109542778A CN 109542778 A CN109542778 A CN 109542778A CN 201811339180 A CN201811339180 A CN 201811339180A CN 109542778 A CN109542778 A CN 109542778A
Authority
CN
China
Prior art keywords
resource
data
resource data
code
manipulation type
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201811339180.0A
Other languages
English (en)
Inventor
周璐
戴康
吕苏
欧鹏
翟威
陆寄豪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Unionpay Co Ltd
Original Assignee
China Unionpay Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by China Unionpay Co Ltd filed Critical China Unionpay Co Ltd
Priority to CN201811339180.0A priority Critical patent/CN109542778A/zh
Publication of CN109542778A publication Critical patent/CN109542778A/zh
Priority to PCT/CN2019/098711 priority patent/WO2020098311A1/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/366Software debugging using diagnostics

Abstract

本发明公开了一种资源泄露检测的方法及装置,该方法包括获取资源数据,资源数据是位于应用程序的预设代码位置上的资源获取代码发送的,资源数据包括数据操作类型和唯一标识,根据资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对资源数据进行匹配,资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系,若匹配失败,则确定资源数据存在异常。通过预设的资源申请操作和资源释放操作的对应关系来匹配获取的资源数据,当匹配失败后,可以确定资源数据存在异常,由于无需改变应用程序的源代码,做到在应用程序无感知的情况下完成资源泄露检测,降低了对应用程序代码的影响,提高资源泄露检测的准确性。

Description

一种资源泄露检测的方法及装置
技术领域
本发明实施例涉及代码检测技术领域,尤其涉及一种资源泄露检测的方法及装置。
背景技术
资源泄漏指程序在运行过程中申请了某项资源,如内存、文件句柄、数据库连接等,但在资源使用结束后没有进行释放,使得资源无法被回收和再利用,导致程序占用资源随运行时间不断增长的现象。资源泄漏持续消耗系统资源,轻则导致程序运行速度不断减慢,而一旦泄漏资源达到可用资源上限,会引起应用崩溃、系统宕机、服务器瘫痪等严重后果。
由于资源使用情况对于开发、测试、用户不是直观可见的,且资源泄漏早期对于应用程序功能无直接影响,在可用资源达到上限前,存在泄漏现象的程序运行情况可能完全正常,因此一直以来资源泄漏问题难以被识别和定位,而一旦爆发基本上都会造成灾难性的后果。资源泄漏问题已成为业界痛点。
发明内容
本发明实施例提供一种资源泄露检测的方法及装置,用以实现无需改变应用程序的源代码,降低了对应用程序代码的影响,提高资源泄露检测的准确性。
本发明实施例提供的一种资源泄露检测的方法,包括:
获取资源数据,所述资源数据是位于应用程序的预设代码位置上的资源获取代码发送的;所述资源数据包括数据操作类型和唯一标识;
根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配;所述资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系;
若匹配失败,则确定所述资源数据存在异常。
通过预设的资源申请操作和资源释放操作的对应关系来匹配获取的资源数据,当匹配失败后,可以确定资源数据存在异常,由于无需改变应用程序的源代码,做到在应用程序无感知的情况下完成资源泄露检测,降低了对应用程序代码的影响,提高资源泄露检测的准确性。
可选的,所述根据所述资源数据的数据操作类型以及预设的资源匹配规则,对所述资源数据进行匹配,包括:
若所述资源数据的数据操作类型为资源申请操作,则将所述资源数据添加到活跃资源列表;
若所述资源数据的数据操作类型为资源释放操作,则对所述活跃资源列表进行扫描,查找与所述资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,否则确定匹配失败。
可选的,所述方法还包括:
周期性的扫描所述活跃资源列表,检查所述活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定所述资源数据存在资源泄露。
可选的,在确定所述资源数据存在异常之后,还包括:
将所述资源数据删除,并发出预警信息。
可选的,在所述获取资源数据之前,还包括:
在所述应用程序的预设代码位置上注入资源获取代码。
相应的,本发明实施例还提供了一种资源泄露检测的装置,包括:
获取单元,用于获取资源数据,所述资源数据是位于应用程序的预设代码位置上的资源获取代码发送的;所述资源数据包括数据操作类型和唯一标识;
处理单元,用于根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配;所述资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系;若匹配失败,则确定所述资源数据存在异常。
可选的,所述处理单元具体用于:
若所述资源数据的数据操作类型为资源申请操作,则将所述资源数据添加到活跃资源列表;
若所述资源数据的数据操作类型为资源释放操作,则对所述活跃资源列表进行扫描,查找与所述资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,否则确定匹配失败。
可选的,所述处理单元还用于:
周期性的扫描所述活跃资源列表,检查所述活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定所述资源数据存在资源泄露。
可选的,所述处理单元还用于:
在确定所述资源数据存在异常之后,将所述资源数据删除,并发出预警信息。
可选的,所述处理单元还用于:
在所述获取资源数据之前,在所述应用程序的预设代码位置上注入资源获取代码。
相应的,本发明实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述资源泄露检测的方法。
相应的,本发明实施例提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述资源泄露检测的方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种系统架构的结构示意图;
图2为本发明实施例提供的一种资源泄露检测的方法的流程示意图;
图3为本发明实施例提供的一种资源泄露检测的方法的流程示意图;
图4为本发明实施例提供的一种数据采集模块的流程示意图;
图5为本发明实施例提供的一种规则匹配模块的流程示意图;
图6为本发明实施例提供的一种代码输出实例的示意图;
图7为本发明实施例提供的一种资源泄露检测的装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1示例性的示出了本发明实施例所适用的系统架构的结构,该系统架构可以包括代码植入模块110、数据采集模块120、规则匹配模块130和预警模块104。
其中,代码植入模块110用于在应用程序的预设代码位置植入一段代码,以使代码运行到该点时获取资源数据。应用程序启动时,可以触发代码植入模块的植入功能,植入Agent在应用程序的代码载入前,在应用程序的预设代码位置(申请资源位置和释放资源位置)植入一段代码,按一定需求埋下预定义锚点,使应用启动后、每次运行到锚点位置时,输出与当前操作资源的相关数据(资源标识符和调用链)。
该数据采集模块120,用于采集代码植入模块110输出的资源数据,并将采集的资源数据进行过滤后发送给规则匹配模块。当应用程序发生申请资源和释放资源操作时,应用程序的代码运行到锚点位置,预注入代码被执行,当前资源数据被输出到某个位置(如输出到日志文件中),输出的资源数据被数据采集模块发现并采集,并推送到规则匹配模块130。
规则匹配模块130可以根据预定义的规则对申请-释放操作进行匹配,并定时检查是否有申请操作命中资源泄漏规则。一旦泄漏规则被匹配,规则匹配模块130立即将疑似资源泄漏操作数据推送给预警模块140。
预警模块140收到疑似资源泄漏数据后,按照预定方案发起预警(如发送通知邮件等)。
基于上述描述,图2示例性的示出了本发明实施例提供的一直资源泄露检测的方法的流程,该流程可以由资源泄露检测的装置执行。
如图2所示,该流程具体包括:
步骤201,获取资源数据。
在本发明实施例中,该资源数据是位于应用程序的预设代码位置上的资源获取代码发送的,因此,在获取资源数据之前,还需要在应用程序的预设代码位置上注入资源获取代码。该预设代码位置可以为应用程序的代码中的申请资源位置和释放资源位置。该资源数据可以包括数据操作类型和唯一标识,该数据操作类型可以包括资源申请操作和资源释放操作。
步骤202,根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配。
资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系。具体的,在得到资源数据之后,若资源数据的数据操作类型为资源申请操作,则将资源数据添加到活跃资源列表。若资源数据的数据操作类型为资源释放操作,则对活跃资源列表进行扫描,查找与资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,说明申请-释放匹配成功,对应的申请资源操作无泄露问题,也就可以将其从活跃资源列表中移除。当查找不成功时,确定匹配失败。
步骤203,若对所述资源数据匹配失败,则确定所述资源数据存在异常。
在上述步骤203中,确定资源数据匹配失败后,就可以确定该资源数据存在异常,相当于资源释放操作没有对应的资源申请操作,需要对该异常释放信息进行分析。
需要说明的是,还可以周期性的扫描上述活跃资源列表,检查活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定资源数据存在资源泄露。预设阈值可以依据经验进行设置。该周期性的可以依据经验设置,例如可以为10分钟、1小时、2小时等。
当确定资源数据存在资源泄露之后,就可以将该资源数据删除,并发出预警信息。
为了更好的解释本发明实施例,下面将通过具体的实施场景进行描述:
如图3所示的流程,应用启动时,触发代码植入模块的植入功能,植入Agent在应用代码载入前,在预设的应用代码位置(申请资源位置和释放资源位置)植入一段代码,按一定需求埋下预定义锚点,使应用启动后、每次运行到锚点位置时,输出与当前操作资源的相关数据(资源标识符和调用链)。
当应用发生申请资源和释放资源操作时,应用代码运行到锚点位置,预注入代码被执行,当前资源数据被输出到某个位置(如输出到日志文件中),输出的资源数据被数据采集模块发现并采集,并推送到规则匹配模块。
规则匹配模块根据预定义的规则对申请-释放操作进行匹配,并定时检查是否有申请操作命中资源泄漏规则。一旦泄漏规则被匹配,规则匹配模块立即将疑似资源泄漏操作数据推送给预警模块。
预警模块收到疑似资源泄漏数据后,按照预定方案发起预警(如发送通知邮件等)。
其中,代码植入模块主要解决两个问题:代码植入位置和植入内容。
植入位置必须包含两个点,申请资源位置和释放资源位置,需根据应用实际和被检测资源类型的不同,定位资源申请和释放的实际位置。代码植入模块根据这个位置完成代码植入。
植入代码内容主要是获取当前资源信息并输出,而资源信息包含资源唯一标识和调用链。例如,在进行数据库连接池监控时,植入代码内容可以是:输出数据库连接实例信息+当前调用堆栈信息到日志。
数据采集模块负责在应用输出的众多数据中甄别出与资源泄漏检测相关的有效数据,并推送到规则匹配模块。其中数据采集模块具体执行的步骤可以如图4所示,具体包括:
步骤401,发现新数据。
定时侦听应用输出数据,检测是否有新数据产生,若发现新数据,则逐行读取。
步骤402,判断是否为资源申请或资源释放数据,若是,则转入步骤404,若否,则转入步骤403。
检测该数据是否为资源申请/释放相关数据,不是则丢弃。
步骤403,丢弃数据。
步骤404,数据校验。
对数据进行校验,检查格式、完整性等。
步骤405,判断是否为有效数据,若是,则转入步骤407,若否,则转入步骤406。
步骤406,丢弃数据。
步骤407,推送至规则匹配模块。
将通过校验的有效数据推送至规则匹配模块,无效数据则丢弃。
图3中的规则匹配模块负责对资源操作数据进行规则匹配,及时发现存在泄露风险的可疑操作,并推送给预警模块。
如图5所示的流程,具体包括:
步骤501,资源数据达到。
步骤502,判断资源数据的数据操作类型是否是资源申请操作,若是,则转入步骤503,若否,则转入步骤504。
步骤503,将资源数据添加到活跃资源列表。
步骤504,判断资源数据的数据操作类型是否是资源释放操作,若是,则转入步骤506,若否,则转入步骤505。
步骤505,丢弃数据。
步骤506,扫描活跃资源列表。
步骤507,判断资源释放操作对应的资源数据是否有活跃资源匹配,若是,则转入步骤509,若否,则转入步骤508。
步骤508,资源释放操作对应的资源数据入库。
步骤509,从活跃资源列表中移除活跃资源。
步骤510,定时扫描任务。
定时扫描活跃资源列表。
步骤511,判断活跃资源是否超时,若是,则转入步骤513,若否,则转入步骤512。
步骤512,保留活跃资源。
步骤513,超时资源信息入库。
步骤514,从活跃资源列表中移除活跃资源。
步骤515,发起预警。
规则匹配模块维护一个活跃资源信息列表;
当资源操作数据到达,判断该数据是资源申请操作还是资源释放操作。
若为资源申请操作,则将该申请资源数据添加至活跃资源列表。
若为资源释放操作,则对活跃资源列表进行扫描,查找与被释放资源的唯一标识一致的申请资源操作,如果查找成功,则说明申请-释放匹配成功,对应的申请资源操作无泄漏问题,于是将其从活跃资源列表中移除;如果查找失败,则将该资源释放操作记录入库,用于异常信息分析。
预定义的定时扫描任务每隔t时间对活跃资源列表进行扫描,检查是否有活跃资源的存在时间超过最长活跃时间阈值T,如果有,则认为该申请资源操作存在资源泄漏问题,将该可疑操作记录入库,从活跃资源列表移除该数据,并调用预警模块发起预警。
预警模块接收规则匹配模块推送的疑似泄漏数据,按预定方案通过邮件、网页推送等手段向干系人发送预警信息,推送被泄漏资源信息和发生泄漏的程序调用链。工作人员可以根据资源信息和调用链检查源代码是否确实存在泄漏问题并进行修复。
在本发明实施例的另一实施方式,在数据库连接池泄漏检测中,代码植入模块通过在连接池底层实现的申请数据库连接的方法(getConnection())和释放数据库连接的方法(returnConnection())中植入代码,使这两个方法每次被调用时在日志中输出当前进行申请/释放(get/return)操作的数据库连接(Connection)的唯一标识和当前操作代码调用堆栈信息。实际输出效果如图6所示。
其中,“[get]”表示这是一次申请数据库连接操作,其后紧跟当前操作的调用堆栈信息,“detectionInsertConInfo”后面为当前数据库信息,可以唯一定位一个数据库连接。释放据库连接操作的输出与此类似,唯一的差别是将“[get]”替换为“[return]”。
数据匹配模块实时扫描日志,根据日志中是否有“detection insert code”关键字(如图6所示)判断是否为数据库监控相关日志,进行校验后将有效监控日志推送给规则匹配模块。
规则匹配模块接收数据库监控日志数据,如果是get操作,则将其加入活跃连接列表;如果是return操作,则以Connection的唯一标识detectionInsert ConInfo为依据,扫描活跃连接列表,寻找与return操作匹配的get操作,完成匹配的get操作视为无数据库连接泄漏风险的操作,将其从活跃连接列表中移除,其他get操作保留在活跃连接列表中。通过实验发现,绝大多数的数据库操作都是毫秒级的,即一个get操作发生后,在几毫秒内便会有一个return操作与之完成匹配,于是定时扫描任务中设置超时时间为1小时,如果一次get操作超过1小时还没有被return操作匹配上,我们认为这次get操作疑似发生数据库连接泄漏。于是预警模块以邮件的方式将图6所示的监控输出数据作为预警信息发送给干系人,干系人通过调用堆栈定位泄漏代码位置,进行排查和修复。
目前,该数据库连接池泄漏检测方法在测试环境全面部署后,已经在银联无卡路由管理系统、商户管理系统、风险系统等多个业务系统中准确发现了多个数据库连接泄漏问题并精准定位泄漏代码段,全过程零误报,帮助各业务系统发现和排除了多个连接泄漏风险,达到了非常好的实践效果。
本发明实施例通过代码动态植入技术,在资源实际申请和释放的位置分别埋下锚点,使当应用运行到这些位置时,根据运行时上下文实时输出被申请或释放资源的信息及当前代码调用链,通过对申请-释放数据的匹配,判断某一资源使用后是否被正确释放,达到检查资源泄漏的目的,并根据申请资源操作的代码调用链,精准定位资源泄漏发生的位置。
基于相同的技术构思,图7示例性的示出了本发明实施例提供的一种资源泄露检测的装置,该装置可以执行资源泄露检测的流程。
如图7所示,该装置包括:
获取单元701,用于获取资源数据,所述资源数据是位于应用程序的预设代码位置上的资源获取代码发送的;所述资源数据包括数据操作类型和唯一标识;
处理单元702,用于根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配;所述资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系;若匹配失败,则确定所述资源数据存在异常。
可选的,所述处理单元702具体用于:
若所述资源数据的数据操作类型为资源申请操作,则将所述资源数据添加到活跃资源列表;
若所述资源数据的数据操作类型为资源释放操作,则对所述活跃资源列表进行扫描,查找与所述资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,否则确定匹配失败。
可选的,所述处理单元702还用于:
周期性的扫描所述活跃资源列表,检查所述活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定所述资源数据存在资源泄露。
可选的,所述处理单元702还用于:
在确定所述资源数据存在异常之后,将所述资源数据删除,并发出预警信息。
可选的,所述处理单元702还用于:
在所述获取资源数据之前,在所述应用程序的预设代码位置上注入资源获取代码。
基于相同的技术构思,本发明实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述资源泄露检测的方法。
基于相同的技术构思,本发明实施例提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述资源泄露检测的方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (12)

1.一种资源泄露检测的方法,其特征在于,包括:
获取资源数据,所述资源数据是位于应用程序的预设代码位置上的资源获取代码发送的;所述资源数据包括数据操作类型和唯一标识;
根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配;所述资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系;
若匹配失败,则确定所述资源数据存在异常。
2.如权利要求1所述的方法,其特征在于,所述根据所述资源数据的数据操作类型以及预设的资源匹配规则,对所述资源数据进行匹配,包括:
若所述资源数据的数据操作类型为资源申请操作,则将所述资源数据添加到活跃资源列表;
若所述资源数据的数据操作类型为资源释放操作,则对所述活跃资源列表进行扫描,查找与所述资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,否则确定匹配失败。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
周期性的扫描所述活跃资源列表,检查所述活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定所述资源数据存在资源泄露。
4.如权利要求1至3任一项所述的方法,其特征在于,在确定所述资源数据存在异常之后,还包括:
将所述资源数据删除,并发出预警信息。
5.如权利要求1至3任一项所述的方法,其特征在于,在所述获取资源数据之前,还包括:
在所述应用程序的预设代码位置上注入资源获取代码。
6.一种资源泄露检测的装置,其特征在于,包括:
获取单元,用于获取资源数据,所述资源数据是位于应用程序的预设代码位置上的资源获取代码发送的;所述资源数据包括数据操作类型和唯一标识;
处理单元,用于根据所述资源数据的数据操作类型和唯一标识以及预设的资源匹配规则,对所述资源数据进行匹配;所述资源匹配规则是预先设置的资源申请操作与资源释放操作的对应关系;若匹配失败,则确定所述资源数据存在异常。
7.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
若所述资源数据的数据操作类型为资源申请操作,则将所述资源数据添加到活跃资源列表;
若所述资源数据的数据操作类型为资源释放操作,则对所述活跃资源列表进行扫描,查找与所述资源释放操作对应的资源数据的唯一标识一致的申请资源操作;若查找成功,则确定匹配成功,否则确定匹配失败。
8.如权利要求7所述的装置,其特征在于,所述处理单元还用于:
周期性的扫描所述活跃资源列表,检查所述活跃资源列表中是否存在时间超过预设阈值的资源数据,若存在,则确定所述资源数据存在资源泄露。
9.如权利要求6至8任一项所述的装置,其特征在于,所述处理单元还用于:
在确定所述资源数据存在异常之后,将所述资源数据删除,并发出预警信息。
10.如权利要求6至8任一项所述的装置,其特征在于,所述处理单元还用于:
在所述获取资源数据之前,在所述应用程序的预设代码位置上注入资源获取代码。
11.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至5任一项所述的方法。
12.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至5任一项所述的方法。
CN201811339180.0A 2018-11-12 2018-11-12 一种资源泄露检测的方法及装置 Pending CN109542778A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811339180.0A CN109542778A (zh) 2018-11-12 2018-11-12 一种资源泄露检测的方法及装置
PCT/CN2019/098711 WO2020098311A1 (zh) 2018-11-12 2019-07-31 一种资源泄露检测的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811339180.0A CN109542778A (zh) 2018-11-12 2018-11-12 一种资源泄露检测的方法及装置

Publications (1)

Publication Number Publication Date
CN109542778A true CN109542778A (zh) 2019-03-29

Family

ID=65846804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811339180.0A Pending CN109542778A (zh) 2018-11-12 2018-11-12 一种资源泄露检测的方法及装置

Country Status (2)

Country Link
CN (1) CN109542778A (zh)
WO (1) WO2020098311A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020098311A1 (zh) * 2018-11-12 2020-05-22 中国银联股份有限公司 一种资源泄露检测的方法及装置
CN117195204A (zh) * 2023-11-01 2023-12-08 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115952006B (zh) * 2023-03-13 2023-06-02 浪潮电子信息产业股份有限公司 资源泄漏的检测方法、系统、装置、服务器及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313661B1 (en) * 2005-03-18 2007-12-25 Sun Microsystems, Inc. Tool for identifying causes of memory leaks
US7325106B1 (en) * 2004-07-16 2008-01-29 Sun Microsystems, Inc. Method for monitoring heap for memory leaks
CN101587455A (zh) * 2008-12-11 2009-11-25 南京南瑞继保电气有限公司 一种用于vxWorks操作系统检查内存泄漏的方法
CN101814049A (zh) * 2010-03-23 2010-08-25 北京大学 一种内存泄漏探测方法
US7870358B2 (en) * 2007-03-07 2011-01-11 Lsi Corporation Zero-penalty RAID controller memory leak detection and isolation method and system utilizing sequence numbers
CN105912458A (zh) * 2016-03-28 2016-08-31 中国电力科学研究院 一种用于动态检测c/c++内存泄露的方法及系统
CN106407114A (zh) * 2016-09-20 2017-02-15 腾讯科技(深圳)有限公司 内存泄漏分析方法和装置
CN107423213A (zh) * 2017-04-11 2017-12-01 腾讯科技(深圳)有限公司 一种文件描述符分配检测方法和装置
CN107908539A (zh) * 2017-07-24 2018-04-13 平安科技(深圳)有限公司 一种检测应用程序内存泄露的方法、终端及计算机可读存储介质
CN108664390A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种内存泄露检测方法及设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434206B2 (en) * 2005-03-10 2008-10-07 Hewlett-Packard Development Company, L.P. Identifying memory leaks in computer systems
CN102103541B (zh) * 2011-02-28 2012-11-14 中国人民解放军国防科学技术大学 防止内存泄露和内存多次释放的内核模块内存管理方法
CN108733567A (zh) * 2018-05-24 2018-11-02 北京智芯微电子科技有限公司 软件资源泄露情况的监测方法及系统
CN109542778A (zh) * 2018-11-12 2019-03-29 中国银联股份有限公司 一种资源泄露检测的方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7325106B1 (en) * 2004-07-16 2008-01-29 Sun Microsystems, Inc. Method for monitoring heap for memory leaks
US7313661B1 (en) * 2005-03-18 2007-12-25 Sun Microsystems, Inc. Tool for identifying causes of memory leaks
US7870358B2 (en) * 2007-03-07 2011-01-11 Lsi Corporation Zero-penalty RAID controller memory leak detection and isolation method and system utilizing sequence numbers
CN101587455A (zh) * 2008-12-11 2009-11-25 南京南瑞继保电气有限公司 一种用于vxWorks操作系统检查内存泄漏的方法
CN101814049A (zh) * 2010-03-23 2010-08-25 北京大学 一种内存泄漏探测方法
CN105912458A (zh) * 2016-03-28 2016-08-31 中国电力科学研究院 一种用于动态检测c/c++内存泄露的方法及系统
CN106407114A (zh) * 2016-09-20 2017-02-15 腾讯科技(深圳)有限公司 内存泄漏分析方法和装置
CN108664390A (zh) * 2017-03-31 2018-10-16 华为技术有限公司 一种内存泄露检测方法及设备
CN107423213A (zh) * 2017-04-11 2017-12-01 腾讯科技(深圳)有限公司 一种文件描述符分配检测方法和装置
CN107908539A (zh) * 2017-07-24 2018-04-13 平安科技(深圳)有限公司 一种检测应用程序内存泄露的方法、终端及计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张剑: "《软件安全开发》", 28 February 2015, 电子科技大学出版社 *
张国焕: "《可信计算》", 31 August 2011, 武汉大学出版社 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020098311A1 (zh) * 2018-11-12 2020-05-22 中国银联股份有限公司 一种资源泄露检测的方法及装置
CN117195204A (zh) * 2023-11-01 2023-12-08 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质
CN117195204B (zh) * 2023-11-01 2024-02-13 建信金融科技有限责任公司 异常数据检测方法、装置、电子设备及计算机可读介质

Also Published As

Publication number Publication date
WO2020098311A1 (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN109542778A (zh) 一种资源泄露检测的方法及装置
CN107688531A (zh) 数据库集成测试方法、装置、计算机设备及存储介质
CN108694320B (zh) 一种多安全环境下敏感应用动态度量的方法及系统
US20170103202A1 (en) Apparatus and method for monitoring virtual machine based on hypervisor
CN104216743A (zh) 可配置的虚拟机启动完整性维护的方法及系统
CN109324959B (zh) 一种自动转移数据的方法、服务器及计算机可读存储介质
CN105955840A (zh) 一种接收配置文件管理方法
CN113407419B (zh) 内存泄漏检测方法、装置、计算机设备和存储介质
US20220401825A1 (en) Alarm method and apparatus for tabletop game, electronic device and storage medium
CN101324856B (zh) 一种数据升级方法及系统
CN111309584B (zh) 数据处理方法、装置、电子设备及存储介质
CN115167896A (zh) 一种更新软件版本的方法、装置、存储介质及电子设备
CN107168875B (zh) 一种基于安卓应用多入口特性的Activity构件泄露检测方法
CN116185706A (zh) 数据备份方法、装置、计算及存储介质及电子设备
CN110442467B (zh) 一种数据共享方法及终端、计算机可读存储介质
CN108845932B (zh) 一种网络库的单元测试方法、装置、存储介质及终端
CN112528331A (zh) 隐私泄露风险的检测方法、设备及系统
CN107861842B (zh) 一种元数据损坏检测方法、系统、设备及存储介质
CN112085443A (zh) 一种配送资源检测、任务执行方法、装置以及电子设备
CN107707856B (zh) 一种多媒体节目录制的方法及装置
CN111212029A (zh) 一种敏感数据监测与跟踪方法
CN104731661B (zh) 一种回收泄露的程序运行资源的方法及装置
US8732535B2 (en) Method of detection of erroneous memory usage
CN112579327B (zh) 一种故障检测方法、装置及设备
CN111274585B (zh) 一种Web应用越权漏洞检测方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination