首页 / 资源管理方法和资源管理系统

资源管理方法和资源管理系统无效专利 发明

技术内容

技术领域 本发明涉及计算机技术领域,尤其涉及资源管理方法和资源管理系统。 背景技术 在网络游戏等应用软件中,为了提高用户体验,常常会使用大量的资源 (如材质、纹理、模型、帧动画、音效、音乐、脚本、配置等),因此,在软 件运行过程中如何进行资源的管理是一个必须解决的问题。考虑到资源所具有 的只读不写、共享使用、占用空间等特点,在资源管理过程中会面临以下几方 面的问题: 1.1)资源的读取管理:资源读取主要指将资源从资源所在的源文件中读 入到内存中;不同的资源由于存储形式不同,因此读取方法不同,读取效率也 存在差异。 1.2)资源的内存管理:不同的资源占用内存大小不同;对于有些资源, 为提高效率还对内存地址有特殊要求,例如对于需要用多媒体扩展(简称 MMX)指令集操作的资源地址,需要是8字节对齐,而对于单指令多数英特尔 据流扩展(简称SSE)指令集操作的资源地址,必须为16字节对齐。 1.3)资源的访问管理:资源访问主要指访问内存中存储的资源;当软件 需要支持多对象共享访问方式时,会涉及一些安全性问题。 现有的网络游戏等应用软件中进行资源管理时,由于不同资源类型具有 的不同特点,通常是到针对不同的资源实现不同的资源管理系统(例如,三维 图像引擎中,可能对材质、纹理、模型等特点比较相近的资源实现一个资源管 理系统,而对于音效、音乐、脚本等其他资源又实现另一个资源管理系统), 各资源管理系统单独进行相应资源的管理,互不关联。在该方案中,由于对不 同的资源类型需要实现多个资源管理系统,而事实上,各个资源管理系统中有 很大一部分代码是相同的,因此会造成资源的浪费;另一方面,在对资源进行 管理时,常常会有根据整个系统的内存、显存分配状况对资源进行预读取和释 放,采用统一的调试用内存分配器为每种资源分配内存来查找内存泄漏、对于 整体的存储设备读写压力调整资源读取频率、以及支持统一资源打包等系统级 统筹安排的需求,而由于现有技术中多个资源管理系统相互之间并不关联,因 此难以满足上述系统级统筹安排的需求。 发明内容 本发明实施例要解决的技术问题是提供资源管理方法和资源管理系统。 为解决上述技术问题,本发明的实施例提供以下技术方案: 一种资源管理方法,包括: 在多个资源管理方法中确定用于对待管理资源进行管理的资源管理方 法; 执行所确定的资源管理方法,对所述待管理资源进行相应的管理。 一种资源管理系统,包括: 资源管理方法确定单元,用于在多个资源管理方法中确定用于对待管理 资源进行管理的资源管理方法; 管理单元,用于执行所述资源管理方法,对所述待管理资源进行相应的 管理。 从以上技术方案可以看出,本发明实施例中进行资源管理时,不再是通 过多个资源管理系统对不同类型的资源进行管理,而是通过一个统一的资源 管理系统实现;而考虑到不同类型的资源具有不同的特点,当在该资源管理 系统中涉及到具体的管理方法时,本发明实施例采用对具体的待管理资源, 支持从多个资源管理方法中选择对其较为适用的管理方法,从而能够在保证 系统性能的同时,减少由于重复编码所导致的资源浪费的问题;而且,由于 通过统一的资源管理系统进行资源管理,可以满足对于资源管理进行系统级 统筹安排的需求。 附图说明 图1是本发明资源管理方法实施例一的流程图; 图2是本发明资源管理方法实施例二的流程图; 图3是本发明资源管理方法实施例三的流程图; 图4是本发明资源管理系统实施例一的结构图; 图5是本发明资源管理系统实施例二的结构图。 具体实施方式 下面结合附图,对本发明提供的资源管理方法和资源管理系统的推荐实 施例进行详细描述。 本发明资源管理方法实施例一;参考图1,该方法包括: S1、在多个资源管理方法中确定用于对待管理资源进行管理的资源管理 方法; 其中,在多个资源管理方法中确定用于对待管理资源进行管理的资源管 理方法可以是:根据待管理资源的资源标识信息,获得所述待管理资源所属 的资源类型信息;根据预置的资源类型与资源管理方法的对应关系,获得与 所述资源类型信息对应的资源管理方法,确定该方法即为用于对待管理资源 进行管理的资源管理方法。 S2、执行所确定的资源管理方法,对所述待管理资源进行相应的管理。 在本发明实施例中,所述资源管理方法可以是内存分配方法、资源读取 方法或资源访问方法等。 本发明实施例中进行资源管理时,不再是通过多个资源管理系统对不同 类型的资源进行管理,而是通过一个统一的资源管理系统实现;而考虑到不 同类型的资源具有不同的特点,当在该资源管理系统中涉及到具体的管理方 法时,本发明实施例采用对具体的待管理资源,支持从多个资源管理方法中 选择对其较为适用的管理方法,从而能够在保证系统性能的同时,减少由于 重复编码所导致的资源浪费的问题;而且,由于通过统一的资源管理系统进 行资源管理,可以满足对于资源管理进行系统级统筹安排的需求。 本发明资源管理方法实施例二;参考图2,该方法包括: A1、接收资源访问请求,该请求中包括待访问资源的资源标识信息。 A2、判断所述待访问资源是否已被读取,若是,则根据所述待访问资源 的资源标识信息,获得待访问资源所属的资源类型信息,继续执行A9;若否, 执行A3。 A3、在资源列表中查找所述资源标识信息对应的资源大小、资源所在文 件、存储该文件的地址等信息。 本发明实施例中,可以通过资源列表记录各个资源的资源标识、资源大 小、资源所在文件、存储该文件的地址等资源信息,其中资源大小、资源所 在文件、存储该文件的地址等信息与对应资源的资源标识相关联,以便可以 通过资源标识查找该资源的其他资源信息。 在具体实现时,为便于资源管理器进行查找,资源列表中各资源的资源 标识可以采用连续递增的方式。 另外,存储资源所在文件的地址信息可以是一个相对路径,也就是可执 行文件目录下的文件名,这样可以减少路径长度,节约存储空间。 A4、根据所述待访问资源的资源标识信息,获得所述待访问资源所属的 资源类型信息。 A5、根据预置的资源类型与内存分配方法的对应关系,在预置的多个内 存分配方法中获得与所述资源类型信息对应的内存分配方法,确定该方法即 为用于对所述待访问资源进行内存分配的内存分配方法。 由于不同资源类型具有的各自独特的特点,不同类型的资源适用的内存 分配方法也不同,因此,本发明实施例中,在系统中配置多种内存分配方法, 对于不同类型的资源,可以从中选择较适用的内存分配方法进行内存的分配。 为了实现内存分配方法的选择,可以在系统中预置各种资源类型与适用 的内存分配方法之间的对应关系,这样,根据该对应关系即可以获得与资源 类型相应的内存分配方法。其中,各种资源类型与适用的内存分配方法之间 的对应关系可以是由用户设定的。 所述内存分配方法可以是普通内存分配方法、内存池内存分配方法、特 殊字节对齐的内存分配方法等。 A6、执行所确定的内存分配方法,根据所查找的资源大小信息为所述待 访问资源分配相应内存。 A7、根据预置的资源类型与资源读取方法的对应关系,在预置的多个资 源读取方法中获得与所述资源类型信息对应的资源读取方法,确定该方法即 为用于对所述待访问资源进行资源读取的资源读取方法。 同样的,不同类型的资源适用的资源读取方法也不同,本发明实施例中, 在系统中配置多种资源读取方法,对于不同类型的资源,可以从中选择较适 用的资源读取方法进行资源的读取。 为实现资源读取方法的选择,也可以在系统中预置各种资源类型与所适 用的资源读取方法之间的对应关系,这样,根据该对应关系即可以获得与资 源类型相应的资源读取方法。其中,各种资源类型与适用的资源读取方法之 间的对应关系可以是由用户设定的。 所述资源读取方法可以是同步读取方法、异步读取方法等。 A8、执行所确定的资源读取方法,根据所查找的资源所在文件信息和存 储该文件的地址信息,从资源所在文件中获得所述待访问资源,并在所分配 的内存中进行存储。 A9、根据预置的资源类型与资源访问方法的对应关系,在预置的多个资 源访问方法中获得与所述资源类型信息对应的资源访问方法,确定该方法即 为用于对所述待访问资源进行访问的资源访问方法。 同样的,不同类型的资源适用的资源访问方法也不同,本发明实施例中, 在系统中配置多种资源访问方法,对于不同类型的资源,可以从中选择较适 用的资源访问方法进行资源的访问。 为实现资源访问方法的选择,也可以在系统中预置各种资源类型与所适 用的资源访问方法之间的对应关系,这样,根据该对应关系即可以获得与资 源类型相应的资源访问方法。其中,各种资源类型与适用的资源访问方法之 间的对应关系可以是由用户设定的。 A10、执行所确定的资源访问方法,对内存中存储的待访问资源进行访 问。 在本发明实施例中,A7和A9也可以在A5之前或与A5同时执行,A4、 A5、A7、A9也可以在A1、A2或A3之前执行,并不影响本发明方案的实 现。 本发明资源管理方法实施例三;参考图3,该方法包括: B1、接收资源访问请求,该请求中包括待访问资源的资源标识信息。 B2、根据所述资源标识信息判断所述待访问资源是否在资源列表中,若 是,执行B3;若否,返回资源不存在信息,结束流程。 B3、判断所述待访问资源是否已被读取,若是,则获得所述待访问资源 所属的资源类型信息,执行B11;若否,执行B4。 B4、在资源列表中查找所述资源标识对应的资源大小、资源所在文件、 存储该文件的地址等信息。 B5、根据所述待访问资源的资源标识,获得所述待访问资源所属的资源 类型信息。 B6、根据预置的资源类型与内存分配方法的对应关系,在预置的多个内 存分配方法中获得与所述资源类型信息对应的内存分配方法,确定该方法即 为用于对所述待访问资源进行内存分配的内存分配方法。 B7、执行所确定的内存分配方法,根据所查找的资源大小信息为所请求 访问的资源分配相应内存。 B8、判断当前耗用的内存是否超过预置的最大内存耗用值,若是,则对 内存中的垃圾资源进行清理后,执行B9;若否,直接执行B9。 在本发明实施例中,垃圾资源主要指已经读入内存,但没有被任何对象 访问的资源;由于过早释放资源可能导致频繁的资源读取,因此,只有在当 前耗用的内存超过预先设置的最大内存耗用值时,才会进行垃圾资源的清理。 B9、根据预置的资源类型与资源读取方法的对应关系,在预置的多个资 源读取方法中获得与所述资源类型信息对应的资源读取方法,确定该方法即 为用于对所述待访问资源进行资源读取的资源读取方法。 B10、执行所确定的资源读取方法,根据所查找的资源所在文件信息和 存储该文件的地址信息,从资源所在文件中获得所述待访问的资源,并在所 分配的内存中进行存储;另一方面,对表示资源读取是否完成的资源读取状 态进行缓存。 当对资源进行异步读取时,由于系统往往会进行多线程加载或重叠读取, 因此,资源读取并不一定在执行资源读取方法后立即有效。由此,本发明实 施例中在执行资源读取方法后,可以对资源是否完成的状态进行缓存。 B11、根据所缓存的资源读取状态判断资源是否读取完成,若是,执行 B12;若否,则在资源读取完成后,再执行B12。 B12、根据预置的资源类型与资源访问方法的对应关系,在预置的多个 资源访问方法中获得与所述资源类型信息对应的资源访问方法,确定该方法 即为用于对所述待访问资源进行访问的资源访问方法。 B13、执行所确定的资源访问方法,对内存中存储的待访问资源进行访 问。 B14、对该资源访问完成后,若确认当前没有其他对象使用该资源,且 该资源在以后将不再被使用,则释放存储该资源的相应内存。若该资源在以 后可能还会被使用,则可以不进行释放,而由垃圾资源清理机制对未使用的 资源进行安全的维护清理。 在本发明资源管理方法更多实施例中,由于同一资源可能被多个对象共 享访问,为了解资源被访问的状况,还可以为每个资源维护一个引用计数, 当资源被一个对象访问时,增加其引用计数值,当该对象对该资源的访问完 成时,则减小其引用计数值。另一方面,虽然同一资源可能被多个对象共享 访问,但只要资源还被一个对象访问,就不应被释放,具体实现时,也可以 根据为资源维护的引用计数来判断资源是否被访问;举例来说,当资源未被 任何对象访问时,可以令其引用计数值为0,若资源被一个对象访问时,将 其引用计数值加1,当该对象对资源的访问完成时,则将引用计数值减1;由 此,可以通过判断资源的引用计数值是不是等于0来判断资源是不是被访问, 若是,则确认资源未被任何对象访问,可以释放;若否,则确认资源被某一 对象访问,不应被释放。 在本发明资源管理方法更多实施例中,对垃圾资源的清理可以采用以下 方法:系统可以维持一个垃圾资源列表,可以在其中记录垃圾资源的内存地 址信息,在当前耗用的内存超过预先设置的最大内存耗用值时,可以按一定 的比例(如50%)先释放垃圾资源列表中的一部分资源,若进行释放之后, 耗用的内存仍然超过最大内存耗用值,则继续释放一定的比例的资源,直到 垃圾资源列表为空,或耗用内存小于最大内存耗用值。另外,由于进入垃圾 列表时间较早的资源被访问的可能性相对较小,因此,在进行垃圾资源清理 时,可以先释放该部分资源。再者,由于某些资源在进入垃圾列表后可能又 被访问,甚至重复进入列表,因此,在进行垃圾资源清理时,需要确认资源 是否属于垃圾资源,若经过确认,资源确属垃圾资源,则释放该资源,否则, 从垃圾列表中删除该资源相关信息。 本发明资源管理系统实施例一;参考图4,本实施例系统包括资源管理 方法确定单元410和管理单元420: 资源管理方法确定单元410用于在多个资源管理方法中确定用于对待管 理资源进行管理的资源管理方法。 管理单元420用于执行所述资源管理方法,对所述待管理资源进行相应 的管理。 在本发明实施例中,在多个资源管理方法中确定用于对待管理资源进行 管理的资源管理方法可以是:根据待管理资源的资源标识信息,获得所述待 管理资源所属的资源类型信息;根据预置的资源类型与资源管理方法的对应 关系,获得与所述资源类型信息对应的资源管理方法,确定该方法即为用于 对待管理资源进行管理的资源管理方法。 在本发明实实施例中,所述资源管理方法可以是内存分配方法、资源读 取方法或资源访问方法等。 本发明资源管理系统实施例二,参考图5,本实施例系统包括资源管理 方法确定单元510、管理单元520、接收单元530和资源读取判断单元540; 其中: 接收单元530用于接收包括资源访问请求,该请求中包括待访问资源的 资源标识信息。 资源读取判断单元540用于判断所述待访问资源是否已被读取,并输出 判断结果。 资源管理方法确定单元510包括资源访问方法确定单元511,用于在多 个资源访问方法中确定用于对所述待访问资源进行访问的资源访问方法。 管理单元520包括资源访问单元521,用于在资源读取判断单元540输 出的判断结果为是时,执行所确定的资源访问方法,对所述待访问资源进行 访问。 资源管理方法确定单元510还包括内存分配方法确定单元512,用于在 多个内存分配方法中确定用于对所述待访问资源进行内存分配的内存分配方 法。 管理单元520还包括内存分配单元522,用于在资源读取判断单元540 输出的判断结果为否时,执行所确定的内存分配方法,为所述待访问资源分 配内存。 资源管理方法确定单元510还包括资源读取方法确定单元513,用于在 多个资源读取方法中确定用于对所述待访问资源进行资源读取的资源读取方 法。 管理单元520还包括资源读取单元523,用于执行所确定的资源读取方 法,获得所述待访问资源并在内存分配单元522所分配的内存中进行存储。 资源访问单元521还用于在资源读取单元523将所述待访问资源在内存 中进行存储后,执行所确定的资源访问方法,对所述待访问资源进行访问。 以上对本发明实施例所提供的资源管理方法和资源管理系统进行了详细 介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上 实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域 的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有 改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
管理方法相关技术
管理系统相关技术
姚洁发明人的其他相关专利技术