CN116431298A - 句柄资源监控方法、装置、存储介质、电子设备及车辆 - Google Patents
句柄资源监控方法、装置、存储介质、电子设备及车辆 Download PDFInfo
- Publication number
- CN116431298A CN116431298A CN202310132771.5A CN202310132771A CN116431298A CN 116431298 A CN116431298 A CN 116431298A CN 202310132771 A CN202310132771 A CN 202310132771A CN 116431298 A CN116431298 A CN 116431298A
- Authority
- CN
- China
- Prior art keywords
- handle
- application program
- link function
- handles
- application
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 238000012544 monitoring process Methods 0.000 title claims abstract description 49
- 230000002159 abnormal effect Effects 0.000 claims abstract description 42
- 238000004064 recycling Methods 0.000 claims abstract description 19
- 230000006870 function Effects 0.000 claims description 91
- 230000008569 process Effects 0.000 claims description 25
- 230000015654 memory Effects 0.000 claims description 19
- 238000011084 recovery Methods 0.000 claims description 6
- 238000012806 monitoring device Methods 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000005856 abnormality Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000011664 nicotinic acid Substances 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种句柄资源监控方法、装置、存储介质、电子设备及车辆,方法包括:配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄;获取调用所述句柄链接函数执行分配句柄至应用程序的次数与执行回收应用程序释放的句柄的次数之间的差值;若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息。通过本申请方案,能够实时对句柄资源进行监控,实时计算被占用而未释放的句柄的数量,一旦被占用而未释放的句柄的数量达到设定阈值则直接发出提醒,从而避免句柄资源耗尽,确保后续应用程序的正常运行。
Description
技术领域
本申请涉及车辆系统资源监控技术领域,尤其涉及一种句柄资源监控方法、装置、存储介质、电子设备及车辆。
背景技术
随着车辆自动化、智能化的快速发展,在车辆中控系统中的应用程序越来越多。车辆中控系统的内存有限,为优化内存管理机制采用虚拟地址完成一部分应用程序运行时的数据存放,并对虚拟地址的占用、释放及更改等进行记录。在具体实现时,通过为应用程序中的数据分配句柄,通过跟踪句柄来记录数据地址的变更。由于车辆中控系统的句柄资源是有限的,所以需要应用程序在使用完之后,将分配到的句柄资源释放出来,然而,在实际应用时,经常有应用程序未及时释放句柄的情况发生,如果不能及时发现,可能导致句柄资源耗尽,影响到后续应用程序的运行。
发明内容
本申请的目的在于提供一种句柄资源监控方法、装置、存储介质、电子设备及车辆,以解决现有技术中无法及时发现车辆中控系统句柄资源被异常占用的技术问题。
第一方面,本申请技术方案提供一种句柄资源监控方法,包括:
配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄;
获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值;
若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息。
一些方案中所述的句柄资源监控方法,所述获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值,包括:
获取占用次数变量,所述占用次数变量用于记录调用所述句柄链接函数执行分配句柄至应用程序的次数;
获取释放次数变量,所述释放次数变量用于记录调用所述句柄链接函数执行回收应用程序释放的句柄的次数;
将所述占用次数变量与所述释放次数变量的次数差作为所述差值。
一些方案中所述的句柄资源监控方法,所述获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值,包括:
设置次数变量且所述次数变量的初始值为零,所述次数变量在调用所述句柄链接函数执行分配句柄至应用程序时加一,所述次数变量在调用所述句柄链接函数执行回收应用程序释放的句柄时减一;
以所述次数变量的实际值作为所述差值。
一些方案中所述的句柄资源监控方法,所述若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息后,还包括:
调用句柄跟踪日志,所述句柄跟踪日志记录每一应用程序运行过程中对于句柄的占用和释放的过程数据;
提取所述句柄跟踪日志中的至少一个句柄占用时刻;
将所述至少一个句柄占用时刻中与当前时刻之间的时间差大于时长阈值的句柄占用时刻作为异常占用时刻;
以所述异常占用时刻对应的应用程序作为异常占用句柄的异常应用程序。
一些方案中所述的句柄资源监控方法,所述若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息后,还包括:
调用句柄跟踪日志,所述句柄跟踪日志记录当前时刻占用句柄的应用程序;
调用应用程序运行日志,所述应用程序运行日志记录当前时刻处于运行状态的应用程序;
对比所述句柄跟踪日志和所述应用程序运行日志,将记录于所述句柄跟踪日志中而未记录于调用应用程序运行日志中的应用程序作为异常占用句柄的异常应用程序。
一些方案中所述的句柄资源监控方法,还包括:
释放所述异常应用程序占用的句柄。
第二方面,本申请技术方案提供一种句柄资源监控装置,包括:
链接函数配置模块,用于配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄;
差值获取模块,用于获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值;
监控结果输出模块,用于在所述差值大于设定阈值时,发出用于提示句柄异常占用的提示信息。
第三方面,本申请技术方案提供一种存储介质,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行第一方面任一项所述的句柄资源监控方法。
第四方面,本申请技术方案提供一种电子设备,所述电子设备包括至少一个处理器和至少一个存储器,至少一个所述存储器中存储有程序信息,至少一个所述处理器读取所述程序信息后执行第一方面任一项所述的句柄资源监控方法。
第五方面,本申请技术方案提供一种车辆,所述车辆包括第二方面所述的句柄资源监控装置或第三方面所述的存储介质或第四方面所述的电子设备。
采用上述技术方案,具有以下有益效果:
本申请提供的句柄资源监控方法、装置、存储介质、电子设备及车辆,其方法中通过句柄链接函数监测句柄资源中的句柄是否被分配或者是否被释放,通过获取调用句柄链接函数执行分配句柄至应用程序的次数与调用句柄链接函数执行回收应用程序释放的句柄的次数之间的差值能够确定分配出去的句柄数比回收释放的句柄数多多少,如果差值大于设定阈值则说明分配出去的句柄数比回收句柄数多了设定阈值的数量,此时发出提示信息给予提醒。通过本申请方案,能够实时对句柄资源进行监控,实时计算被占用而未释放的句柄的数量,一旦被占用而未释放的句柄的数量达到设定阈值则直接发出提醒,从而避免句柄资源耗尽,确保后续应用程序的正常运行。
附图说明
图1为本申请一实施例中句柄资源监控方法的流程图;
图2a为本申请另一实施例中句柄资源监控方法的流程图;
图2b为本申请又一实施例中句柄资源监控方法的流程图;
图3为本申请一实施例中句柄跟踪日志的示意图;
图4为本申请一实施例中句柄资源监控装置的结构框图;
图5为本申请一实施例中执行句柄资源监控方法的电子设备的硬件连接关系示意图。
具体实施方式
下面结合附图来进一步说明本申请的具体实施方式。
容易理解,根据本申请的技术方案,在不变更本申请实质精神下,本领域的一般技术人员可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本申请的技术方案的示例性说明,而不应当视为本申请的全部或视为对申请技术方案的限定或限制。
在本说明书中提到或者可能提到的上、下、左、右、前、后、正面、背面、顶部、底部等方位用语是相对于各附图中所示的构造进行定义的,它们是相对的概念,因此有可能会根据其所处不同位置、不同使用状态而进行相应地变化。所以,也不应当将这些或者其他的方位用语解释为限制性用语。
本实施例提供一种句柄资源监控方法,可用于车载控制器中,用于对车辆中控系统在执行应用程序时对于句柄资源的监控,如图1所示,包括:
S10:配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄。
车辆中控系统的句柄资源可以看作是包含有多个句柄的资源池。所述句柄链接函数可直接植入到车辆中控系统的核心内,如此,车辆中控系统只要执行句柄分配或回收释放的句柄时,都必须调用所述句柄链接函数,而所述句柄链接函数可识别其执行的是句柄分配操作还是句柄释放操作。
例如,车辆中控系统可以采用安卓系统,具体实现时可以通过配置安卓系统中的Bionic核心库中的钩子函数fd_hook作为所述句柄链接函数。
S20:获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值。
如前所述,车辆中控系统只要执行句柄分配或回收释放的句柄时,都必须调用所述句柄链接函数,所述句柄链接函数能够确定其执行的是将句柄从句柄资源中取出还是将句柄存入句柄资源,即可自动识别其操作。由此,能够分别记录执行分配句柄至应用程序的次数与执行回收应用程序释放的句柄的次数,从而计算出差值。
S30:若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息。
所述差值能够表示句柄被占用的次数比句柄被释放的次数所多出来的次数,即可说明有被占用的句柄未被及时的释放出来。
所述设定阈值可根据车辆中控系统的运行能力确定,例如:预先进行标定试验,确定差值为某一值时应用程序的运行过程出现卡顿,可以将该值作为所述设定阈值。也可以直接将所述设定阈值选择为固定参数,例如句柄总数的1/3。
所述提示信息可以是发出文字报错信息,因为车辆中控系统一般都配置有显示屏,因此直接控制显示屏显示文字即可。
通过本实施例的以上方案,通过句柄链接函数监测句柄资源中的句柄是否被分配或者是否被释放,通过获取调用句柄链接函数执行分配句柄至应用程序的次数与调用句柄链接函数执行回收应用程序释放的句柄的次数之间的差值能够确定分配出去的句柄数比回收释放的句柄数多多少,如果差值大于设定阈值则说明分配出去的句柄数比回收句柄数多了设定阈值的数量,此时发出提示信息给予提醒。通过本申请方案,能够实时对句柄资源进行监控,实时计算被占用而未释放的句柄的数量,一旦被占用而未释放的句柄的数量达到设定阈值则直接发出提醒,从而避免句柄资源耗尽,确保后续应用程序的正常运行。
在一些方案中,所述的句柄资源监控方法,所述步骤S20可以通过如下两种方式实现:
方式一:
S211:获取占用次数变量,所述占用次数变量用于记录调用所述句柄链接函数执行分配句柄至应用程序的次数。
例如,以A作为占用次数变量,初始值为零,每次调用所述句柄链接函数执行分配句柄至应用程序时,执行A=A+1的操作。
S212:获取释放次数变量,所述释放次数变量用于记录调用所述句柄链接函数执行回收应用程序释放的句柄的次数。
例如,以B作为占用次数变量,初始值为零,每次调用所述句柄链接函数执行回收应用程序释放的句柄时,执行B=B+1的操作。
S213:将所述占用次数变量与所述释放次数变量的次数差作为所述差值。
执行A-B即可得到所述差值。
本方案中,所述句柄链接函数配置有两个变量,彼此独立,能够确保记录的分配句柄次数和回收句柄次数互不影响。
方式二:
S221:设置次数变量且所述次数变量的初始值为零,所述次数变量在调用所述句柄链接函数执行分配句柄至应用程序时加一,所述次数变量在调用所述句柄链接函数执行回收应用程序释放的句柄时减一;以所述次数变量的实际值作为所述差值。
例如,以X作为次数变量,初始值为零,每次调用所述句柄链接函数执行分配句柄至应用程序时,执行X=X+1的操作;每次调用所述句柄链接函数执行回收应用程序释放的句柄时,执行X=X-1的操作。如此,最终X记录的就是所述差值。
本方案中,相比于方式一可减少一个参量,简化参量设计和运算过程。
在一些方案中,如图2a所示,所述的句柄资源监控方法,在步骤S30后还包括:
S401:调用句柄跟踪日志,所述句柄跟踪日志记录每一应用程序运行过程中对于句柄的占用和释放的过程数据。
车辆中控系统中,本身就会对应用程序运行过程中的状态数据进行详细的记录,其中包括应用程序运行过程中对于句柄的占用和释放的过程数据。
例如,以安卓系统为例,可以调用安卓系统中用于句柄跟踪检测的动态库,车辆中控系统中每一个应用程序启动的时候,可根据车辆中控系统属性配置应用程序动态链接至该动态库,从而触发该动态库内的初始化函数ctor,然后将自定义的句柄检测钩子函数注册到Bionic核心库中。在此过程中,针对应用程序对于句柄的占用和释放可以得到图3所示的句柄跟踪日志的界面截图,其中记录了时间、进程ID、线程ID、级别、状态、函数及句柄。例如,第一行表示:时间22:50:36.764,进行ID为32311,线程ID为32332,级别为I,句柄状态为泄漏,函数“0”占用句柄pipe+252。
以上,在安卓系统中可以通过执行“执行logcat|grep|OTA|grep fdtrack”的指令调用该日志。
另外,安卓系统中具有zygote进程,其为与应用程序直接关联的进程,因此,在启动zygote进程的时候,为了降低系统性能,会根据系统属性配置来决定是否开启句柄检测功能,由于每一个应用程序的运行都依赖于zygote进程,所以在执行本方案时,如果车辆中控系统为安卓系统,则保证zygote为开启状态。
S402:提取所述句柄跟踪日志中的至少一个句柄占用时刻。
以图3为例,其中第一列数据即对应于句柄占用时刻。
S403:将所述至少一个句柄占用时刻中与当前时刻之间的时间差大于时长阈值的句柄占用时刻作为异常占用时刻。
车辆中控系统能够直接获取到系统的当前时刻,由此直接计算出时间差。
时长阈值可以根据一般应用程序的运行时长来选择,例如一小时。
S404:以所述异常占用时刻对应的应用程序作为异常占用句柄的异常应用程序。
以图3为例,假如有应用程序占用句柄的时刻距离当前时刻已经有两小时,还未释放,则很大概率该句柄为异常占用。
通过以上方案,能够快速定位到具体的没有释放句柄的应用程序。尤其是随着应用程序的功能越来越复杂,代码量越来越多时,采用本方案能够提高定位效率。
在一些方案中,如图2b所示,所述的句柄资源监控方法,在步骤S30后还包括:
S501:调用句柄跟踪日志,所述句柄跟踪日志记录当前时刻占用句柄的应用程序。
S502:调用应用程序运行日志,所述应用程序运行日志记录当前时刻处于运行状态的应用程序。
S503:对比所述句柄跟踪日志和所述应用程序运行日志,将记录于所述句柄跟踪日志中而未记录于调用应用程序运行日志中的应用程序作为异常占用句柄的异常应用程序。
即,如果应用程序已经被关闭,理论上应及时释放句柄,但是此时在句柄跟踪日志中依然显示该应用程序占用句柄,就必然能够确定该应用程序对句柄的占用是异常的。
本申请实施例中,在图3中,以进程和线程对应应用程序,如果车辆中控系统已经将某一应用程序关闭,那么关闭后就应该将其占用的全部句柄都释放出来。如果,此时在图3所示的日志中,记录着已经关闭的应用程序还在占用句柄,就能够确定其为异常应用程序。图3中异常占用句柄的记录结果,句柄状态均为fdtrack,表示异常占用。
进一步地,以上方案中的句柄资源监控方法,还包括:释放所述异常应用程序占用的句柄。
通过本方案,能够将被异常占用的句柄及时地释放出来,及时补充句柄数量,避免句柄资源中的句柄数量减少影响到后续应用程序的正常运行。
本实施例提供一种句柄资源监控装置,如图4所示,包括:
链接函数配置模块10,用于配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄。车辆中控系统的句柄资源可以看作是包含有多个句柄的资源池。所述句柄链接函数可直接植入到车辆中控系统的核心内,如此,车辆中控系统只要执行句柄分配或回收释放的句柄时,都必须调用所述句柄链接函数,而所述句柄链接函数可识别其执行的是句柄分配操作还是句柄释放操作。
差值获取模块20,用于获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值。所述差值能够表示句柄被占用的次数比句柄被释放的次数所多出来的次数,即可说明有被占用的句柄未被及时的释放出来。车辆中控系统只要执行句柄分配或回收释放的句柄时,都必须调用所述句柄链接函数,所述句柄链接函数能够确定其执行的是将句柄从句柄资源中取出还是将句柄存入句柄资源,即可自动识别其操作。由此,能够分别记录执行分配句柄至应用程序的次数与执行回收应用程序释放的句柄的次数,从而计算出差值。所述设定阈值可根据车辆中控系统的运行能力确定,例如:预先进行标定试验,确定差值为某一值时应用程序的运行过程出现卡顿,可以将该值作为所述设定阈值。也可以直接将所述设定阈值选择为固定参数,例如句柄总数的1/3。
监控结果输出模块30,用于在所述差值大于设定阈值时,发出用于提示句柄异常占用的提示信息。所述提示信息可以是发出文字报错信息,因为车辆中控系统一般都配置有显示屏,因此直接控制显示屏显示文字即可。
通过本实施例的以上方案,通过句柄链接函数监测句柄资源中的句柄是否被分配或者是否被释放,通过获取调用句柄链接函数执行分配句柄至应用程序的次数与调用句柄链接函数执行回收应用程序释放的句柄的次数之间的差值能够确定分配出去的句柄数比回收释放的句柄数多多少,如果差值大于设定阈值则说明分配出去的句柄数比回收句柄数多了设定阈值的数量,此时发出提示信息给予提醒。通过本申请方案,能够实时对句柄资源进行监控,实时计算被占用而未释放的句柄的数量,一旦被占用而未释放的句柄的数量达到设定阈值则直接发出提醒,从而避免句柄资源耗尽,确保后续应用程序的正常运行。
在一些方案中,所述差值获取模块20,获取占用次数变量,所述占用次数变量用于记录调用所述句柄链接函数执行分配句柄至应用程序的次数。获取释放次数变量,所述释放次数变量用于记录调用所述句柄链接函数执行回收应用程序释放的句柄的次数。将所述占用次数变量与所述释放次数变量的次数差作为所述差值。例如,以A作为占用次数变量,初始值为零,每次调用所述句柄链接函数执行分配句柄至应用程序时,执行A=A+1的操作。以B作为占用次数变量,初始值为零,每次调用所述句柄链接函数执行回收应用程序释放的句柄时,执行B=B+1的操作。执行A-B即可得到所述差值。本方案中,所述句柄链接函数配置有两个变量,彼此独立,能够确保记录的分配句柄次数和回收句柄次数互不影响。
在一些方案中,所述差值获取模块20,设置次数变量且所述次数变量的初始值为零,所述次数变量在所述句柄链接函数执行分配句柄至应用程序时加一,所述次数变量在所述句柄链接函数执行回收应用程序释放的句柄时减一;以所述次数变量的实际值作为所述差值。例如,以X作为次数变量,初始值为零,每次所述句柄链接函数执行分配句柄至应用程序时,执行X=X+1的操作;每次所述句柄链接函数执行回收应用程序释放的句柄时,执行X=X-1的操作。如此,最终X记录的就是所述差值。本方案中,相比于方式一可减少一个参量,简化参量设计和运算过程。
在一些方案中,所述装置还可以包括异常占用调取模块,调用句柄跟踪日志,所述句柄跟踪日志记录每一应用程序运行过程中对于句柄的占用和释放的过程数据;提取所述句柄跟踪日志中的句柄占用时刻;将与当前时刻之间的时间差大于时长阈值的句柄占用时刻作为异常占用时刻;以所述异常占用时刻对应的应用程序作为异常占用句柄的异常应用程序。车辆中控系统中,本身就会对应用程序运行过程中的状态数据进行详细的记录,其中包括应用程序运行过程中对于句柄的占用和释放的过程数据,进而能够确定句柄占用时刻。车辆中控系统能够直接获取到系统的当前时刻,由此直接计算出时间差。时长阈值可以根据一般应用程序的运行时长来选择。假如有应用程序占用句柄的时刻距离当前时刻已经有两小时,还未释放,则很大概率该句柄为异常占用。通过以上方案,能够快速定位到具体的没有释放句柄的应用程序。尤其是随着应用程序的功能越来越复杂,代码量越来越多时,采用本方案能够提高定位效率。
在一些方案中,所述异常占用调取模块,还可以用于执行:调用句柄跟踪日志,所述句柄跟踪日志记录当前时刻占用句柄的应用程序。调用应用程序运行日志,所述应用程序运行日志记录当前时刻处于运行状态的应用程序。对比所述句柄跟踪日志和所述应用程序运行日志,将记录于所述句柄跟踪日志中而未记录于调用应用程序运行日志中的应用程序作为异常占用句柄的异常应用程序。即,如果应用程序已经被关闭,理论上应及时释放句柄,但是此时在句柄跟踪日志中依然显示该应用程序占用句柄,就必然能够确定该应用程序对句柄的占用是异常的。
进一步地,以上方案中还包括释放模块,释放所述异常应用程序占用的句柄。通过本方案,能够将被异常占用的句柄及时地释放出来,及时补充句柄数量,避免句柄资源中的句柄数量减少影响到后续应用程序的正常运行。
在一些实施例中还提供一种存储介质,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行方法实施例中任一方案所述的句柄资源监控方法。
如图5所示,本申请一些实施例中还提供一种电子设备,所述电子设备包括至少一个处理器51和至少一个存储器52,至少一个所述存储器52中存储有程序信息,至少一个所述处理器51读取所述程序信息后执行以上任一项所述的句柄资源监控方法。所述电子设备还可以包括:输入装置53和输出装置55。处理器51、存储器52、输入装置53和输出装置55可以通信连接。存储器52作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器51通过运行存储在存储器52中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述任一方案提供的句柄资源监控方法。存储器52作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的句柄资源监控方法对应的程序指令/模块。处理器51通过运行存储在存储器52中的非易失性软件程序、指令以及模块,从而执行各种功能应用以及数据处理,即实现上述实施例中的句柄资源监控方法。存储器52可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据句柄资源监控方法的使用所创建的数据等。此外,存储器52可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器52可选包括相对于处理器51远程设置的存储器,这些远程存储器可以通过网络连接至执行句柄资源监控方法的装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置53可接收输入的用户点击,以及产生与句柄资源监控方法的用户设置以及功能控制有关的信号输入。输出装置55可包括显示屏等显示设备。在所述一个或者多个模块存储在所述存储器52中,当被所述一个或者多个处理器51运行时,执行上述任意方法实施例中的句柄资源监控方法。
本申请实施例提供一种车辆,所述车辆包括以上方案所述的句柄资源监控装置或存储介质或电子设备。本申请提供的车辆,其中控系统能够避免句柄资源由于句柄异常占用而导致的不足,并且能满足复杂系统中快速定位到出现句柄异常占用的应用程序,提升车辆中控系统的性能。
根据需要,可以将上述各技术方案进行结合,以达到最佳技术效果。
以上的仅是本申请的原理和较佳的实施例。应当指出,对于本领域的普通技术人员来说,在本申请原理的基础上,还可以做出若干其它变型,也应视为本申请的保护范围。
Claims (10)
1.一种句柄资源监控方法,其特征在于,包括:
配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄;
获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值;
若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息。
2.根据权利要求1所述的句柄资源监控方法,其特征在于,所述获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值,包括:
获取占用次数变量,所述占用次数变量用于记录调用所述句柄链接函数执行分配句柄至应用程序的次数;
获取释放次数变量,所述释放次数变量用于记录调用所述句柄链接函数执行回收应用程序释放的句柄的次数;
将所述占用次数变量与所述释放次数变量的次数差作为所述差值。
3.根据权利要求1所述的句柄资源监控方法,其特征在于,所述获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值,包括:
设置次数变量且所述次数变量的初始值为零,所述次数变量在调用所述句柄链接函数执行分配句柄至应用程序时加一,所述次数变量在调用所述句柄链接函数执行回收应用程序释放的句柄时减一;
以所述次数变量的实际值作为所述差值。
4.根据权利要求1所述的句柄资源监控方法,其特征在于,所述若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息后,还包括:
调用句柄跟踪日志,所述句柄跟踪日志记录每一应用程序运行过程中对于句柄的占用和释放的过程数据;
提取所述句柄跟踪日志中的至少一个句柄占用时刻;
将所述至少一个句柄占用时刻中与当前时刻之间的时间差大于时长阈值的句柄占用时刻作为异常占用时刻;
以所述异常占用时刻对应的应用程序作为异常占用句柄的异常应用程序。
5.根据权利要求1所述的句柄资源监控方法,其特征在于,所述若所述差值大于设定阈值,则发出用于提示句柄异常占用的提示信息后,还包括:
调用句柄跟踪日志,所述句柄跟踪日志记录当前时刻占用句柄的应用程序;
调用应用程序运行日志,所述应用程序运行日志记录当前时刻处于运行状态的应用程序;
对比所述句柄跟踪日志和所述应用程序运行日志,将记录于所述句柄跟踪日志中而未记录于调用应用程序运行日志中的应用程序作为异常占用句柄的异常应用程序。
6.根据权利要求4或5所述的句柄资源监控方法,其特征在于,还包括:
释放所述异常应用程序占用的句柄。
7.一种句柄资源监控装置,其特征在于,包括:
链接函数配置模块,用于配置与句柄资源相关联的句柄链接函数,所述句柄链接函数被调用时执行:分配句柄至应用程序或回收应用程序释放的句柄;
差值获取模块,用于获取调用所述句柄链接函数执行分配句柄至应用程序的次数与调用所述句柄链接函数执行回收应用程序释放的句柄的次数之间的差值;
监控结果输出模块,用于在所述差值大于设定阈值时,发出用于提示句柄异常占用的提示信息。
8.一种存储介质,其特征在于,所述存储介质中存储有程序信息,计算机读取所述程序信息后执行权利要求1-6任一项所述的句柄资源监控方法。
9.一种电子设备,其特征在于,所述电子设备包括至少一个处理器和至少一个存储器,至少一个所述存储器中存储有程序信息,至少一个所述处理器读取所述程序信息后执行权利要求1-6任一项所述的句柄资源监控方法。
10.一种车辆,其特征在于,所述车辆包括权利要求7所述的句柄资源监控装置或权利要求8所述的存储介质或权利要求9所述的电子设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132771.5A CN116431298A (zh) | 2023-02-17 | 2023-02-17 | 句柄资源监控方法、装置、存储介质、电子设备及车辆 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132771.5A CN116431298A (zh) | 2023-02-17 | 2023-02-17 | 句柄资源监控方法、装置、存储介质、电子设备及车辆 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431298A true CN116431298A (zh) | 2023-07-14 |
Family
ID=87089694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310132771.5A Pending CN116431298A (zh) | 2023-02-17 | 2023-02-17 | 句柄资源监控方法、装置、存储介质、电子设备及车辆 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431298A (zh) |
-
2023
- 2023-02-17 CN CN202310132771.5A patent/CN116431298A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106933733B (zh) | 一种确定内存泄露位置的方法和装置 | |
KR20060046281A (ko) | 컴퓨터 프로그램의 미응답 부분을 식별하기 위한 방법,시스템 및 장치 | |
CN112199240B (zh) | 一种节点故障时进行节点切换的方法及相关设备 | |
US10274919B2 (en) | Method, device and computer program product for programming a plurality of control units | |
CN112445686A (zh) | 内存泄漏检测方法、装置以及计算机可读存储介质 | |
CN117591327A (zh) | core文件生成方法、装置、电子设备及存储介质 | |
CN117252559B (zh) | 业务流程的处理方法、装置、计算机设备、存储介质 | |
CN116431298A (zh) | 句柄资源监控方法、装置、存储介质、电子设备及车辆 | |
CN116795408A (zh) | Ecu的软件升级方法、系统及车辆 | |
CN111400087A (zh) | 一种操作系统的控制方法、终端以及存储介质 | |
US9348667B2 (en) | Apparatus for managing application program and method therefor | |
CN115755867A (zh) | 一种车辆诊断方法及相关装置 | |
CN111352710A (zh) | 进程管理方法及装置、计算设备、存储介质 | |
CN113760631B (zh) | 页面加载时长确定方法、装置、设备和存储介质 | |
CN113805910B (zh) | 一种应用中的数据共享的方法及系统 | |
CN113157513B (zh) | 一种堆内存破坏检测方法、装置、电子设备及存储介质 | |
CN118550755B (zh) | 一种堆内存越界定位方法、装置、设备及介质 | |
CN112100089B (zh) | 内存管理方法 | |
CN110046004B (zh) | 一种适配自动引用计数arc特性的方法、装置及电子设备 | |
CN114138588B (zh) | 一种控制器的调试信息导出方法、系统、设备以及介质 | |
CN108664293B (zh) | 安卓系统中的应用控制方法和装置 | |
CN116361176A (zh) | 嵌入式设备的控制方法、装置、处理器和电子设备 | |
CN116719690A (zh) | 一种系统资源的监控方法、装置、设备和存储介质 | |
CN117917646A (zh) | 进程管控方法、装置、电子设备及存储介质 | |
CN117971626A (zh) | 基于多进程协程模型的共享内存泄漏检测方法 |
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 |