实现针对无线电Web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其存储介质与流程

文档序号:24130643发布日期:2021-03-02 17:41阅读:96来源:国知局
实现针对无线电Web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其存储介质与流程
实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其存储介质
技术领域
[0001]
本发明涉及无线电检测系统领域,尤其涉及无线电web地图领域,具体是指一种实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其计算机可读存储介质。


背景技术:

[0002]
在以b/s为架构的无线电检测系统中,web端开发运用的javascript语言具有自已的一套回收机制,在大多数情况下的局部变量和对象使用完就会被系统回收。闭包是javascript的一大特色,很多web前端框架的高级应用都依靠闭包实现,但是在程序中使用了循环引用或者使用了闭包,长时间运行程序和不停地处理海量数据的情况下,很容易产生web端的内存泄漏。一旦web端产生了内存泄漏,有时无线电监测系统需要执行长达十几个小时的任务,任务还没执行到一半,可能就因web端处理海量数据的压力过大而导致整个程序执行缓慢甚至整个web端的页面崩溃的严重后果。而且想要复现这种问题,通常需要进行长时间的压力测试和人工对代码的排查,这样一来就降低了研发软件的效率。因此,本发明的目的在于提供一种高效率解决无线电监测系统长时间运行web端地图轨迹绘制内存泄漏的解决办法。


技术实现要素:

[0003]
本发明的目的是克服了上述现有技术的缺点,提供了一种满足高效率、操作简便、适用范围较为广泛的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其计算机可读存储介质。
[0004]
为了实现上述目的,本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其计算机可读存储介质如下:
[0005]
该实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法,其主要特点是,所述的方法包括绘制地图线型轨迹的步骤,具体包括以下步骤:
[0006]
(1)初始化,接收数据绘制,每隔5秒绘制线性轨迹,判断当前时间与上次记录时间的间隔是否大于5秒,如果是,则继续步骤(2);否则,继续步骤(1);
[0007]
(2)开始记录帧数,记为itemcount;
[0008]
(3)判断帧数itemcount是否小于总帧数totalitem,如果是,则继续步骤(5);否则,继续步骤(4);
[0009]
(4)移除特征集合features里的第一个点状图层特征,得到新的帧数itemcount;
[0010]
(5)如果itemcount%limitpartofitem等于0,则新建图层特征feature,向特征feature里添加当前的经纬度数据,将特征feature添加进图层。
[0011]
较佳地,所述的步骤(1)中得到新的帧数itemcount,具体为:
[0012]
根据以下公式得到新的帧数itemcount:
[0013]
itemcount=itemcount-limitpartofitem
×
2;
[0014]
其中,itemcount为当前帧的计数,limitpartofitem为添加线型图层特征feature的计数。
[0015]
较佳地,所述的步骤(1)中的初始化具体为:
[0016]
初始化页面,初始化地图线性图层的资源和对象,将初始化的线性图层添加至地图。
[0017]
较佳地,所述的方法还包括绘制地图点状轨迹的步骤,具体包括以下步骤:
[0018]
(1-1)初始化,接收数据绘制,每隔5秒绘制点状轨迹,判断当前时间与上次记录时间的间隔是否大于5秒,如果是,则继续步骤(1-2);否则,继续步骤(1-1);
[0019]
(1-2)获取点状图层特征集合;
[0020]
(1-3)判断点状图层特征集合长度是否大于等于上限,如果是,则移除集合中第一个图层特征;否则,继续步骤(1-1)。
[0021]
较佳地,所述的步骤(1-1)中的初始化具体为:
[0022]
初始化页面,初始化地图点状轨迹图层的资源和对象,并将初始化的点状轨迹图层添加至地图。
[0023]
该实现针对无线电web地图轨迹绘制避免内存泄漏的控制装置,其主要特点是,所述的装置包括:
[0024]
处理器,被配置成执行计算机可执行指令;
[0025]
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的步骤。
[0026]
该实现针对无线电web地图轨迹绘制避免内存泄漏的处理器,其主要特点是,所述的处理器被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的步骤。
[0027]
该计算机可读存储介质,其主要特点是,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的各个步骤。
[0028]
采用了本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其计算机可读存储介质,能够在保持浏览器页面在激活状态下,执行至少10个小时的地图轨迹相关的任务,保持浏览器内存在60mb左右,浏览器不崩溃。本发明能保持监测任务在长时间运行的状态下拖拽地图页面不卡顿。
附图说明
[0029]
图1为本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的web端长时间运行绘制地图线型轨迹示意图。
[0030]
图2为本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的web端长时间运行绘制地图点状轨迹示意图。
[0031]
图3为现有技术中内存占用为97mb的示意图。
[0032]
图4为现有技术中内存占用趋势不断上涨示意图。
[0033]
图5为本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的内存占用为60mb的示意图。
[0034]
图6为本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的内存在平稳状态示意图。
具体实施方式
[0035]
为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0036]
本发明的该实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法,所述的方法包括绘制地图线型轨迹的步骤,具体包括以下步骤:
[0037]
(1)初始化,接收数据绘制,每隔5秒绘制线性轨迹,判断当前时间与上次记录时间的间隔是否大于5秒,如果是,则继续步骤(2);否则,继续步骤(1);
[0038]
(2)开始记录帧数,记为itemcount;
[0039]
(3)判断帧数itemcount是否小于总帧数totalitem,如果是,则继续步骤(5);否则,继续步骤(4);
[0040]
(4)移除特征集合features里的第一个点状图层特征,得到新的帧数itemcount;
[0041]
(5)如果itemcount%limitpartofitem等于0,则新建图层特征feature,向特征feature里添加当前的经纬度数据,将特征feature添加进图层。
[0042]
作为本发明的优选实施方式,所述的步骤(1)中得到新的帧数itemcount,具体为:
[0043]
根据以下公式得到新的帧数itemcount:
[0044]
itemcount=itemcount-limitpartofitem
×
2;
[0045]
其中,itemcount为当前帧的计数,limitpartofitem为添加线型图层特征feature的计数。
[0046]
作为本发明的优选实施方式,所述的步骤(1)中的初始化具体为:
[0047]
初始化页面,初始化地图线性图层的资源和对象,将初始化的线性图层添加至地图。
[0048]
作为本发明的优选实施方式,所述的方法还包括绘制地图点状轨迹的步骤,具体包括以下步骤:
[0049]
(1-1)初始化,接收数据绘制,每隔5秒绘制点状轨迹,判断当前时间与上次记录时间的间隔是否大于5秒,如果是,则继续步骤(1-2);否则,继续步骤(1-1);
[0050]
(1-2)获取点状图层特征集合;
[0051]
(1-3)判断点状图层特征集合长度是否大于等于上限,如果是,则移除集合中第一个图层特征;否则,继续步骤(1-1)。
[0052]
作为本发明的优选实施方式,所述的步骤(1-1)中的初始化具体为:
[0053]
初始化页面,初始化地图点状轨迹图层的资源和对象,并将初始化的点状轨迹图层添加至地图。
[0054]
作为本发明的优选实施方式,该实现针对无线电web地图轨迹绘制避免内存泄漏的控制装置,其中包括:
[0055]
处理器,被配置成执行计算机可执行指令;
[0056]
存储器,存储一个或多个计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的步骤。
[0057]
作为本发明的优选实施方式,该实现针对无线电web地图轨迹绘制避免内存泄漏的处理器,其被配置成执行计算机可执行指令,所述的计算机可执行指令被所述的处理器执行时,实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的步骤。
[0058]
该计算机可读存储介质,其上存储有计算机程序,所述的计算机程序可被处理器执行以实现上述的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法的各个步骤。
[0059]
本发明的具体实施方式中,web端的开发语言为javascript,它与服务端语言java相比,java属于多线程即可以同时执行多个线程,而javascript则只能执行1个线程,只有当前线程执行完之后,才会执行下个线程。在类似java这种服务端的语言,可以利用多线程的特点或者基于多线程来解决服务端的内存消耗问题。但是web端的javascript无法利用多线程来解决内存消耗问题,而且web端的javascript释放内存需要时间,如果是长时间处理大量的数据,web端就没有时间对内存进行释放。这就是解决web地图轨迹绘制内存泄漏的难点。
[0060]
一、web端长时间运行绘制地图线型轨迹的方式:
[0061]
在绘制地图线性轨迹时,由于大多数线性轨迹绘制的机制为当前新建的图层只添加一个线型图层特征feature,随着经纬度数据的增多,web端每接受一帧经纬度数据,就向最开始新建好的线型图层特征feature里添加一组经纬度数据,虽然图层特征只有一个,但是容纳经纬度数据的线型图层特征feature的大小会越来越大,内存占用也会越来越高,而且由于web端不断地接收数据,然后绘制,在浏览器中的作为访问地图数据的第三方插件的进程不停地被创建调用,没有时间释放进程,从而导致内存泄漏。
[0062]
所以在地图上绘制线型轨迹时,为了减小内存开销,我们采取以下几方面的操作(为了更容易理解,预先定义几个变量:limitpartofitem:决定添加线型图层特征feature的计数,totalitem:绘制的总帧数,itemcount:当前帧的计数):
[0063]
1、在页面的挂载阶段,此阶段为页面初始化阶段,初始化地图线性图层的资源和对象,并将初始化的线性图层添加至地图。
[0064]
2、在接收数据绘制阶段,采取每隔5秒绘制一次线性轨迹。
[0065]
3、每隔limitpartofitem帧经纬度数据先释放之前的储存线型图层特征feature的变量,然后新建一个新的图层特征添加到线性图层,如果超过totalitem帧则开始移除线型图层特征集合features里的第一个特征feature,再将itemcount=itemcount-2*limitpartofitem,使整个特征集合features的容量始终保持在totalitem帧的经纬度数据。
[0066]
二、web端长时间运行绘制地图点状轨迹的方式:
[0067]
在绘制地图点状轨迹时,其绘制原理是web端每接收一帧数据,就新建一个点状图层特征feature,每一个点状图层特征feature单独存储一组经纬度数据。但是,由于web端接收帧每秒在通常情况下都有20帧经纬度数据左右,随着时间的增加,点状图层特征集合features的长度会越来越长,内存占用也会越来越大,再加上web端不断地接收数据,然后
绘制,在浏览器中的作为访问地图数据的第三方插件的进程不停地被创建调用,没有时间释放进程,从而导致内存泄漏。
[0068]
所以在地图上绘制点状轨迹时,为了减小内存开销,我们采取以下几方面的操作:
[0069]
1、在页面的挂载阶段,此阶段为页面初始化阶段,初始化地图点状轨迹图层的资源和对象,并将初始化的点状轨迹图层添加至地图。
[0070]
2、在接收数据绘制阶段,采取每隔5秒绘制一次点状轨迹。
[0071]
3、获取点状图层特征集合features,如果集合长度大于规定的上限值,就开始移除集合里的第一个点状图层特征。
[0072]
如图3所示,任务运行中,未解决地图轨迹绘制内存泄漏问题的情况下,正在绘制地图轨迹的web端浏览器的内存占用不断上升,内存占用随着时间推移增长到现在的97mb。
[0073]
如图4所示,任务运行中,未解决地图轨迹绘制内存泄漏问题的情况下,内存占用的趋势图显示内存在不断上涨,说明存在内存泄漏。
[0074]
如图5所示,任务运行中,已解决地图轨迹绘制内存泄漏问题的情况下,正在绘制地图轨迹的web端浏览器的内存占用始终保持在60mb左右。
[0075]
如图6所示,任务运行中,已解决地图轨迹绘制内存泄漏问题的情况下,内存占用的趋势图显示内存上涨之后会下降,说明内存在有规律的释放,总体保持在平稳的状态。
[0076]
本实施例的具体实现方案可以参见上述实施例中的相关说明,此处不再赘述。
[0077]
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
[0078]
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是指至少两个。
[0079]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
[0080]
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行装置执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0081]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0082]
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以
软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0083]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0084]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
[0085]
采用了本发明的实现针对无线电web地图轨迹绘制避免内存泄漏的控制方法、装置、处理器及其计算机可读存储介质,能够在保持浏览器页面在激活状态下,执行至少10个小时的地图轨迹相关的任务,保持浏览器内存在60mb左右,浏览器不崩溃。本发明能保持监测任务在长时间运行的状态下拖拽地图页面不卡顿。
[0086]
在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1