一种内存清空的方法及装置、设备和存储介质与流程

文档序号:31127986发布日期:2022-08-13 04:21阅读:106来源:国知局
一种内存清空的方法及装置、设备和存储介质与流程

1.本发明涉及机器人技术领域,特别是一种内存清空的方法及装置、设备和存储介质。


背景技术:

2.工业机器人是广泛用于工业领域的多关节机械手或多自由度的机器装置,具有一定的自动性,可依靠自身的动力能源和控制能力实现各种工业加工制造功能。工业机器人被广泛应用于电子、物流、化工等各个工业领域之中。
3.在机器人运行时,程序会对运行的函数进行赋值或者在拼接时,会对函数的内容进行保存。当机器人运行的程序量较大时,函数所保存的数据量也会相应增加,占据大量的运行内存与存储内存,最终有可能引起机器人死机的情况发生。


技术实现要素:

4.针对上述缺陷,本发明的目的在于提出一种内存清空的方法及装置、设备和存储介质,以减少机器人运行程序中的数据量保存量,确保内存处于健康的状态,使机器人能够保持正常的运作。
5.为达此目的,本发明采用以下技术方案:一种内存清空的方法,包括以下步骤:
6.步骤s1:搜索代码中所有的字符串型变量及其对应的字符串型变量地址,对所述字符串型变量地址进行标记并赋于字符串型变量地址初始值;
7.步骤s2:搜索被标记字符串型变量的赋值关系,当字符串型变量使用其他字符串型变量地址进行赋值时,该字符串型变量地址的标记值减1,当字符串型变量地址用于赋值其他字符串型变量时,该字符串型变量地址的标记值加1;
8.步骤s3:统计字符串型变量地址的标记值以及初始值,若字符串型变量地址的标记值和初始值之和小于或等于0,对该字符串型变量进行清空。
9.优选的,步骤s3中还包括步骤s31,所述步骤s31的具体步骤为:当字符串型变量地址的初始值和标记值之和为0时,获取该字符串型变量所引用的字符串型变量地址以及被赋值函数,以被引用的字符串型变量地址作为被赋值函数的引用基础。
10.优选的,所述步骤s1的具体步骤为:以string为搜索条件,对代码进行全面搜索,获取所有的字符串型函数,获取后对字符串型函数地址进行标记;
11.对标记后所述字符串型函数地址赋予1的初始值。
12.一种内存清空的装置,使用上述一种内存清空的方法包括搜索模块、计算模块以及清空模块;
13.所述搜索模块用于搜索代码中所有的字符串型变量及其对应的字符串型变量地址,对所述字符串型变量地址进行标记并赋于字符串型变量地址初始值;
14.所述计算模块用于搜索被标记字符串型变量的赋值关系,当字符串型变量使用其他字符串型变量地址进行赋值时,该字符串型变量地址的标记值减1,当字符串型变量地址
用于赋值其他字符串型变量时,该字符串型变量地址的标记值加1;
15.所述清空模块用于统计字符串型变量地址的标记值以及初始值,若字符串型变量地址的标记值和初始值之和小于或等于0,对该字符串型变量进行清空。
16.优选的,还包括赋值模块,所述赋值模块用于当字符串型变量地址的初始值和标记值之和为0时,获取该字符串型变量所引用的字符串型变量地址以及被赋值函数,以被引用的字符串型变量地址作为被赋值函数的引用基础。
17.优选的,所述搜索模块还包括检索模块,所述检索模块用于以string为搜索条件,对代码进行全面搜索,获取所有的字符串型函数,获取后对字符串型函数地址进行标记;
18.对标记后所述字符串型函数地址赋予1的初始值。
19.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述一种内存清空的方法。
20.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述一种内存清空的方法。
21.上述技术方案中的一个技术方案具有如下优点或有益效果:本技术通过获取字符串型变量地址在代码中的赋值关系,计算字符串型变量地址被调用的次数,当字符串型变量地址的标记值为0时对该字符串型变量进清除,减少不必要的数据保存。确保内存处于健康的状态。
附图说明
22.图1是本发明的一个实施例的方法的流程图;
23.图2是本发明的一个实施例的装置的结构示意图。
具体实施方式
24.下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。
25.在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“长度”、“宽度”、“厚度”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
26.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
27.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
28.如图1~2所示,一种内存清空的方法,包括以下步骤:
29.步骤s1:搜索代码中所有的字符串型变量及其对应的字符串型变量地址,对所述字符串型变量地址进行标记并赋于字符串型变量地址初始值;
30.步骤s2:搜索被标记字符串型变量的赋值关系,当字符串型变量使用其他字符串型变量地址进行赋值时,该字符串型变量地址的标记值减1,当字符串型变量地址用于赋值其他字符串型变量时,该字符串型变量地址的标记值加1;
31.步骤s3:统计字符串型变量地址的标记值以及初始值,若字符串型变量地址的标记值和初始值之和小于或等于0,对该字符串型变量进行清空。
32.在程序的运行过程中,会存在多个不同的函数,不同函数之间所对应的功能也不一样。在众多函数中,存在有字符串型的字节赋值到函数中的情况。字符串型变量在运行中有生成、拼接、截取操作,其对于内存空间是会产生动态变化,而其他类型在赋值时是不需要动态申请内存空间的,字符串型类型的字节记录的是一串字符,长度和内容在运行期间可能发生变化,当多个函数相互赋值时,字符串型类型的字节的长度以及内容将会不断增加,从而导致运行内存与存储内存的不足。因此在本技术中,对不必要的字符串型变量进行清理,以减少内存不必要的占用。
33.首先在代码中找出有所的字符串型变量和对应的字符串型变量地址,并对字符串型变量地址进行标记以及赋予初始值。然后再搜索被标记字符串型字节的赋值关系,所述赋值关系仅仅为标记字符串型变量与标记字符串型变量地址之间赋值关系,该关系可以通过对代码搜索找出。当字符串型变量使用其他字符串型变量地址赋值时,该字符串型变量地址的标记值减1,当字符串型变量地址赋值于其他字符串型变量时,该字符串型变量地址的标记值加1,最后统计字符串型变量地址的标记值以及初始值,若字符串型字节的标记值以及初始值之和等于0,对该字符串型变量进行清空。减少不必要的数据保存。确保内存处于健康的状态。
34.为了更加清楚的了解本方法的方案,以下方的一个实施例作解释。
35.在一个实施例中,存在有a、b两个字符串型变量和c函数,c函数为其他类型的函数。a、b两个变量的标记值的初始值为1,其中a=(1,2,3),此时只是对a函数进行赋值,不涉及字符串型变量地址的赋值关系,故无需计算标记值。然后将a变量赋值于b变量,c函数调用b变量,在此过程中,b变量通过所述a变量的字符串型变量地址进行赋值,此时a变量的标记值加1,a函数的字符串型变量地址标记值和初始值之和为2,相对的b变量的字符串型变量地址的标记值减1,b变量的标记值之和为0。需要清除保存b变量的数据,然后c函数调用b变量的过程中,将a变量作为c函数的引用基础。最终可以删除掉b变量以及清空关于b变量的内存空间。减少不必要的数据保存。确保内存处于健康的状态。
36.优选的,步骤s3中还包括步骤s31,所述步骤s31的具体步骤为:当字符串型变量地址的初始值和标记值之和为0时,获取该字符串型变量所引用的字符串型变量地址以及被赋值的函数或被赋值的变量,以被引用的字符串型变量地址作为被赋值的函数或被赋值的变量的引用基础。
37.避免不必要的内存在情况后,某些应用对象缺少了引用的基础,故采用需要被删除的字符串型变量其所引用的字符串型变量地址作为被删除字符串型变量被赋值的函数或被赋值的变量的引用基础。
38.优选的,所述步骤s1的具体步骤为:以string为搜索条件,对代码进行全面搜索,获取所有的字符串型变量,获取后对字符串型变量地址进行标记;
39.对标记后所述字符串型变量地址赋予1的初始值。
40.一种内存清空的装置,使用上述一种内存清空的方法包括搜索模块、计算模块以及清空模块;
41.所述搜索模块用于搜索代码中所有的字符串型变量及其对应的字符串型变量地址,对所述字符串型变量地址进行标记并赋于字符串型变量地址初始值;
42.所述计算模块用于搜索被标记字符串型变量的赋值关系,当字符串型变量使用其他字符串型变量地址进行赋值时,该字符串型变量地址的标记值减1,当字符串型变量地址用于赋值其他字符串型变量时,该字符串型变量地址的标记值加1;
43.所述清空模块用于统计字符串型变量地址的标记值以及初始值,若字符串型变量地址的标记值和初始值之和小于或等于0,对该字符串型变量进行清空。
44.优选的,还包括赋值模块,所述赋值模块用于当字符串型变量地址的初始值和标记值之和为0时,获取该字符串型变量所引用的字符串型变量地址以及被赋值的函数或被赋值的变量,以被引用的字符串型变量地址作为被赋值的函数或被赋值的变量的引用基础。
45.优选的,所述搜索模块还包括检索模块,所述检索模块用于以string为搜索条件,对代码进行全面搜索,获取所有的字符串型变量,获取后对字符串型变量地址进行标记;
46.对标记后所述字符串型变量地址赋予1的初始值。
47.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述一种内存清空的方法。
48.一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述一种内存清空的方法。
49.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
50.尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1