一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

系统资源管理方法及相关设备与流程

2022-06-08 19:27:06 来源:中国专利 TAG:


1.本技术涉及程序开发技术领域,尤其涉及一种系统资源管理方法及相关设备。


背景技术:

2.对于程序中一些系统资源是非常宝贵的,但是存在一些开发人员由于人为疏忽而导致了资源没有释放,从而运行时间比较长时会导致程序崩溃。因而,需要对一些系统资源进行释放。
3.目前,开发人员需要人工对每种资源释放,效率很低,需要大量重复工作。并且,对于初级开发人员还会出现不知道哪些系统资源需要释放,从而无法正确地释放系统资源的情况。


技术实现要素:

4.本技术实施例提供了一种系统资源管理方法及相关设备,可以解决开发人员需要人工对每种资源释放,效率低下,以及初级开发人员还会出现不知道哪些系统资源需要释放,从而无法正确地释放系统资源问题。
5.本技术实施例的第一方面提供了一种系统资源管理方法,包括:
6.获取目标系统资源的创建系统函数和释放系统函数;
7.建立所述创建系统函数和所述释放系统函数的对应关系;
8.对所述目标系统资源的调用进行监控;
9.当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。
10.可选地,所述获取目标系统资源的创建系统函数和释放系统函数的步骤之前,所述方法还包括:
11.通过预设配置模板定义系统资源的配置信息,所述配置信息包括:所述系统资源的创建系统函数、所述系统资源的创建系统函数的模块名称、所述系统资源的释放系统函数和所述系统资源的释放系统函数模块名称;
12.基于代码基线对代码进行增量上的自动扫描检查;
13.若扫描检查到匹配所述配置信息的代码,则增加所述配置信息所对应的系统资源为目标系统资源。
14.可选地,所述对所述目标系统资源的调用进行监控的步骤,包括:
15.通过独立于调用所述目标系统资源的函数的额外进程对所述目标系统资源的调用进行监控。
16.可选地,所述通过独立于调用所述目标系统资源的函数的额外进程对所述目标系统资源的调用进行监控的步骤,包括:
17.获取所述目标系统资源的分配信息和销毁信息;
18.将所述分配信息和所述销毁信息序列化生成消息数据;
19.对当前相同类型的目标系统资源的消息数据按照时间排序,并对不同类型的目标系统资源的消息数据进行分类传输。
20.可选地,所述获取所述目标系统资源的分配信息和销毁信息的步骤,包括:
21.获取当前目标系统资源的调用堆栈信息,其中,所述调用堆栈信息的获取方式包括:
22.通过stackwalk堆栈步方式获取,和/或,
23.基于汇编代码通过ebp扩展基址指针寄存器和esp扩展栈指针寄存器来回溯的方式获取。
24.可选的,所述对当前相同类型的目标系统资源的消息数据按照时间排序,并对不同类型的目标系统资源的消息数据进行分类传输的步骤之前,所述方法还包括:
25.通过template《t》class scopedresource创建不同目标系统资源监控的模板特化类,其中,t为成员变量,template表示模板,scopedresource表示资源监控;
26.通过scopedresource(t resource):resource_(resource)将目标系统资源的参数赋值给上述成员变量t来存储;
27.通过构造函记录所述目标系统资源的创建时间,具体可以通过time start=time::currenttime()来实现,其中,time start表示创建时间。
28.可选的,所述当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放的步骤,包括:
29.若调用所述目标系统资源的函数为内部使用的情况时,则当监控到调用所述目标系统资源的函数执行完成后,所述函数自动的执行其析构函数~scopedresource(),已通过所述析构函数~scopedresource()对所述目标系统资源进行释放;
30.若调用所述目标系统资源的函数为外部使用的情况时,需要依据当前目标系统资源的类型来实例化一个模板特化对象autoresource,并且在所述外部使用的情况为全局使用和/或类成员函数时,所述autoresource创建在所述目标系统资源后,以确保所述autoresource在资源后面释放。
31.本技术实施例第二方面提供了一种系统资源管理装置,包括:
32.获取单元,用于获取目标系统资源的创建系统函数和释放系统函数;
33.创建单元,用于建立所述创建系统函数和所述释放系统函数的对应关系;
34.监控单元,用于对所述目标系统资源的调用进行监控;
35.释放单元,用于当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。
36.本技术实施例第三方面提供了一种电子设备,包括存储器、处理器,所述处理器用于执行存储器中存储的计算机程序时实现上述的系统资源管理方法的步骤。
37.本技术实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的系统资源管理方法的步骤。
38.综上,本技术实施例提供的系统资源管理方法,通过获取目标系统资源的创建系
统函数和释放系统函数;建立所述创建系统函数和所述释放系统函数的对应关系;并对所述目标系统资源的调用进行监控;以当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。由于通过从底层设计了一套框架自动化的进行系统资源释放的处理过程,从而对于系统资源的管理能够更智能更适合所有的情况。从而不需要修改程序能够适配不同类型的系统资源,以实现对目标系统资源的自动释放,不需要开发人员人工对系统资源进行释放,也不需要开放人员掌握哪些资源需要释放,哪些资源不需要释放。
39.相应地,本发明实施例提供的系统资源管理装置、电子设备和计算机可读存储介质,也同样具有上述技术效果。
附图说明
40.图1为本技术实施例提供的一种可能的系统资源管理方法的流程示意图;
41.图2为本技术实施例提供的一种可能的系统资源管理装置的示意性结构框图;
42.图3为本技术实施例提供的一种可能的系统资源管理装置的硬件结构示意图;
43.图4为本技术实施例提供的一种可能的电子设备的示意性结构框图;
44.图5为本技术实施例提供的一种可能的计算机可读存储介质的示意性结构框图。
具体实施方式
45.本技术实施例提供了一种系统资源管理方法及相关设备,可以解决开发人员需要人工对每种资源释放,效率低下,以及初级开发人员还会出现不知道哪些系统资源需要释放,从而无法正确地释放系统资源问题。
46.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。
47.请参阅图1,为本技术实施例提供的一种系统资源管理方法的流程图,具体可以包括:s110-s140。
48.s110,获取目标系统资源的创建系统函数和释放系统函数。
49.对于系统资源,需要去获取系统的哪些资源是必须要进行释放的目标系统资源,而对于需要释放的资源才需要进行自动的监控和释放,而对于非必要的资源则不需要进行释放,那么就需要统计和获取目标系统资源的创建系统函数和释放系统函数。
50.示例性的,目标系统资源包括系统句柄handle,是整个windows编程的基础。一个句柄是指使用的一个唯一的整数值,即一个4字节(64位程序中为8字节)长的数值,来标识
应用程序中的不同对象和同类对象中的不同的实例,诸如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。系统句柄包括一些系统api的功能,如读写文件的句柄,内存映射文件,网络套接字句柄等。
51.示例性的,获取目标系统资源的创建系统函数和释放系统函数的步骤之前,上述方法还包括:
52.通过预设配置模板定义系统资源的配置信息,所述配置信息包括:所述系统资源的创建系统函数、所述系统资源的创建系统函数的模块名称、所述系统资源的释放系统函数和所述系统资源的释放系统函数模块名称;
53.基于代码基线对代码进行增量上的自动扫描检查;
54.若扫描检查到匹配所述配置信息的代码,则增加所述配置信息所对应的系统资源为目标系统资源。
55.需要说明的是,通过s110收集了所有相关的目标系统资源,然而随着时间的推移,系统会发布新的版本,从而会提供新的资源和相关的系统api函数,那么针对新的资源,上述系统资源管理方法需要不经过修改就能够自动适配和支持。可以通过配置的方式来提供给使用者通过添加配置项就可以自动扩展新的系统资源。
56.示例性的,config:{使用一个config的文件来配置。
57.每一个配置项需要4个数据,配置项如下:
58.systemmodulename:“创建资源的系统函数所属的模块名称”;
59.systemapiname:“创建资源的系统api函数名称”;
60.systemmodulename2:“释放资源的系统函数所属的模块名称”;
61.systemapiname2:“释放资源的系统api函数名称”;
62.如果需要添加新的配置项则可以不断的在配置文件中添加。
63.}
64.配置项一个是扫描代码时知道哪些是具有资源的调用,同时对该资源进行自动释放时应该如何释放。
65.示例性的,可以提供一套底层自动化的框架,对于开发人员可以是透明无需关注实现细节的底层自动化的框架。要想能够自动化的监控和释放则不能从开发层的角度出发。可以设定规则是从一个版本的代码基线开始,首先对自动化的扫描基线版本的代码,识别出所有的资源创建,然后在基线基础上,后续开发人员提交开发的新功能代码时,则在代码的持续集成服务器上通过提交代码的检查钩子来对代码进行增量上的扫描检查。
66.通过上述方法,可以提高代码的准确性,同时也可以提高检查的速度。当添加了后续的代码后提交代码的开发人员则可以观察到添加的自动监控和释放资源的功能并且可以起到人工再次检查的效果。检查资源的基于s110中获取目标系统资源的创建系统函数和释放系统函数,那么凡是代码中有调用对应的系统api函数则存在资源分配的情况,那么则进行标记。
67.在一些示例中,还可以区分出函数内部使用和函数外部使用这两种使用方案,为后续对目标系统资源的释放方式提供依据。基于函数内部使用指在一个函数中使用,该函数结束则使用完毕。函数外部使用,表示该资源句柄的存放是在一个类的成员变量中,或者是一个全局的变量中,因此这种属于函数外部使用,该资源要么是随着类的对象的创建而
创建,随着类的对象销毁而需要进行释放。而全局的则是需要随着程序退出时进行释放。
68.s120,建立上述创建系统函数和上述释放系统函数的对应关系。
69.示例性的,对于每种资源类型的释放是不一样的,需要形成好配对关系。
70.例如,系统句柄的创建系统函数:handle handle=createfile(参数);以及创建系统函数:handle handle=createfilemapping(参数);系统句柄则比较多还包括其他系统句柄的创建,需要收集所有相关的句柄创建系统函数。系统句柄的释放系统函数:closehandle(handle),可以通过系统函数closehandle来释放。这里可以将建立上述创建系统函数和上述释放系统函数的对应关系。
71.再如,网络套接字句柄的创建系统函数:int sockfd=socket(参数);网络套接字句柄的释放系统函数:close(sockfd),可以通过系统函数close来释放。这里可以将建立上述创建系统函数和上述释放系统函数的对应关系。
72.又如,系统信息句柄的创建系统函数:struct addrinfo*results;可以创建getaddrinfo(参数..&results);其中,核心参数&results是创建的系统资源数据。系统信息句柄的释放系统函数:freeaddrinfo(results);可以通过释放系统函数freeaddrinfo来释放。这里可以将建立上述创建系统函数和上述释放系统函数的对应关系。
73.通过上述示例,可以收集到所有相关系统资源的创建系统函数以及释放系统函数,并且这些资源的创建必须使用系统函数来创建,并且需要形成其配对关系。
74.s130,对上述目标系统资源的调用进行监控。
75.示例性的,上述对上述目标系统资源的调用进行监控的步骤,包括:
76.通过独立于调用上述目标系统资源的函数的额外进程对上述目标系统资源的调用进行监控。
77.需要说明的是,对上述目标系统资源的调用进行监控,可以包括统计资源的使用情况和监控资源的分配释放以及能够定位资源的创建时间,创建资源的密集度,创建资源的数量等。
78.示例性的,可以建立一个资源监控中心,此监控中心可以是一个独立于调用上述目标系统资源的函数程序的额外进程,资源监控中心是独立进程用于显示资源的使用情况以及每个资源的创建和销毁情况。而为了不影响当前调用函数程序的性能和稳定性,所以需要创建独立的资源监控中心来展示当前资源的使用情况,其中,可以包括每个资源的创建时间,销毁时间,以及会显示当前总共使用了每种资源的个数。监控中心则通过进程间通信来从后面的模块中获取资源的使用数据。那么监控中心主要将对这些数据使用网页或者一些界面控件来展示使用情况。例如,可以使用一个独立进程monitorresource来监控资源,其具有的功能则是接收通过进程间通信发送给监控进程,监控进程获取到数据后进行界面展示。
79.示例性的,上述通过独立于对上述目标系统资源进行释放的额外进程对上述目标系统资源的调用进行监控的步骤,包括:
80.获取上述目标系统资源的分配信息和销毁信息;
81.将上述分配信息和所述销毁信息序列化生成消息数据;
82.对当前相同类型的目标系统资源的消息数据按照时间排序,并对不同类型的目标系统资源的消息数据进行分类传输。
83.示例性的,获取上述目标系统资源的分配信息和销毁信息的步骤,包括:
84.获取当前目标系统资源的调用堆栈信息,其中,上述调用堆栈信息的获取方式包括:
85.通过stackwalk堆栈步方式获取,和/或,
86.基于汇编代码通过ebp扩展基址指针寄存器和esp扩展栈指针寄存器来回溯的方式获取。
87.具体的,上述监控的步骤还需创建一个资源数据分发中心,此中心是属于资源调用函数程序的一个组件用于将资源调用函数程序的资源信息进行转换分类并通过进程间通信传递给独立进程的资源监控中心sendresource。该中心收到资源的分配和销毁后会序列化成方便与监控中心通信的消息数据,并对当前时刻相关的资源进行分类传输,同时对每种资源按照时间顺序进行一个排序,包括不同种类的资源也会按照时间先后顺序进行排序,将同类资源打包到一起传输,从而在监控中心进行展示时展示的曲线和界面更具有连续性。
88.具体的,对每个资源的创建,在创建的时候可以植入获取当前的调用堆栈情况,从而任何时刻都可以展示或者打印当前资源创建的函数调用堆栈信息,从而便于排查哪些资源调用的资源分配比较多,哪些时刻资源分配比较多,以及其函数调用堆栈的调用链的情况。具体获取函数调用堆栈则可以通过stackwalk方法来获取,也可以通过汇编代码来通过ebp寄存器esp寄存器来回溯的方式来获取函数调用堆栈。
89.示例性的,上述对当前相同类型的目标系统资源的消息数据按照时间排序,并对不同类型的目标系统资源的消息数据进行分类传输的步骤之前,所述方法还包括:
90.通过template《t》class scopedresource创建不同目标系统资源监控的模板特化类,其中,t为成员变量,template表示模板,scopedresource表示资源监控;
91.通过scopedresource(t resource):resource_(resource)将目标系统资源的参数赋值给上述成员变量t来存储;
92.通过构造函记录所述目标系统资源的创建时间,具体可以通过time start=time::currenttime()来实现,其中,time start表示创建时间。
93.具体的,可以通过模板类template《t》class scopedresource类来封装相关的功能。其中,需要一个成员变量来存储对应的资源句柄,因为资源句柄的类型有多种,有的是handle,有的是socket等,所以需要通过模板来适配不同的资源类型。利用t resource_;定义此成员变量存储资源句柄。设计其构造函数需要传入对应创建的资源句柄。模板设计了一个通用的方法,对于每一种具体的句柄需要实现对应模板特化的功能。例如,如果资源是handle类型,则需要实现一个模板特化的class scopedresource《handle》的模板特化类。对于其他资源也同样的实现模板特化的类。对于每一种特化模板类都需要完成以下功能:通过scopedresource(t resource):resource_(resource)将目标系统资源的参数赋值给上述成员变量t来存储。在构造函数中记录此资源的创建时间,从而方便统计资源的使用时长。例如利用语句time start=time::currenttime();定义起始时间等于当前时间。同时可以通过上述函数调用堆栈来获取当前的调用堆栈stackwalk从而来获取当前资源分配的调用堆栈信息。同时,可以通过调用sendresource组件来将当前的资源信息发送给监控中心。具体发送的数据可以包括资源类型,当前创建的时间,以及当前的函数调用堆栈,这些
信息可以通过组件sendresource将信息进行打包和序列化发送给监控进程则可以进行展示。
94.s140,当监控到调用上述目标系统资源的函数执行完成后,基于上述目标系统资源所属的预设类型,通过与上述目标系统资源的创建系统函数所对应的释放系统函数对上述目标系统资源进行释放。
95.示例性的,上述当监控到调用所述目标系统资源的函数执行完成后,基于上述目标系统资源所属的预设类型,通过与上述目标系统资源的创建系统函数所对应的释放系统函数对上述目标系统资源进行释放的步骤,包括:
96.若调用所述目标系统资源的函数为内部使用的情况时,则当监控到调用所述目标系统资源的函数执行完成后,所述函数自动的执行其析构函数~scopedresource(),已通过所述析构函数~scopedresource()对所述目标系统资源进行释放;
97.若调用所述目标系统资源的函数为外部使用的情况时,需要依据当前目标系统资源的类型来实例化一个模板特化对象autoresource,并且在所述外部使用的情况为全局使用和/或类成员函数时,所述autoresource创建在所述目标系统资源后,以确保所述autoresource在资源后面释放。
98.具体的,而对于函数外部使用的情况,其不是在一个函数体内,那么情况则分是全局使用的情况和类成员函数的还有情况。针对这两种情况,需要依据当前资源类型来实例化一个模板特化的对象autoresource,并存入当前资源的句柄。对于类中的成员变量,autoresource构造必须在其后面构造,这样就可以保障对象后释放。对于全局对象的情况我们需要创建在资源的后面,则保障了我们的autoresource在资源后面释放。例如:
99.classs test{例如类test
100.handle h;其有一个成员变量句柄h;
101.scopedresource《handle》autoresource(h);自动填入的对象在其后面声明,从而保障对象在要释放的系统资源后进行释放。
102.对于全局变量的情况如下:
103.handle h;其有一个成员变量句柄h;
104.scopedresource《handle》autoresource(h);自动填入的对象在其后面声明,从而保障对象在要释放的系统资源后进行释放。从而保证在需要执行的程序执行后才对资源进行释放,避免提前对资源释放。
105.具体的,可以在资源调用函数的析构函数~scopedresource()中来释放资源。释放资源可以使用对应的系统api。s110中获取目标系统资源的创建系统函数和释放系统函数,设置了每种资源对应创建的系统api函数,同时也记录了每种资源释放时使用哪种系统ap来释放,那么基于s120中的匹配关系,可以获取系统函数来释放资源。例如,通过语句handle hmodule=系统函数getmodule(“systemmodulename2”)获取系统释放资源api函数所对应的模块句柄。然后来获取对应释放资源的api函数。api func=系统函数getprocaddress(hmodule,“systemapiname2”);func(resource_);其中,systemapiname2为释放资源的api函数名称。释放完成后,可以获取当前时间数据,并且或当前释放的函数调用堆栈信息,并且通过sendresource来将信息发送给监控中心来告知当前资源已经释放,从而监控中心可以动态展示资源的创建和销毁。
106.综上,上述实施例提供的系统资源管理方法,通过获取目标系统资源的创建系统函数和释放系统函数;建立所述创建系统函数和所述释放系统函数的对应关系;并对所述目标系统资源的调用进行监控;以当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。由于通过从底层设计了一套框架自动化的进行系统资源释放的处理过程,从而对于系统资源的管理能够更智能更适合所有的情况。从而不需要修改程序能够适配不同类型的系统资源,以实现对目标系统资源的自动释放,不需要开发人员人工对系统资源进行释放,也不需要开放人员掌握哪些资源需要释放,哪些资源不需要释放。
107.上面对本技术实施例中系统资源管理方法进行了描述,下面对本技术实施例中的系统资源管理装置进行描述。
108.请参阅图2,本技术实施例中描述系统资源管理装置的一个实施例,可以包括:
109.获取单元201,用于获取目标系统资源的创建系统函数和释放系统函数;
110.创建单元202,用于建立所述创建系统函数和所述释放系统函数的对应关系;
111.监控单元203,用于对上述目标系统资源的调用进行监控;
112.释放单元204,用于当监控到调用上述目标系统资源的函数执行完成后,基于上述目标系统资源所属的预设类型,通过与上述目标系统资源的创建系统函数所对应的释放系统函数对上述目标系统资源进行释放。
113.综上,上述实施例提供的系统资源管理装置,通过获取目标系统资源的创建系统函数和释放系统函数;建立所述创建系统函数和所述释放系统函数的对应关系;并对所述目标系统资源的调用进行监控;以当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。由于通过从底层设计了一套框架自动化的进行系统资源释放的处理过程,从而对于系统资源的管理能够更智能更适合所有的情况。从而不需要修改程序能够适配不同类型的系统资源,以实现对目标系统资源的自动释放,不需要开发人员人工对系统资源进行释放,也不需要开放人员掌握哪些资源需要释放,哪些资源不需要释放。
114.上面图2从模块化功能实体的角度对本技术实施例中的系统资源管理装置进行了描述,下面从硬件处理的角度对本技术实施例中的系统资源管理装置进行详细描述,请参阅图3,本技术实施例中的系统资源管理装置300一个实施例,包括:
115.输入装置301、输出装置302、处理器303和存储器304,其中,处理器303的数量可以一个或多个,图3中以一个处理器303为例。在本技术的一些实施例中,输入装置301、输出装置502、处理器303和存储器304可通过总线或其它方式连接,其中,图3中以通过总线连接为例。
116.其中,通过调用存储器304存储的操作指令,处理器303,用于执行如下步骤:
117.获取目标系统资源的创建系统函数和释放系统函数;
118.建立所述创建系统函数和所述释放系统函数的对应关系;
119.对所述目标系统资源的调用进行监控;
120.当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属
的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。
121.通过调用存储器304存储的操作指令,处理器303,还用于执行图1对应的实施例中的任一方式。
122.请参阅图4,图4为本技术实施例提供的电子设备的实施例示意图。
123.如图4所示,本技术实施例提供了一种电子设备,包括存储器410、处理器420及存储在存储器420上并可在处理器420上运行的计算机程序411,处理器420执行计算机程序411时实现以下步骤:
124.获取目标系统资源的创建系统函数和释放系统函数;
125.建立所述创建系统函数和所述释放系统函数的对应关系;
126.对所述目标系统资源的调用进行监控;
127.当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。
128.在具体实施过程中,处理器420执行计算机程序411时,可以实现图1对应的实施例中任一实施方式。
129.由于本实施例所介绍的电子设备为实施本技术实施例中一种系统资源管理装置所采用的设备,故而基于本技术实施例中所介绍的方法,本领域所属技术人员能够了解本实施例的电子设备的具体实施方式以及其各种变化形式,所以在此对于该电子设备如何实现本技术实施例中的方法不再详细介绍,只要本领域所属技术人员实施本技术实施例中的方法所采用的设备,都属于本技术所欲保护的范围。
130.请参阅图5,图5为本技术实施例提供的一种计算机可读存储介质的实施例示意图。
131.如图5所示,本实施例提供了一种计算机可读存储介质500,其上存储有计算机程序511,该计算机程序511被处理器执行时实现如下步骤:
132.获取目标系统资源的创建系统函数和释放系统函数;
133.建立所述创建系统函数和所述释放系统函数的对应关系;
134.对所述目标系统资源的调用进行监控;
135.当监控到调用所述目标系统资源的函数执行完成后,基于所述目标系统资源所属的预设类型,通过与所述目标系统资源的创建系统函数所对应的释放系统函数对所述目标系统资源进行释放。
136.在具体实施过程中,该计算机程序511被处理器执行时可以实现图1对应的实施例中任一实施方式。
137.需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。
138.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产
品的形式。
139.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
140.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
141.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
142.本技术实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,当计算机软件指令在处理设备上运行时,使得处理设备执行如图1对应实施例中的系统资源管理方法中的流程。
143.所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
144.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
145.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
146.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
147.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
148.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
149.以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修该,或者对其中部分技术特征进行等同替换;而这些修该或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献