CN108319429B - 一种加快文件读取的方法及计算机设备 - Google Patents

一种加快文件读取的方法及计算机设备 Download PDF

Info

Publication number
CN108319429B
CN108319429B CN201810023780.XA CN201810023780A CN108319429B CN 108319429 B CN108319429 B CN 108319429B CN 201810023780 A CN201810023780 A CN 201810023780A CN 108319429 B CN108319429 B CN 108319429B
Authority
CN
China
Prior art keywords
data
byte length
reading
current offset
half area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810023780.XA
Other languages
English (en)
Other versions
CN108319429A (zh
Inventor
左冬杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Si Tech Information Technology Co Ltd
Original Assignee
Beijing Si Tech Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Si Tech Information Technology Co Ltd filed Critical Beijing Si Tech Information Technology Co Ltd
Priority to CN201810023780.XA priority Critical patent/CN108319429B/zh
Publication of CN108319429A publication Critical patent/CN108319429A/zh
Application granted granted Critical
Publication of CN108319429B publication Critical patent/CN108319429B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种加快文件读取的方法及计算机设备,该方法包括:当分区标识F标记为上半区时,判断P与B之和是否大于C的一半;若是,则从文件中读取数据存储到下半区,且所述读取的数据的字节长度与C的一半相等,并从P的位置开始B字节;根据B字节,确定数据体的字节长度L;根据L,直接从P的位置开始读取L的数据;将L作为返回数据返回,同时将P更新为P+L以及将分区标识F标记为下半区。还涉及一种计算机设备。通过本发明将数据进行封装,按照数据头+数据体的方式进行存储的应用系统,并通过单次读入最大数据的N倍,然后再逐条数据返回的方式减低对文件IO操作,大大提高了数据处理的效率和速度。

Description

一种加快文件读取的方法及计算机设备
技术领域
本发明属于领域,尤其涉及一种加快文件读取的方法及计算机设备。
背景技术
传统的文件存储方式,采用比较普遍的方式是单条记录单行存放方式,所以在读取的时候采用也是单行读取的方式,这种读取方式每次读取一行,读取的次数和文件的行数相同,而且每次读取都需对存储数据的内存进行清空。
传统按行读取方式较大的问题在于多次读取多次IO操作导致读取效率缓慢,所以在处理文件数据的应用系统时,随着处理文件系统的模块增加逐步会导致系统处理效率低。
发明内容
本发明所要解决的技术问题是:读取文件的效率缓慢,从而导致处理效率低。
为解决上面的技术问题,本发明提供了一种加快文件读取的方法,该方法包括:
S1、将预设内存数据块的存储容量的字节长度C划分为上半区和下半区,且用分区标识F作为上半区和下半区的标记;
S2、当所述分区标识F标记为上半区时,判断当前偏移量P与当前数据的数据头的字节长度B之和是否大于所述字节长度C的一半;
S3、若是,则从文件中读取数据存储到下半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度B的数据;
S4、根据所述字节长度B的数据,确定数据体的字节长度L;
S5、根据所述字节长度L,直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
S6、将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区;
其中,P为偏移量的字节长度,B为预设数据头的字节长度,C为预设内存数据块的存储容量的字节长度。
本发明的有益效果:通过上述的方法将数据进行封装,按照数据头(含标识和数据体长度,数据头长度固定)+数据体的方式进行存储的应用系统。通过单次读入最大数据的N倍,然后再逐条数据返回的方式减低对文件IO操作,大大提高了数据处理的效率和速度。
进一步地,所述方法还包括:
当前偏移量P与当前数据的数据头的字节长度B之和小于所述字节长度C的一半时,则从内存数据块中直接读取字节长度B的数据;
根据所述字节长度B的数据,确定数据体的字节长度L;
判断L+P之和是否大于所述字节长度C的一半,若否,则直接从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为上半区。
进一步地,所述方法还包括:
当L+P之和大于所述字节长度C的一半时,则从文件中读取数据存储到下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区。
进一步地,当所述分区标识F标记为下半区时,判断所述当前偏移量P与所述数据头的字节长度B之和是否大于所述字节长度C;
若否,则从所述当前偏移量P的位置开始读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断L+P之和是否大于所述字节长度C,若否,则直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为下半区。
进一步地,所述方法还包括:
当L+P之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据、且从内存数据块的初始位置开始读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记为上半区。
进一步地,所述方法还包括:
当所述当前偏移量P与所述数据头的字节长度B之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据和从内存数据块的初始位置开始读取字节长度B-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度B-(C-P)的数据之和作为所述数据头的数据;
根据所述数据头的数据,确定所述数据体的字节长度L;
根据所述字节长度L,从所述当前偏移量P的位置开始读取字节长度C-P的数据和从上半区的数据中读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记为上半区。
进一步地,该方法还包括:
当首次从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从内存数据块中读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断所述字节长度L是否大于所述字节长度C的一半,若否,则从当前偏移量P的位置直接从读取所述字节长度L的数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记保留为上半区。
进一步地,判断所述数据体的字节长度L是否大于所述字节长度C的一半还包括:
当所述字节长度L小于所述字节长度C的一半时,则从文件中读取数据存储到所述下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并直接当前偏移量P的位置开始读取所述字节长度L的字节数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的字节数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记为下半区。
本发明还涉及一种计算机设备,该计算机设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述方法的步骤。
本发明的有益效果:通过将数据进行封装,按照数据头(含标识和数据体长度,数据头长度固定)+数据体的方式进行存储的应用系统。通过单次读入最大数据的N倍,然后再逐条数据返回的方式减低对文件IO操作,大大提高了数据处理的效率和速度。
附图说明
图1为本发明的一种加快文件读取的方法的流程图;
图2为本发明的一种加快文件读取的方法的示意图;
图3为本发明的一种计算机设备的结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
在本发明中电信计费系统中TLV结构数据读,调用数据读取方法,从文件中不断获取数据记录,单条数据最大长度大小为2048字节,按块读取的块存储变量(以下用C来标记)是4096字节,头长度(以下用B标记)是3位,其中第一位是标识,第二位和第三位是长度标识,偏移量用P标记。
如图1和图2所示,本发明实施例1提供的是一种加快文件读取的方法,该方法包括:
S1、将预设内存数据块的存储容量的字节长度C划分为上半区和下半区,且用分区标识F作为上半区和下半区的标记;
S2、当所述分区标识F标记为上半区时,判断当前偏移量P与当前数据的数据头的字节长度B之和是否大于所述字节长度C的一半;
S3、若是,则从文件中读取数据存储到下半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度B的数据;
S4、根据所述字节长度B的数据,确定数据体的字节长度L;
S5、根据所述字节长度L,直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
S6、将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区;
其中,P为偏移量的字节长度,B为预设数据头的字节长度,C为预设内存数据块的存储容量的字节长度。
在本实施例1中通过下面的方式进行解析说明,F为上半区时,则判断P+B>2048是否成立,如成立,则再读入2048字节放置C的后半区,然后从P的位置开始读取B字节,根据这B字节得出数据的长度L,然后直接P的当前位置获取L字节长度作为数据,此时更新P=P+L,分区使用标识F为下半区。
通过上述的方法将数据进行封装,按照数据头(含标识和数据体长度,数据头长度固定)+数据体的方式进行存储的应用系统。通过单次读入最大数据的N倍,然后再逐条数据返回的方式减低对文件IO操作,大大提高了数据处理的效率和速度。
可选地,在另一实施例2中所述方法还包括:
当前偏移量P与当前数据的数据头的字节长度B之和小于所述字节长度C的一半时,则从内存数据块中直接读取字节长度B的数据;
根据所述字节长度B的数据,确定数据体的字节长度L;
判断L+P之和是否大于所述字节长度C的一半,若否,则直接从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为上半区。
需要说明的是,本实施例2是在上述实施例1的技术方案的基础上进行的另一方案,在本实施例2中如果P+B>2048不成立,则读取B字节,得出数据长度L,判断L+P>2048是否成立,如果不成立,则直接从P位置读取L长度作为数据返回,并且更新当前偏移量P=P+L,分区使用标识F仍然为上半区。
可选地,在另一实施例3中所述方法还包括:
当L+P之和大于所述字节长度C的一半时,则从文件中读取数据存储到下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区。
需要说明的是,本实施例3是在上述实施例2的基础上进行的另一方案,如L+P>2048成立,则读取2048字节放置C的后半区,然后直接从P位置读取L长度作为数据返回,更新偏移量P=P+L,更新分区使用标识F为下半区。
可选地,在另一实施例4中当所述分区标识F标记为下半区时,判断所述当前偏移量P与所述数据头的字节长度B之和是否大于所述字节长度C;
若否,则从所述当前偏移量P的位置开始读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断L+P之和是否大于所述字节长度C,若否,则直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为下半区。
需要说明的是,本实施例4是另一技术方案,当F为下半区时,判断P+B>4096是否成立,若小于,从P的位置读取字节长度B的数据,根据该字节长度B的数据分析出数据头的字节长度L,如果L+P<=4096,则直接从P的位置读取L长度的数据作为返回数据返回,并更新当前偏移量为P=P+L,分区使用标识F为下半区。
可选地,在另一实施例5中所述方法还包括:
当L+P之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据、且从内存数据块的初始位置开始读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记为上半区。
需要说明的是,本实施例5在上述实施例4的基础上进行的技术方案,在本实施例5中当L+P>4096时,则从文件中读取2048字节放置到C的上半区,则从P的位置读取“字节长度4096-P的数据”+“从C初始位置获取字节长度L-(4096-P)的数据”作为返回数据返回,并更新当前偏移量P=L-(4096-P),更新分区使用标记为上半区。
可选地,在另一实施例6中所述方法还包括:
当所述当前偏移量P与所述数据头的字节长度B之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据和从内存数据块的初始位置开始读取字节长度B-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度B-(C-P)的数据之和作为所述数据头的数据;
根据所述数据头的数据,确定所述数据体的字节长度L;
根据所述字节长度L,从所述当前偏移量P的位置开始读取字节长度C-P的数据和从上半区的数据中读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记上半区。
需要说明的是,本实施例6是在上述实施例5的基础上进行的技术方案,在本实施例6中当F为下半区时,且P+B>4096,从文件中再次读取2048个字节放置到C上半区,“P开始读取4096-P个字节”+“C初始位置读取B-(4096-P)”个字节作为数据头,并根据数据头分析得出数据长度L,然后组合返回数据,该组合数据是由下半区P开始到4096,以及C上半区L-(4096-P)两部分组成。此时更新分区使用标识F为上半区,偏移量为P=L-(4096-P)。
可选地,在另一实施例7中该方法还包括:
当首次从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从内存数据块中读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断所述字节长度L是否大于所述字节长度C的一半,若否,则从当前偏移量P的位置直接从读取所述字节长度L的数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记保留为上半区。
需要说明的是,本实施例7中是在上述实施例1-实施例3的基础上进行的方案,首次启动从文件中按块读取2048(C容量的一半)个字节到C的前(上)半区。读取数据头长度B个字节,然后解析出当前数据长度L,首次读取偏移量P为0,如L<=2048,则直接从P读取L个字节作为数据即可,此时记录使用分区标识F为上半区,偏移量为P=L。
可选地,在另一实施例8中判断所述数据体的字节长度L是否大于所述字节长度C的一半还包括:
当所述字节长度L小于所述字节长度C的一半时,则从文件中读取数据存储到所述下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并直接当前偏移量P的位置开始读取所述字节长度L的字节数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的字节数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记为下半区。
需要说明的是,本实施例8是在上述实施例7的基础上进行的方案,在本实施例8中是如果L>2048,则从文件中再读取2048字节存储到C的下半区,然后直接从P开始读取L个字节作为数据,此时记录使用分区标识F为下半区,偏移量P=L。
本发明实施例9还涉及一种计算机设备,该计算机设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如上所述方法的步骤。
在本实施例9中通过将数据进行封装,按照数据头(含标识和数据体长度,数据头长度固定)+数据体的方式进行存储的应用系统。通过单次读入最大数据的N倍,然后再逐条数据返回的方式减低对文件IO操作,大大提高了数据处理的效率和速度。
在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种加快文件读取的方法,其特征在于,该方法包括:
将预设内存数据块的存储容量的字节长度C划分为上半区和下半区,且用分区标识F作为上半区和下半区的标记;
当所述分区标识F标记为上半区时,判断当前偏移量P与当前数据的数据头的预设字节长度B之和是否大于所述字节长度C的一半;
若是,则从文件中读取数据存储到下半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取数据头的预设字节长度B的数据;
根据所述数据头的预设字节长度B的数据,确定数据体的字节长度L;
根据所述字节长度L,直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区;
其中,P为偏移量的字节长度,B为数据头的预设字节长度,C为预设内存数据块的存储容量的字节长度。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当前偏移量P与当前数据的数据头的预设字节长度B之和小于所述字节长度C的一半时,则从内存数据块中直接读取字节长度B的数据;
根据所述字节长度B的数据,确定数据体的字节长度L;
判断L+P之和是否大于所述字节长度C的一半,若否,则直接从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为上半区。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
当L+P之和大于所述字节长度C的一半时,则从文件中读取数据存储到下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L以及将所述分区标识F标记为下半区。
4.根据权利要求1-3任一所述的方法,其特征在于,当所述分区标识F标记为下半区时,判断所述当前偏移量P与所述数据头的预设字节长度B之和是否大于所述字节长度C;
若否,则从所述当前偏移量P的位置开始读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断L+P之和是否大于所述字节长度C,若否,则直接从所述当前偏移量P的位置开始读取所述字节长度L的数据;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为P+L,同时所述分区标识F标记保留为下半区。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
当L+P之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取的数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据、且从内存数据块的初始位置开始读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记为上半区。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
当所述当前偏移量P与所述数据头的预设字节长度B之和大于所述字节长度C时,则从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从所述当前偏移量P的位置开始读取字节长度C-P的数据和从内存数据块的初始位置开始读取字节长度B-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度B-(C-P)的数据之和作为所述数据头的数据;
根据所述数据头的数据,确定所述数据体的字节长度L;
根据所述字节长度L,从所述当前偏移量P的位置开始读取字节长度C-P的数据和从上半区的数据中读取字节长度L-(C-P)的数据;
将所述字节长度C-P的数据和所述字节长度L-(C-P)的数据作为返回数据返回,并将所述当前偏移量P更新为L-(C-P)以及将所述分区标识F标记为上半区。
7.根据权利要求1-3任一所述的方法,其特征在于,该方法还包括:
当首次从文件中读取数据存储到上半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并从内存数据块中读取字节长度B的数据;
根据所述字节长度B的数据,确定所述数据体的字节长度L;
判断所述字节长度L是否大于所述字节长度C的一半,若否,则从当前偏移量P的位置直接从读取所述字节长度L的数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记保留为上半区。
8.根据权利要求7所述的方法,其特征在于,判断所述数据体的字节长度L是否大于所述字节长度C的一半还包括:
当所述字节长度L小于所述字节长度C的一半时,则从文件中读取数据存储到所述下半区,且所述读取数据的字节长度与所述字节长度C的一半相等,并直接当前偏移量P的位置开始读取所述字节长度L的字节数据,其中首次读取时,当前偏移量P为0;
将所述字节长度L的字节数据作为返回数据返回,同时将所述当前偏移量P更新为L以及将所述分区标识F标记为下半区。
9.一种计算机设备,该计算机设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一项所述方法的步骤。
CN201810023780.XA 2018-01-10 2018-01-10 一种加快文件读取的方法及计算机设备 Active CN108319429B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810023780.XA CN108319429B (zh) 2018-01-10 2018-01-10 一种加快文件读取的方法及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810023780.XA CN108319429B (zh) 2018-01-10 2018-01-10 一种加快文件读取的方法及计算机设备

Publications (2)

Publication Number Publication Date
CN108319429A CN108319429A (zh) 2018-07-24
CN108319429B true CN108319429B (zh) 2021-02-19

Family

ID=62893110

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810023780.XA Active CN108319429B (zh) 2018-01-10 2018-01-10 一种加快文件读取的方法及计算机设备

Country Status (1)

Country Link
CN (1) CN108319429B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110176264B (zh) * 2019-04-26 2021-05-07 安徽大学 一种基于内存内计算的高低位合并电路结构

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104220991A (zh) * 2012-03-16 2014-12-17 马维尔国际贸易有限公司 用于允许数据在nand闪存上的有效存储的架构
CN104679446A (zh) * 2013-08-16 2015-06-03 Lsi公司 用于使用经分割快闪转变层的方法及设备
CN106372002A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种数据存储方法及读取还原方法
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
CN107506156A (zh) * 2017-09-28 2017-12-22 焦点科技股份有限公司 一种块设备的io优化方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104220991A (zh) * 2012-03-16 2014-12-17 马维尔国际贸易有限公司 用于允许数据在nand闪存上的有效存储的架构
CN104679446A (zh) * 2013-08-16 2015-06-03 Lsi公司 用于使用经分割快闪转变层的方法及设备
CN107132993A (zh) * 2016-02-26 2017-09-05 高德软件有限公司 一种将数据写入内存的方法及装置
CN106372002A (zh) * 2016-08-31 2017-02-01 成都科来软件有限公司 一种数据存储方法及读取还原方法
CN106445416A (zh) * 2016-09-22 2017-02-22 飞天诚信科技股份有限公司 一种数据记录的存储、查询和检索的方法及装置
CN107506156A (zh) * 2017-09-28 2017-12-22 焦点科技股份有限公司 一种块设备的io优化方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
内存映射文件及其在大数据量文件快速存取中的应用;杨宁学等;《计算机应用研究》;20040828;全文 *

Also Published As

Publication number Publication date
CN108319429A (zh) 2018-07-24

Similar Documents

Publication Publication Date Title
EP3518112B1 (en) Memory device and host device
CN105676023B (zh) 故障录波数据的记录方法和系统
CN104965686B (zh) 一种优先级队列设计方法及优先级队列设计装置
CN105468642A (zh) 数据的存储方法及装置
CN111294792B (zh) 一种缓存状态上报方法、终端和计算机存储介质
CN109284252B (zh) 一种通信设备中轻量级文件系统管理方法
CN108319429B (zh) 一种加快文件读取的方法及计算机设备
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及系统
WO2023155849A1 (zh) 基于时间衰减的样本删除方法及其装置、存储介质
CN1687899A (zh) 将应用程序动态下载到用户识别模块的方法、系统及模块
CN110825533B (zh) 一种数据发射方法及装置
US11327939B2 (en) Method and device for indexing dirty data in storage system page
CN101777077B (zh) 嵌入式设备文件系统实现方法
CN110442782A (zh) 一种云资源检索方法与装置
CN115129244B (zh) 基于flash芯片的电池管理系统数据存储管理方法
CN106775643B (zh) 一种带有渠道数据的应用文件打包系统及方法
CN115391355A (zh) 数据处理方法、装置、设备及存储介质
CN106991021B (zh) 从现有数据文件构建新数据文件的方法及系统
CN112364017A (zh) 一种利用布隆过滤器过滤黑白名单的方法
JPH02201552A (ja) トランザクショントレース情報採取方式
CN109446162A (zh) 确定移动互联网内目标移动终端的数据状态的方法及系统
JP2539391B2 (ja) 関数処理装置
CN103646056A (zh) 一种基于特征值存储的历史数据存储和抽取方法
CN112579003B (zh) 键值对的调整方法、装置、存储介质以及电子装置
CN108710579A (zh) 一种超过寻址空间大容量的管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant