发明内容
本发明实施例所要解决的技术问题在于,提供一种数据处理方法及装置,可在程序运行时,根据预设的内存使用参数对数据进行读取、加载和处理,减少内存的负荷,保证数据的完整性,保证程序运行的可靠性。
为了解决上述技术问题,本发明实施例提供了一种数据处理方法,包括:
程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据并加载至内存;
运行所述程序,处理已加载的所述数据。
其中,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据并加载至内存之前,还包括:
将程序运行所需的各种数据存储至预置的磁盘空间中,并建立索引表;
所述索引表包括:所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数;其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。
其中,所述将程序运行所需的各种数据存储至预置的磁盘空间中,并建立索引表,包括:
预先设置用于存储程序运行所需的各种数据的磁盘空间,并建立索引表;
当所述预置的磁盘空间有数据写入时,计算所述数据的校验值;
判断所述索引表中是否包含计算得到的所述检验值;
若判断结果为是,更新所述索引表中的所述检验值对应的数据的引用计数;
若判断结果为否,将所述数据存储至所述预置的磁盘空间中,并更新所述索引表。
其中,所述程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据并加载至内存,包括:
程序运行时,计算所述程序运行所需的数据的校验值;
查找所述索引表中是否包含计算得到的所述检验值;
若查找结果为是,从所述索引表中读取所述校验值对应的数据的大小,比较所述数据的大小和所述预设的内存使用参数;
若所述数据的大小大于所述预设的内存使用参数,按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据加载至内存中;
若所述数据的大小小于等于所述预设的内存使用参数,从所述预置的磁盘空间中读取所述数据并加载至内存;
若查找结果为否,将所述程序运行所需的数据存储至所述预置的磁盘空间中,并更新所述索引表。
其中,所述方法还包括:
当所述预置的磁盘空间中的数据发生变化时,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息;
根据记录的每次数据变化对应的所述索引表的更新信息,对引起所述数据变化的操作进行撤销恢复。
相应地,本发明实施例还提供了一种数据处理装置,包括:
查找模块,用于当程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据;
加载模块,用于将所述查找模块查找到的所述数据加载至内存;
处理模块,用于运行所述程序,处理所述加载模块已加载的所述数据。
其中,所述装置还包括:
初始化模块,用于将程序运行所需的各种数据存储至预置的磁盘空间中,并建立索引表;
所述索引表包括:所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数;其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。
其中,所述初始化模块包括:
预置单元,用于预先设置用于存储程序运行所需的各种数据的磁盘空间,并建立索引表;
计算单元,用于当所述预置单元预置的磁盘空间有数据写入时,计算所述数据的校验值;
判断单元,用于判断所述预置单元建立的索引表中是否包含所述计算单元计算得到的所述检验值;
执行单元,用于当所述判断单元判断结果为是时,更新所述索引表中所述检验值对应的数据的引用计数;当所述判断单元判断结果为否时,将所述数据存储至所述预置的磁盘空间中,并更新所述索引表。
其中,所述查找模块包括:
计算单元,用于当程序运行时,计算所述程序运行所需的数据的校验值;
查找单元,用于查找所述索引表中是否包含所述计算单元计算得到的所述检验值;
比较单元,用于当所述查找单元查找结果为是时,从所述索引表中读取所述校验值对应的数据的大小,比较所述数据的大小和所述预设的内存使用参数;
读取单元,用于当所述比较单元比较得到所述数据的大小大于所述预设的内存使用参数时,按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据;当所述比较单元比较得到所述数据的大小小于等于所述预设的内存使用参数时,从所述预置的磁盘空间中读取所述数据;
存储更新单元,用于当所述查找单元查找结果为否时,将所述程序运行所需的数据存储至所述预置的磁盘空间中,并更新所述索引表。
其中,所述装置还包括:
记录模块,用于当所述预置的磁盘空间中的数据发生变化时,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息;
撤销恢复模块,用于根据所述记录模块记录的每次数据变化对应的所述索引表的更新信息,对引起所述数据变化的操作进行撤销恢复。
实施本发明实施例,具有如下有益效果:
本发明实施例将程序运行所需的数据存储在预置的磁盘空间中,在程序运行时,根据预设的内存使用参数,从预置的磁盘空间中获取相应大小的数据进行加载和处理,减少了将程序运行的全部数据加载至内存所带来的内存负荷,同时可保证数据的完整性,保证程序运行的可靠性。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明的数据处理装置的第一实施例的结构示意图;所述装置包括:
查找模块10,用于当程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据。
由于程序所需处理的数据量往往较大,在程序运行时,直接将数据加载至内存进行处理,会占据大量的内存空间,影响程序运行,因此,可预先将程序运行所需的数据存储至预置的磁盘空间中,当程序运行时,所述查找模块10根据预设的内存使用参数,从所述预置的磁盘空间中读取。其中,所述预设的内存使用参数是指预先设定的可使用的内存大小,该大小可以为内存的整个存储空间,也可以是内存的部分存储空间,所述预设的内存使用参数可根据实际需要进行设定,在此不赘述。
加载模块20,用于将所述查找模块10查找到的所述数据加载至内存。所述加载模块20将所述查找模块10查找到的数据加载至内存中,该加载过程与现有技术相同,在此不赘述。
处理模块30,用于运行所述程序,处理所述加载模块20已加载的所述数据。当所述加载模块20将数据加载至内存后,所述处理模块30运行所述程序,处理已加载的所述数据。
本发明实施例在程序运行时,根据预设的内存使用参数对数据进行读取、加载和处理,减少内存的负荷,保证数据的完整性,保证程序运行的可靠性。
请参见图2,为本发明的数据处理装置的第二实施例的结构示意图;与上一实施例相同,所述装置包括:查找模块10、加载模块20和处理模块30。本实施例中,所述装置进一步包括:
初始化模块40,用于将程序运行所需的各种数据存储至预置的磁盘空间中,并建立索引表。
所述索引表可以包括:所述预置的磁盘空间内存储的各个数据的偏移量(offset)、大小(size)、校验值(Crc32值)和引用计数(Numlock);其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。实际应用中,所述预置的磁盘空间内存储的各个数据可以采用树型结构表进行表示,所述树型结构表为类似文件夹结构的表。
请一并参见图3,为本发明的树型结构表的示意图;图3所示例子为:若往磁盘空间根目录中写入三个文件,分别为:AAAA.TXT、BBBB.TXT和CCCC.TXT,若该三个文件的内容相同,那么,将有三个结点指定同一个数据区,该指定的同一个数据的引用计数为3。若往磁盘空间根目录中写入两个文件,分别为:DDD.TXT和EEE.TXT,若该两个文件的内容相同,那么,将有两个结点指定同一个数据区,该指定的同一个数据的引用计数为2。
记录模块50,用于当所述预置的磁盘空间中的数据发生变化时,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息。
每当所述预置的磁盘空间中的数据发生变化时,所述索引表也会相应发生变化,所述记录模块50依据发生变化的数据,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息。
撤销恢复模块60,用于根据所述记录模块50记录的每次数据变化对应的所述索引表的更新信息,对引起所述数据变化的操作进行撤销恢复。
由于所述预置的磁盘空间中的数据都以追加的方式进行写入,当需要恢复到某一操作的数据时,用户仅需要向所述数据处理装置输入撤销恢复指令,所述撤销恢复模块60根据该撤销恢复指令以及记录的所述每次数据变化对应的索引表的更新信息,恢复到相应操作的索引表,即可达到对引起所述数据变化的操作进行撤销恢复。
为了更清楚地说明本发明,下面将结合附图4-5,对本发明的数据处理装置的各模块进行详细介绍。
请参见图4,为本发明的数据处理装置的初始化模块的实施例的结构示意图;所述初始化模块40包括:
预置单元401,用于预先设置用于存储程序运行所需的各种数据的磁盘空间,并建立索引表。
具体实现中,所述预置单元401预先在磁盘中设置一个空间,该空间用来存储程序运行所需的各种数据,并建立该预置的磁盘空间对应的索引表。所述索引表包括:所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数;其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。
计算单元402,用于当所述预置单元401预置的磁盘空间有数据写入时,计算所述数据的校验值。
当需要向预置的磁盘空间写入数据时,所述计算单元402首先计算需要写入的数据的校验值,即CRC(Cyclical Redundancy Check,循环冗余校验)32值。所述计算单元402的计算过程与现有的CRC的计算过程相同,在此不赘述。
判断单元403,用于判断所述预置单元401建立的索引表中是否包含所述计算单元402计算得到的所述检验值。
如前述,所述索引表包含所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数,当所述计算单元402计算得到需要写入的数据的CRC32值后,所述判断单元403则判断所述索引表中是否包含相同的CRC32值。可以理解的是,若需要写入的数据在此之前已被写入所述预置的磁盘空间中,则所述索引表中必定包含该CRC32值,若需要写入的数据尚未被写入所述预置的磁盘空间中,则所述索引表中未包含该CRC32值。
执行单元404,用于当所述判断单元403判断结果为是时,更新所述索引表中所述检验值对应的数据的引用计数;当所述判断单元403判断结果为否时,将所述数据存储至所述预置的磁盘空间中,并更新所述索引表。
若所述判断单元403判断结果为是,表明所述需要写入的数据已被存储至所述预置的磁盘空间中,所述执行单元404则无需再对该数据进行写入操作,仅需要更新所述索引表,将所述索引表中该数据的引用计数加1。其中,各个数据的引用计数表明各个数据需要被写入预置的磁盘空间的次数。当有相同的数据写入时,所述执行单元404仅对索引表中的引用计数进行更新,可避免写入同样的数据所带来的资源浪费,比如:相同的偏移量、大小等信息的存储,浪费了存储空间。若所述判断单元403判断结果为否,表明所述需要写入的数据尚未存储于所述预置的磁盘空间中,所述执行单元404则需要将所述数据存储至所述预置的磁盘空间中,具体地,所述执行单元404可以采用从尾追加的方式写入所述数据,即从所述预置的存储空间存储的数据的尾端添加所述需要写入的数据,然后更新所述索引表,在所述索引表中添加新写入的所述数据的偏移量、CRC32值、大小和引用计数等索引信息。
需要说明的是,所述预置的磁盘空间可提供API(Application Programming Interface,应用程序编程接口)接口,通过对该API接口的调用实现对所述预置的磁盘空间内的数据的调用。在现有的软件开发过程中,程序的处理过程中往往会产生很多临时文件数据,这些数据常被用户不小心删除,从而造成数据丢失。本发明实施例中,可采用所述预置的磁盘空间存储所产生的临时文件数据,并提供相应的API接口,开发人员通过调用所述API接口对所述预置的磁盘空间内的临时文件数据进行创建、修改或删除,则可避免现有技术中出现的临时文件数据丢失的问题。另外,通过API接口可以对所述预置的磁盘空间内的数据进行碎片整理,避免文件越来越大,从而提高数据处理效率。
请参见图5,为本发明的数据处理装置的查找模块的实施例的结构示意图;所述查找模块10包括:
计算单元101,用于当程序运行时,计算所述程序运行所需的数据的校验值。
所述计算单元101在程序运行时,首先计算所述程序运行所需的数据的CRC32值,所述计算单元101与图4所示的计算单元402的计算过程相同,二在此不赘述。实际应用中,所述计算单元101与图4所示的计算单元402可以合并为同一单元。
查找单元102,用于查找所述索引表中是否包含所述计算单元101计算得到的所述检验值。
如前述,所述索引表包含所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数,当所述计算单元101计算得到需要写入的数据的CRC32值后,所述查找单元102则查找所述索引表中是否包含相同的CRC32值。可以理解的是,若所述数据已被写入所述预置的磁盘空间中,则所述索引表中必定包含该CRC32值,若所述数据尚未被写入所述预置的磁盘空间中,则所述索引表中未包含该CRC32值。所述查找单元102与图4所示的判断单元403的处理过程相同,实际应用中,所述查找单元102与图4所示的判断单元403可以合并为同一单元。
比较单元103,用于当所述查找单元102查找结果为是时,从所述索引表中读取所述校验值对应的数据的大小,比较所述数据的大小和所述预设的内存使用参数。
若所述查找单元103查找结果为是,表明所述数据已被存储至所述预置的磁盘空间中,所述比较单元103从所述索引表中读取所述数据的大小,并比较所述数据的大小和所述预设的内存使用参数。其中,所述预设的内存使用参数是指预先设定的可使用的内存大小,该大小可以为内存的整个存储空间,也可以是内存的部分存储空间,所述预设的内存使用参数可根据实际需要进行设定,在此不赘述。
读取单元104,用于当所述比较单元103比较得到所述数据的大小大于所述预设的内存使用参数时,按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据;当所述比较单元103比较得到所述数据的大小小于等于所述预设的内存使用参数时,从所述预置的磁盘空间中读取所述数据。
若所述比较单元103比较得到所述数据的大小大于所述预设的内存使用参数,所述读取单元104则按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据,比如:若预设的内存使用参数为50M,所述数据为120M,则所述读取单元104每次只能读取不大于50M的数据映射至内存中,本实施例中,所述读取单元104按照所述预设的内存使用参数对所述数据进行分段读取,即第一次读取50M数据映射至内存,当该50M数据被处理完毕后,继续取后50M数据映射至内存进行处理,最后取剩余的20M数据映射至内存中进行处理。需要说明的是,所述读取单元104进行分段读取时,也可以按照预设的、不大于所述预设的内存使用参数的值进行分段读取,依上述例子,比如:所述读取单元104每次取40M数据映射至内存进行处理,等等,其他情况下可类似分析,在此不赘述。
若所述比较单元103比较得到所述数据的大小小于等于(不大于)所述预设的内存使用参数,所述读取单元104则直接从所述预置的磁盘空间中读取所述数据,比如:若预设的内存使用参数为50M,所述数据为40M,则所述读取单元104直接读取该40M的数据映射至内存中进行处理。
存储更新单元105,用于当所述查找单元102查找结果为否时,将所述程序运行所需的数据存储至所述预置的磁盘空间中,并更新所述索引表。
若所述查找单元102查找结果为否,表明所述数据尚未存储于所述预置的磁盘空间中,所述存储更新单元105则需要将所述数据存储至所述预置的磁盘空间中,具体地,所述存储更新单元105可以采用从尾追加的方式写入所述数据,即从所述预置的存储空间存储的数据的尾端添加所述需要写入的数据,然后更新所述索引表,在所述索引表中添加新写入的所述数据的偏移量、CRC32值、大小和引用计数等索引信息。
可以理解的是,所述存储更新单元105与图4所示的执行单元404的部分处理过程相同,所述存储更新单元105与图4所示的执行单元404在实际应用中可以合并为同一单元。
本发明实施例将程序运行所需的数据存储在预置的磁盘空间中,在程序运行时,根据预设的内存使用参数,从预置的磁盘空间中获取相应大小的数据进行查找,减少了将程序运行的全部数据加载至内存所带来的内存负荷,同时可保证数据的完整性,保证程序运行的可靠性。
为了更清楚地说明本发明,下面将由本发明的数据处理装置所执行的数据处理方法进行详细介绍。
请参见图6,为本发明的数据处理方法的第一实施例的流程图;所述方法包括:
S101,程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据并加载至内存。
由于程序所需处理的数据量往往较大,在程序运行时,直接将数据加载至内存进行处理,会占据大量的内存空间,影响程序运行,因此,可预先将程序运行所需的数据存储至预置的磁盘空间中,当程序运行时,步骤S101根据预设的内存使用参数,从所述预置的磁盘空间中读取数据并加载至内存中。其中,所述预设的内存使用参数是指预先设定的可使用的内存大小,该大小可以为内存的整个存储空间,也可以是内存的部分存储空间,所述预设的内存使用参数可根据实际需要进行设定,在此不赘述。
具体请一并参见图7,为图6所示的步骤S101的具体流程图;步骤S101包括:
S11,程序运行时,计算所述程序运行所需的数据的校验值。
步骤S11中,在程序运行时,首先计算所述程序运行所需的数据的CRC32值,该计算过程与现有的CRC的计算过程相同,在此不赘述。
S12,查找所述索引表中是否包含计算得到的所述检验值;若查找结果为是,转入步骤S13;否则,转入S17。
所述索引表包含所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数,当步骤S11计算得到需要写入的数据的CRC32值后,步骤S12则查找所述索引表中是否包含相同的CRC32值。可以理解的是,若所述数据已被写入所述预置的磁盘空间中,则所述索引表中必定包含该CRC32值,查找结果为是,转入步骤S13;若所述数据尚未被写入所述预置的磁盘空间中,则所述索引表中未包含该CRC32值,查找结果为否,转入步骤S17。
S13,从所述索引表中读取所述校验值对应的数据的大小,比较所述数据的大小和所述预设的内存使用参数。
若步骤S12的查找结果为是,表明所述数据已被存储至所述预置的磁盘空间中,步骤S13则从所述索引表中读取所述数据的大小,并比较所述数据的大小和所述预设的内存使用参数。其中,所述预设的内存使用参数是指预先设定的可使用的内存大小,该大小可以为内存的整个存储空间,也可以是内存的部分存储空间,所述预设的内存使用参数可根据实际需要进行设定,在此不赘述。
S14,判断所述数据的大小是否大于所述预设的内存使用参数;若判断结果为是,转入步骤S15;否则,转入步骤S16。
S15,按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据加载至内存中。
若步骤S14比较结果为是,步骤S15则按照所述预设的内存使用参数分段从所述预置的磁盘空间中读取所述数据,比如:若预设的内存使用参数为50M,所述数据为120M,则步骤S15每次只能读取不大于50M的数据映射至内存中,本实施例中,步骤S15按照所述预设的内存使用参数对所述数据进行分段读取,即第一次读取50M数据映射至内存,当该50M数据被处理完毕后,继续取后50M数据映射至内存进行处理,最后取剩余的20M数据映射至内存中进行处理。需要说明的是,步骤S15进行分段读取时,也可以按照预设的、不大于所述预设的内存使用参数的值进行分段读取,依上述例子,比如:步骤S15每次取40M数据映射至内存进行处理,等等,其他情况下可类似分析,在此不赘述。
S16,从所述预置的磁盘空间中读取所述数据并加载至内存;之后,转入步骤S102。
若S14比较结果为否,步骤S16则直接从所述预置的磁盘空间中读取所述数据,比如:若预设的内存使用参数为50M,所述数据为40M,则步骤S16直接读取该40M的数据映射至内存中进行处理。
S17,将所述程序运行所需的数据存储至所述预置的磁盘空间中,并更新所述索引表;之后,转入步骤S102。
若步骤S12的查找结果为否,表明所述数据尚未存储于所述预置的磁盘空间中,步骤S17则需要将所述数据存储至所述预置的磁盘空间中,具体地,步骤S17可以采用从尾追加的方式写入所述数据,即从所述预置的存储空间存储的数据的尾端添加所述需要写入的数据,然后更新所述索引表,在所述索引表中添加新写入的所述数据的偏移量、CRC32值、大小和引用计数等索引信息。
S102,运行所述程序,处理已加载的所述数据。当步骤S101将数据加载至内存后,步骤S102则运行所述程序,处理已加载的所述数据。
请参见图8,为本发明的数据处理方法的第二实施例的流程图;所述方法包括:
S201,将程序运行所需的各种数据存储至预置的磁盘空间中,并建立索引表。
所述索引表可以包括:所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数;其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。实际应用中,所述预置的磁盘空间内存储的各个数据可以采用树型结构表进行表示,所述树型结构表的结构可参见图3所示。
请一并参见图9,为图8所示的步骤S201的具体流程图;步骤S201包括:
S21,预先设置用于存储程序运行所需的各种数据的磁盘空间,并建立索引表。
具体实现中,步骤S21预先在磁盘中设置一个空间,该空间用来存储程序运行所需的各种数据,并建立该预置的磁盘空间对应的索引表。所述索引表包括:所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数;其中,各个数据的偏移量表示各个数据在所述预置的磁盘空间内的存储位置。
S22,当所述预置的磁盘空间有数据写入时,计算所述数据的校验值。
当需要向预置的磁盘空间写入数据时,步骤S22计算需要写入的数据的校验值,即CRC32值。该计算过程与现有的CRC的计算过程相同,在此不赘述。
S23,判断所述索引表中是否包含计算得到的所述检验值,若判断结果为是,转入步骤S24;否则,转入步骤S25。
所述索引表包含所述预置的磁盘空间内存储的各个数据的偏移量、大小、校验值和引用计数,当步骤S22计算得到需要写入的数据的CRC32值后,步骤S23则判断所述索引表中是否包含相同的CRC32值。可以理解的是,若需要写入的数据在此之前已被写入所述预置的磁盘空间中,则所述索引表中必定包含该CRC32值,判断结果为是,转入步骤S24,若需要写入的数据尚未被写入所述预置的磁盘空间中,则所述索引表中未包含该CRC32值,判断结果为否,转入步骤S25。
S24,更新所述索引表中的所述检验值对应的数据的引用计数;之后,转入步骤S202。
若步骤S23的判断结果为是,表明所述需要写入的数据已被存储至所述预置的磁盘空间中,步骤S24则无需再对该数据进行写入操作,仅需要更新所述索引表,将所述索引表中该数据的引用计数加1。其中,各个数据的引用计数表明各个数据需要被写入预置的磁盘空间的次数。当有相同的数据写入时,步骤S24仅对索引表中的引用计数进行更新,可避免写入同样的数据所带来的资源浪费,比如:相同的偏移量、大小等信息的存储,浪费了存储空间。
S25,将所述数据存储至所述预置的磁盘空间中,并更新所述索引表。
若步骤S23的判断结果为否,表明所述需要写入的数据尚未存储于所述预置的磁盘空间中,步骤S25则需要将所述数据存储至所述预置的磁盘空间中,具体地,步骤S25可以采用从尾追加的方式写入所述数据,即从所述预置的存储空间存储的数据的尾端添加所述需要写入的数据,然后更新所述索引表,在所述索引表中添加新写入的所述数据的偏移量、CRC32值、大小和引用计数等索引信息。
S202,程序运行时,根据预设的内存使用参数,从预置的磁盘空间中查找所述程序运行所需的数据并加载至内存。
S203,运行所述程序,处理已加载的所述数据。
本实施例中,步骤S202-步骤S203与上一实施例的步骤S101-步骤S102的具体流程相同,在此不赘述。
S204,当所述预置的磁盘空间中的数据发生变化时,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息。
每当所述预置的磁盘空间中的数据发生变化时,所述索引表也会相应发生变化,步骤S204依据发生变化的数据,更新所述索引表,并记录每次数据变化对应的所述索引表的更新信息。
S205,根据记录的每次数据变化对应的所述索引表的更新信息,对引起所述数据变化的操作进行撤销恢复。
由于所述预置的磁盘空间中的数据都以追加的方式进行写入,当需要恢复到某一操作的数据时,用户仅需要向所述数据处理装置输入撤销恢复指令,步骤S205根据该撤销恢复指令以及步骤S204记录的所述每次数据变化对应的索引表的更新信息,恢复到相应操作的索引表,即可达到对引起所述数据变化的操作进行撤销恢复。
需要说明的是,本实施例中,步骤S204与步骤S202在时序上不分先后,步骤S201将数据存储至预置的磁盘空间并建立索引表之后,如果所述预置的磁盘空间中的数据发生变化,则执行步骤S204。
本发明实施例将程序运行所需的数据存储在预置的磁盘空间中,在程序运行时,根据预设的内存使用参数,从预置的磁盘空间中获取相应大小的数据进行加载和处理,减少了将程序运行的全部数据加载至内存所带来的内存负荷,同时可保证数据的完整性,保证程序运行的可靠性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。