一种管理迭代器的方法及系统技术方案

技术编号:5199479 阅读:210 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种管理迭代器的方法,包括:系统将所产生的迭代器保存到迭代器管理容器中,并为该迭代器管理容器中的达代器分别配置计数器;系统启动后,在每个检测时刻对该迭代器管理容器中的迭代器的计数器进行累加;若调用方从迭代器管理容器中的迭代器中读取数据,则将相应迭代器的计数器的计数值置为初始值;若迭代器管理容器中的迭代器的计数器的计数值达到迭代器最大计数值,则删除相应迭代器。本发明专利技术引入迭代器管理容器、定时累加计数和队列先入先出淘汰法等管理迭代器,对多个迭代器占用大量内存资源的情况进行有效地控制,避免了系统内存溢出等严重问题,从而提高了系统的安全性和可靠性。

【技术实现步骤摘要】

本专利技术涉及软件
,尤其涉及一种管理迭代器的方法及系统
技术介绍
目前,软件系统之间进行数据调用时,一般以迭代器引用的形式返回数据。调用方 根据需要从被调用方的迭代器中读取数据,被调用方迭代器中的数据被全部读取完后,迭 代器对象会被销毁,调用方也可以主动销毁迭代器。当迭代器被销毁时,迭代器对象占用的 内存空间才会被释放掉。然而,当调用方读取迭代器中的数据,但又未读取完全部数据,也不销毁迭代器 时,系统将长时间保留此迭代器,如果调用方经常进行此类操作,系统的垃圾内存会越来越 多,进而影响到系统的性能。当调用方短时间内多次进行此类操作时,大量迭代器对象占用 较多内存,很可能会造成系统内存溢出。因此,引入一种行之有效的迭代器管理方法,避免系统产生大量的垃圾内存,就成 为目前亟待解决的问题。
技术实现思路
本专利技术要解决的技术问题是提供一种管理迭代器的方法及系统,对系统中迭代器 的数量进行控制,解决大量迭代器占用较多内存资源导致内存溢出的问题。为解决上述技术问题,本专利技术的一种管理迭代器的方法,包括系统将所产生的迭代器保存到迭代器管理容器中,并为该迭代器管理容器中的迭 代器分别配置计数器;系统启动后,在每个检测时刻对该迭代器管理容器中的迭代器的计数器进行累 加;若调用方从迭代器管理容器中的迭代器中读取数据,则将相应迭代器的计数器的 计数值置为初始值;若迭代器管理容器中的迭代器的计数器的计数值达到迭代器最大计数值,则删除 相应迭代器。进一步地,系统采用定时周期的方式计算检测时刻,该系统每隔一定时周期对该 迭代器管理容器中的迭代器的计数器进行累加,具体过程包括从迭代器管理容器中读取迭代器,如果读取到,则判断该读取到的迭代器的计数 器的计数值是否已达到迭代器最大计数值,如果未达到,则对该迭代器的计数器进行累加; 如果达到,则记录该迭代器在迭代器管理容器中的索引号,并将该迭代器设置为待删除状 态。进一步地,系统读取完迭代器管理容器中的迭代器后,按照记录的索引号,将设置 为待删除状态的迭代器从迭代器管理容器中删除。进一步地,系统将所产生的迭代器保存到迭代器管理容器中的过程包括调用方从系统中调用数据,该系统生成被调用数据的迭代器;系统判断达代器管理容器中的迭代器的数量是否达到迭代器最大数量,如果已达 到,则查找并删除该迭代器管理容器中计数器的计数值最大的迭代器,并将生成的迭代器 保存到该迭代器管理容器中;如果未达到,则将生成的迭代器保存到该迭代器管理容器中。进一步地,该方法还包括系统生成被调用数据的迭代器后,还向调用方返回迭代器形式的数据引用;调用方删除迭代器形式的数据引用时,请求系统删除对应的迭代器;系统根据调用方的请求从迭代器管理容器中删除相应迭代器。进一步地,该方法还包括预先配置迭代器管理容器的迭代器最大数量、迭代器最大计数值和定时周期;系统启动后,首先读取预先配置的迭代器最大数量、迭代器最大计数值和定时周 期。进一步地,一种管理迭代器的系统,包括迭代器生成模块、迭代器控制模块和迭 代器管理容器,其中迭代器生成模块,用于在调用方调用数据时,生成被调用数据的迭代器,并向迭代 器控制模块发送迭代器生成通知消息;迭代器控制模块,用于控制迭代器生成模块将所生成的迭代器保存到迭代器管理 容器中;并为该迭代器管理容器中的迭代器分别配置计数器;并且,在每个检测时刻对该 迭代器管理容器中的迭代器的计数器进行累加;在调用方从迭代器管理容器中的迭代器中 读取数据时,将相应迭代器的计数器的计数值置为初始值;在迭代器管理容器中的迭代器 的计数器的计数值达到迭代器最大计数值时,控制删除相应迭代器。进一步地,迭代器控制模块系统采用定时周期的方式计算检测时刻,该迭代器控 制模块每隔一定时周期对该迭代器管理容器中的迭代器的计数器进行累加,具体过程包 括从迭代器管理容器中读取迭代器,如果读取到,则判断该读取到的迭代器的计数 器的计数值是否已达到迭代器最大计数值,如果未达到,则对该迭代器的计数器进行累加; 如果达到,则记录该迭代器在迭代器管理容器中的索引号,并将该迭代器设置为待删除状 态。进一步地,该系统还包括迭代器删除模块,其中迭代器控制模块,还用于在读取完迭代器管理容器中的迭代器后,将记录的索引 号发送给迭代器删除模块,通知该迭代器删除模块进行迭代器的删除;迭代器删除模块,用于按照接收到的索引号,将设置为待删除状态的迭代器从迭 代器管理容器中删除。进一步地,迭代器控制模块控制迭代器生成模块将所生成的迭代器保存到迭代器 管理容器中的过程包括迭代器控制模块判断迭代器管理容器中的迭代器的数量是否达到迭代器最大数 量,如果已达到,则查找该迭代器管理容器中计数器的计数值最大的迭代器,将该迭代器的 索引号发送给迭代器删除模块,通知该迭代器删除模块删除对应的迭代器,并通知迭代器 生成模块将生成的迭代器保存到该迭代器管理容器中;如果未达到,则通知迭代器生成模块将生成的迭代器保存到该迭代器管理容器中。进一步地,迭代器生成模块生成被调用数据的迭代器后,还向调用方返回迭代器 形式的数据引用;调用方删除迭代器形式的数据引用时,请求迭代器删除模块删除对应的迭代器;迭代器删除模块根据调用方的请求从迭代器管理容器中删除相应迭代器。本专利技术引入迭代器管理容器、定时累加计数和队列先入先出淘汰法等管理迭代 器,对多个迭代器占用大量内存资源的情况进行有效地控制,避免了系统内存溢出等严重 问题,从而提高了系统的安全性和可靠性;同时,还可以根据内存大小等实际情况配置持久 化参数,使整个系统的资源可以得到充分利用,从而提高了系统的性能和灵活性。附图说明图1为本专利技术方法从迭代器管理容器中淘汰迭代器的方法的流程图;图2为本专利技术方法向迭代器管理容器存储迭代器的方法的流程图;图3为本专利技术方法调用方读取迭代器中数据的处理方法的流程图;图4为本专利技术方法调用方销毁迭代器的处理方法的流程图;图5为本专利技术管理迭代器的系统的架构图。具体实施例方式本实施方式中,定期检测长时间未使用的迭代器,并且及时删除不活跃和不使用 的迭代器,以便及时释放占用的内存资源,避免导致系统宕机。系统引入一个迭代器管理容 器来保存多个迭代器,采用定时累加计数和队列先入先出法淘汰迭代器。为保证本实施例方法的实施,需要在数据库中或构造一配置文件保存迭代器管理 容器的迭代器最大数量、迭代器最大计数值和定时周期等持久化参数,持久化参数可以根 据内存容量灵活配置,如,可将迭代器管理容器的迭代器最大数量和迭代器最大计数值配 置为10,将定时周期配置为30秒。当有新的迭代器产生时,如果迭代器管理容器中的迭代器数量未达到迭代器最大 数量,则将该迭代器保存到迭代器管理容器中;否则,采用队列先入先出淘汰法从迭代器管 理容器中淘汰迭代器(参见步骤201 204),再将生成的迭代器保存到迭代器管理容器中。 系统为迭代器管理容器中的每个迭代器配置一个计数值,初始值可设置为0。若调用方从迭 代器中读取数据,则将相应迭代器的计数器重置为初始值。下面结合附图对本专利技术的具体实施方式进行详细说明。图1所示为本实施方式的从迭代器管理容器中淘汰迭代器的方法,包括步骤101 系统启动时,从数据库或者配置文件中,获取迭代器管理容器的迭代器 最大数量、迭代器最大计数本文档来自技高网...

【技术保护点】
一种管理迭代器的方法,包括:系统将所产生的迭代器保存到迭代器管理容器中,并为该迭代器管理容器中的迭代器分别配置计数器;系统启动后,在每个检测时刻对该迭代器管理容器中的迭代器的计数器进行累加;若调用方从迭代器管理容器中的迭代器中读取数据,则将相应迭代器的计数器的计数值置为初始值;若迭代器管理容器中的迭代器的计数器的计数值达到迭代器最大计数值,则删除相应迭代器。

【技术特征摘要】
1.一种管理迭代器的方法,包括系统将所产生的迭代器保存到迭代器管理容器中,并为该迭代器管理容器中的迭代器 分别配置计数器;系统启动后,在每个检测时刻对该迭代器管理容器中的迭代器的计数器进行累加; 若调用方从迭代器管理容器中的迭代器中读取数据,则将相应迭代器的计数器的计数 值置为初始值;若迭代器管理容器中的迭代器的计数器的计数值达到迭代器最大计数值,则删除相应 迭代器。2.如权利要求1所述的方法,其特征在于,所述系统采用定时周期的方式计算所述检测时刻,该系统每隔一定时周期对该迭代器 管理容器中的迭代器的计数器进行累加,具体过程包括从所述迭代器管理容器中读取迭代器,如果读取到,则判断该读取到的迭代器的计数 器的计数值是否已达到迭代器最大计数值,如果未达到,则对该迭代器的计数器进行累加; 如果达到,则记录该迭代器在所述迭代器管理容器中的索引号,并将该迭代器设置为待删 除状态。3.如权利要求2所述的方法,其特征在于,所述系统读取完所述迭代器管理容器中的迭代器后,按照记录的索引号,将设置为待 删除状态的迭代器从所述迭代器管理容器中删除。4.如权利要求2或3所述的方法,其特征在于,所述系统将所产生的迭代器保存到迭代 器管理容器中的过程包括调用方从所述系统中调用数据,该系统生成被调用数据的迭代器; 所述系统判断迭代器管理容器中的迭代器的数量是否达到迭代器最大数量,如果已达 到,则查找并删除该迭代器管理容器中计数器的计数值最大的迭代器,并将生成的迭代器 保存到该迭代器管理容器中;如果未达到,则将生成的迭代器保存到该迭代器管理容器中。5.如权利要求4所述的方法,其特征在于,该方法还包括所述系统生成被调用数据的迭代器后,还向调用方返回迭代器形式的数据引用; 所述调用方删除迭代器形式的数据引用时,请求所述系统删除对应的迭代器; 所述系统根据调用方的请求从迭代器管理容器中删除相应迭代器。6.如权利要求4所述的方法,其特征在于,该方法还包括预先配置所述迭代器管理容器的迭代器最大数量、迭代器最大计数值和定时周期; 系统启动后,首先读取所述预先配置的所述迭代器最大数量、迭代器最大计数值和定 时周期。7.—种管理迭代器的系统,包括迭代器生成模块、迭代器控制模块和迭代器管理容 器,其中所述迭代器生成模块,用于在调用方调用数据时,生成被调用数据的迭代器,并向迭代...

【专利技术属性】
技术研发人员:孟雷宋滔
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1