基于缓存的cad文件数据卸载方法及装置的制作方法

文档序号:6354571阅读:224来源:国知局
专利名称:基于缓存的cad文件数据卸载方法及装置的制作方法
技术领域
本发明属于计算机领域,涉及一种基于缓存的CAD文件数据卸载方法及装置。
背景技术
随着三维CAD软件在制造业,尤其是在装备业的广泛应用,软件所处理的模型也 在不断增大。由最初的几百个零件的减速器模型,到现在的几万个零部件的整车模型和大 型机械总装,使得模型数据文件由原来的几百KB增加到几百MB。于是就对软件性能和内存 使用量提出了新的要求。例如在使用一个有100多个零件的减速器装配的过程中,占用内存小于100MB, 而在使用一个有3万个零件的大型机械装配的过程中,需要占用的内存接近2GB。这是一般 用户所无法忍受的。尽管用户可以通过提高硬件配置在一定程度上提高速度,解决内存消 耗问题,但对于零件数上万的大装配,仅仅提升硬件配置的效果就不再那么明显了,而且在 Windows XP 32位系统下,每个进程所占用的内存最大限制是3GB,超过这个限制时,软件将 直接异常退出。因此,必须从软件算法上做出根本性改进,这样才能使软件在性能上有质的 提升,从而满足企业的进一步的需要。对于现有技术中在使用大量CAD文件数据的过程中占用内存过多,导致软件运行 速度逐渐变慢,甚至有可能因内存不足而发生异常的问题,目前尚未提出有效解决方案。

发明内容
本发明的目的是提供一种基于缓存的CAD文件数据卸载方法及装置,用以解决在 使用大量CAD文件数据的过程中占用内存过多,导致软件运行速度逐渐变慢,甚至有可能 因内存不足而发生异常的问题。为了实现上述目的,根据本发明的一个方面,提供一种基于缓存的CAD文件数据 卸载方法,本发明采用以下技术方案—种基于缓存的CAD文件数据卸载方法包括如下步骤a 获取内存中CAD文件各个数据对象的访问率;b 将访问率与预设访问率比较;以及c 当访问率小于预设访问率时,将CAD文件数据的对象从内存中卸载到缓存中。进一步地,步骤a包括创建回收定时器;以及通过回收定时器计算访问率。进一步地,回收定时器计算访问率包括将加载CAD文件数据的零件容器记录到加载列表中;根据加载列表判断CAD文件数据是否被访问,并在CAD文件数据被访问时,更新 CAD文件数据的最后被访问时间和访问次数;通过回收定时器检测加载列表,并获取CAD文件数据的检测时间和更新时间;通过检测时间和更新时间计算CAD文件数据的空闲时间;以及根据空闲时间和被访问次数计算访问率;其中,上述步骤中包括如下计算的公式空闲时间=检测时间_更新时间;访问率=访问次数/空闲时间。进一步地,步骤c中,将CAD文件数据从内存中卸载到缓存中包括通过加载列表中的零件容器查找访问率小于预设访问率的CAD文件数据;以及将 访问率小于预设访问率的CAD文件数据的对象从内存中卸载到缓存中。进一步地,零件容器包括零件组件容器。进一步地,步骤b包括在访问率大于预设访问率时,返回步骤a。根据本发明的另外一个方面,提供一种基于缓存的CAD文件数据卸载装置,本发 明采用以下技术方案一种基于缓存的CAD文件数据卸载装置,包括获取模块,用于获取内存中CAD文件各个数据对象的访问率;比较模块,用于将访问率与预设访问率比较;以及卸载模块,用于在访问率小于预设访问率时,将访问率小于预设访问率的CAD文 件数据的对象从内存中卸载到缓存中。进一步地,获取模块包括创建模块,用于创建回收定时器;以及计算模块,用于 通过回收定时器计算访问率。进一步地,计算模块包括记录模块,用于将加载CAD文件数据的零件容器记录到加载列表中;判断模块,用于根据加载列表判断CAD文件数据是否被访问,并在CAD文件数据被 访问时,更新CAD文件数据的最后被访问时间和访问次数;检测模块,用于通过回收定时器检测加载列表,并获取CAD文件数据的检测时间 和更新时间;第一计算子模块,用于通过检测时间和更新时间计算CAD文件数据的空闲时间; 以及第二计算子模块,用于根据空闲时间和访问次数计算访问率;其中,包括如下计算 的公式空闲时间=检测时间_更新时间;访问率=访问次数/空闲时间。进一步地,卸载模块包括查找模块,用于通过加载列表中的零件容器查找访问率小于预设访问率的文件数 据;以及卸载子模块,将文件数据的对象从内存中卸载缓存中。通过本发明,采用基于缓存的CAD文件数据卸载方法包括如下步骤a 获取内存 中CAD文件各个数据对象的访问率;b 将访问率与预设访问率比较;以及c 当访问率小于 预设访问率时,将CAD文件数据的对象从内存中卸载到缓存中,解决了现有技术中在使用 大量CAD文件数据的过程中占用内存过多,导致软件运行速度逐渐变慢,甚至有可能因内 存不足而发生异常的问题,进而达到了在使用大量CAD文件数据的过程中节约内存,来提 高三维CAD系统的总体运行效率和性能的效果。


此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1是根据本发明实施例基于缓存的CAD文件数据卸载装置的结构示意5
图2是根据本发明实施例基于缓存的CAD文件数据卸载装置中计算模块的结构示 意图;图3是根据本发明实施例基于缓存的CAD文件数据卸载方法的流程图;图4是根据本发明优选实施例基于缓存的CAD文件数据卸载方法的流程图;图5是根据本发明实施例的CAD文件数据中零件内存结构的示意图。
具体实施例方式需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相 互组合。下面将参考附图并结合实施例来详细说明本发明。图1是根据本发明实施例基于缓存的CAD文件数据卸载装置的结构示意图;图2 是根据本发明实施例基于缓存的CAD文件数据卸载装置中计算模块的结构示意图。如图1 所示,该装置可以包括获取模块1,用于获取内存中CAD文件各个数据对象的访问率;比较 模块3,用于将访问率与预设访问率比较;以及卸载模块5,用于在访问率小于预设访问率 时,将访问率小于预设访问率的CAD文件数据从内存中卸载到缓存中。在上述实施例中,CAD文件数据在使用的过程中一些访问率低的数据占用过多的 内存,获取模块可以对使用中的各个数据的访问率进行统计,从而获得各个数据的访问率。 比较模块可以将各个数据的访问率与CAD系统预设访问率进行比较,如果某个数据的访问 率低于CAD系统预设访问率,则将该数据从内存中卸载到缓存中。获取模块定时对使用中 的各个数据的访问率进行统计,每统计一次后,比较模块将访问率与预设访问率进行比较, 重复上述卸载过程。通过上述实施方案,本发明能够解决在使用大量CAD文件数据的过程 中占用内存过多,导致软件运行速度逐渐变慢,甚至有可能因内存不足而发生异常的问题, 节约了系统处理CAD文件数据过程中所占用的内存,进一步地提高了三维CAD系统的总体 运行效率和性能。优选的,上述实施例中的获取模块1可以包括创建模块11,用于创建回收定时 器;以及计算模块13,用于通过回收定时器计算访问率。该实施例中的回收定时器每隔一 段时间会遍历一次加载列表,计算空闲时间,空闲时间就是当前的检查时间减去最后一次 访问时间,使得系统可以统一管理获取的空闲时间,提高了系统的调用效率。优选的,如图2所示,本发明上述实施例中的计算模块13可以包括记录模块 131,用于将加载CAD文件数据的零件容器记录到CAD系统的加载列表中;判断模块133,用 于根据加载列表判断CAD文件数据是否被访问,并在CAD文件数据被访问时,更新CAD文件 数据的最后被访问时间和访问次数;检测模块135,用于通过回收定时器检测加载列表,并 获取CAD文件数据的检测时间和更新时间;第一计算子模块137,用于通过检测时间和更新 时间计算CAD文件数据的空闲时间;以及第二计算子模块139,用于根据空闲时间和访问次 数计算访问率。该实施例通过回收定时器定时更新加载列表,提高了系统的性能。优选的,比较模块3可以包括返回模块31,用于在访问率大于预设访问率时,返 回计算模块。在上述实施例中,当访问率大于系统的预设访问率时,返回到计算模块13,计算模 块13重新通过回收定时器计算访问率。优选的,卸载模块5可以包括查找模块51,用于通过加载列表中的零件容器查找访问率小于预设访问率的文件数据;以及卸载子模块53,将文件数据从内存中卸载缓存 中。图3是根据本发明实施例基于缓存的CAD文件数据卸载方法的流程图。该方法包 括如下步骤步骤a 通过图1中的获取模块1来获取内存中CAD文件各个数据对象的访问率;步骤b 通过图1中的比较模块3实现将访问率与预设访问率比较;以及步骤c 通过图1中的卸载模块5来实现,当访问率小于预设访问率时,将CAD文 件数据从内存中卸载到缓存中。在上述实施例中,CAD文件数据在使用的过程中一些访问率低的数据占用过多的 内存,步骤a可以对使用中的各个数据的访问率进行统计,从而获得各个数据的访问率。步 骤b可以将各个数据的访问率与CAD系统预设访问率进行比较,如果某个数据的访问率低 于CAD系统预设访问率,则通过步骤c将该数据从内存中卸载到缓存中。步骤a定时对使用 中的各个数据的访问率进行统计,每统计一次后,步骤b将访问率与预设访问率进行比较, 重复上述步骤c的卸载过程。本发明能够解决在使用大量CAD文件数据的过程中占用内存 过多,导致软件运行速度逐渐变慢,甚至有可能因内存不足而发生异常的问题,节约了系统 处理CAD文件数据过程中所占用的内存,进一步地提高了三维CAD系统的总体运行效率和 性能。本发明上述实施例中的步骤a可以包括创建回收定时器;以及通过回收定时器 计算访问率。优选的,通过回收定时器计算访问率的步骤可以包括将加载CAD文件数据的零 件容器记录到加载列表中;根据加载列表判断CAD文件数据是否被访问,并在CAD文件数据 被访问时,更新CAD文件数据的最后被访问时间和访问次数;通过回收定时器检测加载列 表,并获取CAD文件数据的检测时间和更新时间;通过检测时间和更新时间计算CAD文件数 据的空闲时间;以及根据空闲时间和被访问次数计算访问率;其中,上述步骤中包括如下 计算的公式空闲时间=检测时间更新时间;访问率=访问次数/空闲时间。在上述实施例的步骤c中,步骤将CAD文件数据从内存中卸载到缓存中可以包括 通过加载列表中的零件容器查找访问率小于预设访问率的CAD文件数据;以及将访问率小 于预设访问率的CAD文件数据的对象从内存中卸载到缓存中。优选的,上述任意一个实施例中的零件容器可以包括零件组件容器。本发明图3所示的上述实施例中,步骤b可以包括在访问率大于预设访问率时, 返回步骤a。图4是根据本发明优选实施例基于缓存的CAD文件数据卸载方法的流程图。结合 图3和图4所示,本发明的详细实施例如下步骤S101,CAD软件在启动后会创建一个回收定时器,当加载CAD文件数据时,零 件容器将已被加载的零件记录到CAD系统中的加载列表中。步骤S103,回收定时器每隔一段时间会遍历一次加载列表。根据加载列表判断零 件或零件组是否被访问,并在零件或零件组被访问时,更新零件或零件组最后被访问时间 和访问次数。通过回收定时器检测加载列表,并获取零件或零件组的检测时间和更新时间。 通过检测时间和更新时间计算零件或零件组的空闲时间(空闲时间就是当前检测时间减去最后一次访问时间),计算的公式为空闲时间=检测时间_更新时间。步骤S105,根据空闲时间和访问次数计算访问率,计算的公式为访问率=访问 次数/空闲时间。访问率受访问次数和空闲时间两个因素影响,当访问次数越多,那么以后 再次访问他的可能性越大,空闲时间越大,那么再次访问他的可能性越少。步骤S107,当访问率小于预设访问率时,就判断这个零件或零件组件暂时不会被 使用,可以从内存中卸载到缓存中。如果访问率大于预设访问率时,返回S103步骤。步骤S109,当访问率小于预设访问率时,零件或零件组件将从内存中卸载到缓存 中。但记载有该零件或零件组件起始位置和大小的零件容器或零件组件容器不被卸载掉 的。当我们需要重新访问某个零件或零件组时,通过零件容器或零件组件容器重新寻 找零件或零件组件在文件数据流中的位置,从而实现零件或零件组件的加载。当打开CAD文件数据时,文件数据流都放入缓存中,同时CAD软件将文件数据进行 加载,通常CAD处理的装备包含有大量的零件,同时一个零件包含有多个零件组件,我们在 对装置进行操作的过程当中,对某些零件或零件组件访问率很高,对某些零件或零件组件 访问率很低,甚至不访问,针对此种情况,通过本发明上述实施例步骤实现基于缓存的CAD 文件数据卸载方法将访问率很低或是不访问的零件进行卸载,从而提高CAD系统的运行效 率。图5是根据本发明实施例的CAD文件数据中零件内存结构的示意图。如图5所示, 一个零件由若干个零件组件组成,每个零件组件中存储了零件某种类型的数据。为了能够 实现动态加载,分别用一个轻量级的零件容器来包装零件对象,该零件容器记载有该零件 对象在文件数据流中的起始位置和大小;用一个轻量级的零件组件容器来包装零件组件对 象,该零件组件容器记载有该零件组件对象在数据流中的起始位置和大小。零件容器和零 件组件容器都是轻量级数据,占用内存很少,零件对象和零件组件对象是重量级数据,占用 内存较多。在访问重量级数据内存时,必须经过轻量级的容器,也就是说外面无法直接访问 重量级数据的内存。如果要想取得某个零件的颜色数据,必须首先通过零件容器访问该零件,同时零 件容器会判断它所包装的零件是否在内存中,如果不在,就会通过缓存来构建这个零件对 象,然后,零件对象会找到存储颜色的零件组件容器,零件组件容器判断它所包装的零件组 件是否在内存,如果不在,同样使用缓存来构建零件组件对象,然后由零件组件对象取得该 零件的颜色数据。此时,就会有一个零件对象和一个零件组件对象被加载到内存。通过上述实施例实现,外部访问零件数据时,必须经过零件容器与零件组件容器, 因此即使零件和零件组件对象从内存中卸载掉,也不会造成非法内存访问。当外部真正请 求零件数据时,又会通过动态加载技术,由容器通过数据流缓存重新构建零件和零件组件 对象,达到动态加载与动态卸载的完美结合。从以上的描述中,可以看出,本发明实现了如下技术效果针对现有技术的问题, 本发明基于缓存的动态数据卸载技术,解决了文件打开后,使用过程中占用内存过多的问 题。使得三维CAD软件在技术上又进一步适应应用上的需求,为企业生产提供有力的技术保障。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成 的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储 在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们 中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的 硬件和软件结合。 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技 术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修 改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于缓存的CAD文件数据卸载方法,其特征在于,包括 a 获取内存中CAD文件各个数据对象的访问率;b 将所述访问率与预设访问率比较;以及c 当所述访问率小于所述预设访问率时,将所述CAD文件数据的对象从所述内存中卸 载到所述缓存中。
2.根据权利要求1所述的CAD文件数据卸载方法,其特征在于,所述步骤a包括 创建回收定时器;以及通过所述回收定时器计算所述访问率。
3.根据权利要求2所述的CAD文件数据卸载方法,其特征在于,所述通过所述回收定时 器计算所述访问率包括将加载所述CAD文件数据的零件容器记录到加载列表中;根据所述加载列表判断所述CAD文件数据是否被访问,并在所述CAD文件数据被访问 时,更新所述CAD文件数据的最后被访问时间和访问次数;通过所述回收定时器检测所述加载列表,并获取所述CAD文件数据的检测时间和更新 时间;通过所述检测时间和更新时间计算所述CAD文件数据的空闲时间,计算公式为空闲 时间=检测时间-更新时间;以及根据所述空闲时间和所述被访问次数计算所述访问率,计算公式为访问率=访问次 数/空闲时间。
4.根据权利要求3所述的CAD文件数据卸载方法,其特征在于,在所述步骤c中,将所 述CAD文件数据从内存中卸载到缓存中包括通过所述加载列表中的所述零件容器查找访问率小于所述预设访问率的CAD文件数 据;以及将所述访问率小于所述预设访问率的CAD文件数据的对象从所述内存中卸载到所述缓存中。
5.根据权利要求3或4所述的CAD文件数据卸载方法,其特征在于,所述零件容器包括 零件组件容器。
6.根据权利要求1所述的CAD文件数据卸载方法,其特征在于,所述步骤b包括 在所述访问率大于所述预设访问率时,返回步骤a。
7.一种基于缓存的CAD文件数据卸载装置,其特征在于,包括 获取模块,用于获取内存中CAD文件各个数据对象的访问率; 比较模块,用于将所述访问率与预设访问率比较;以及卸载模块,用于在所述访问率小于所述预设访问率时,将所述访问率小于所述预设访 问率的CAD文件数据的对象从所述内存中卸载到所述缓存中。
8.根据权利要求7所述的CAD文件数据卸载装置,其特征在于,所述获取模块包括 创建模块,用于创建回收定时器;以及计算模块,用于通过所述回收定时器计算所述访问率。
9.根据权利要求8所述的CAD文件数据卸载装置,其特征在于,所述计算模块包括 记录模块,用于将加载所述CAD文件数据的零件容器记录到加载列表 中;判断模块,用于根据所述加载列表判断所述CAD文件数据是否被访问,并在所述CAD文 件数据被访问时,更新所述CAD文件数据的最后被访问时间和访问次数;检测模块,用于通过所述回收定时器检测所述加载列表,并获取所述CAD文件数据的 检测时间和更新时间;第一计算子模块,用于通过所述检测时间和更新时间计算所述CAD文件数据的空闲时 间,计算公式为空闲时间=检测时间-更新时间;以及第二计算子模块,用于根据所述空闲时间和所述访问次数计算所述访问率,计算公式 为访问率=访问次数/空闲时间。
10.根据权利要求7所述的CAD文件数据卸载装置,其特征在于,所述卸载模块包括 查找模块,用于通过所述加载列表中的所述零件容器查找访问率小于所述预设访问率 的文件数据;以及卸载子模块,将所述文件数据的对象从所述内存中卸载所述缓存中。
全文摘要
本发明公开了一种基于缓存的CAD文件数据卸载方法及装置,其中,该基于缓存的CAD文件数据卸载方法包括a获取内存中CAD文件各个数据对象的访问率;b将访问率与预设访问率比较;以及c当访问率小于预设访问率时,将CAD文件数据的对象从内存中卸载到缓存中。通过本发明,能够减少使用过程中大量CAD文件数据占用的内存,提高软件运行的总体效率。
文档编号G06F17/30GK102110147SQ20111003929
公开日2011年6月29日 申请日期2011年2月16日 优先权日2011年2月16日
发明者郭瑞军 申请人:北京数码大方科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1