CN110333911A - 一种文件包读取方法及装置 - Google Patents
一种文件包读取方法及装置 Download PDFInfo
- Publication number
- CN110333911A CN110333911A CN201910600526.6A CN201910600526A CN110333911A CN 110333911 A CN110333911 A CN 110333911A CN 201910600526 A CN201910600526 A CN 201910600526A CN 110333911 A CN110333911 A CN 110333911A
- Authority
- CN
- China
- Prior art keywords
- subfile
- threads
- file
- thread
- cores
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 claims description 9
- 230000005055 memory storage Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 239000002699 waste material Substances 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44568—Immediately runnable code
- G06F9/44578—Preparing or optimising for loading
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及文件读取技术领域,提供一种文件包读取方法及装置,解决了现有文件包读取速度慢的问题。其中,文件包读取方法包括:获取文件包,文件包包括多个子文件,多个子文件分别对应软件开发包SDK的各个组成模块;获取内核信息,内核信息包括内核数量;根据内核数量,得到线程数量,线程数量为大于1的整数,且线程数量不高于内核数量;根据线程数量,分配多个子文件至多个线程;绑定多个线程至分别对应的多个内核;并行启动并运行多个线程,以分别加载对应的多个子文件。并行启动并运行分配多个子文件的多个线程,提高文件包加载速度。将多个线程绑定至多个内核,多个内核可同时读取文件包的子文件,提高文件包读取速度,并可充分利用平台内核。
Description
技术领域
本发明一般地涉及文件读取技术领域,特别是涉及一种文件包读取方法及装置。
背景技术
随着计算机、手机等的广泛应用,在目前的工作生活中,文件包的读取越来越多,例如在下载视频及文件包等过程中需要文件包的读取,其中,文件包可理解为文件夹,文件包内可存储多个子文件。目前计算机读取文件包的过程为:在程序内生成一个线程,计算机将该线程随机分配给执行程序的计算机CPU一个内核,启动并运行单个线程,将需要读取的文件包内的文件串行加载至内核,完成文件包读取。其中,线程为计算机程序的一次执行过程,加载为启动程序时文件包的所有文件载入内核的过程,串行加载即为按顺序加载。
然而,将文件包以串行方式加载至线程,由于按照顺序加载文件包的文件,文件包加载速度慢。且计算机为线程随机分配内核,若线程加载所占内存大的文件包时,计算机将CPU小核分配给该线程,那么此时文件包读取速度相比于将该线程分配给大核的文件包读取速度慢,而大核却未被有效利用。因此,现有文件包读取方法,存在文件包读取速度慢的问题。
发明内容
为了解决现有技术中存在的上述问题,本发明提供一种文件包读取方法及装置。
第一方面,本发明实施例提供一种文件包读取方法,该方法包括:获取文件包,文件包包括多个子文件,多个子文件分别对应软件开发工具包SDK的各个组成模块;获取内核信息,内核信息包括内核数量;根据内核数量,得到线程数量,线程数量为大于1的整数,且线程数量不高于内核数量;根据线程数量,分配多个子文件至多个线程;绑定多个线程至分别对应的多个内核;并行启动并运行多个线程,以分别加载对应的多个子文件。在一例中,该方法还包括:根据文件包,获取文件包的文件信息,文件信息包括文件包的子文件数量;根据内核数量,得到线程数量,包括:根据子文件数量和内核数量,得到线程数量。
在一例中,根据子文件数量和内核数量,得到线程数量,包括:若子文件数量大于或等于内核数量,线程数量为内核数量;若子文件数量小于内核数量,线程数量为子文件数量。
在一例中,文件信息还包括子文件的子文件大小;根据线程数量,分配多个子文件至多个线程,包括:根据子文件大小对子文件排序,随机分配或按照子文件大小的排序顺序分配子文件至所述线程。
在一例中,内核包括大核、小核;绑定线程至内核,包括:按照分配至每个线程的全部子文件大小,绑定线程至大核和/或小核。
在一例中,根据文件包,获取文件包的文件信息,包括:通过配置文件获取文件包的文件信息,其中,配置文件记载文件包的子文件的名称、数量以及大小。
在一例中,获取内核信息,包括:通过获取平台信息得到内核信息。
第二方面,本发明实施例提供一种文件包读取装置,该装置包括:获取单元,用于获取文件包及内核信息,文件包包括多个子文件,多个子文件分别对应软件开发包SDK的各个组成模块,内核信息包括内核数量;线程数量确定单元,用于根据内核数量,得到线程数量,线程数量为大于1的整数,且线程数量不高于内核数量;线程分配单元,用于根据线程数量,分配多个子文件至多个线程;绑核单元,用于绑定多个线程至分别对应的多个内核;线程启动单元,用于并行启动并运行多个线程,以分别加载对应的多个子文件。
第三方面,本发明实施例提供一种电子设备,其中,电子设备包括:存储器,用于存储指令;以及处理器,用于调用存储器存储的指令执行如第一方面所述的一种文件包读取方法。
第四方面,本发明实施例提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行如第一方面所述的一种文件包读取方法。
本发明提供的一种文件包读取方法及装置,一方面,分配多个子文件至多个线程,并行启动并运行多个线程,能够提高子文件加载速度,并将多个线程绑定至多个内核,多个内核可同时工作,能够实现多个线程并行,即同时加载子文件至不同内核,提高文件包读取速度,减少了文件包读取过程的卡顿现象,提升用户体验。另一方面,将多个线程绑定至多个内核,能够充分利用平台内核,减少平台内核的资源浪费情况发生。
附图说明
通过参考附图阅读下文的详细描述,本发明实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示出了本发明实施例提供的一种文件包读取方法示意图;
图2示出了本发明实施例提供的一种文件包读取装置示意图;
图3示出了本发明实施例提供的一种电子设备示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。
需要注意,虽然本文中使用“第一”、“第二”等表述来描述本发明的实施方式的不同子文件、步骤和数据等,但是“第一”、“第二”等表述仅是为了在不同的子文件、步骤和数据等之间进行区分,而并不表示特定的顺序或者重要程度。实际上,“第一”、“第二”等表述完全可以互换使用。
图1为本公开实施例提供的一种文件包读取方法10的示意图。图1所示方法可应用任何形式的文件包读取。如图1所示,在一例中,一种文件包读取方法10包括步骤S101-S106:
S101:控制中心获取文件包,文件包包括多个子文件,多个子文件分别对应软件开发包SDK的各个组成模块。
其中,文件包可以为SDK(软件开发工具包,Software Development Kit)或文件夹等,文件包中可包含任意类型的子文件,子文件可为对应软件开发包SDK的各个组成模块、压缩文件、数据库文件、音频文件等,也可以是具备多个文件的子文件包。
其中,控制中心可为移动终端、计算机、服务器等能够实现本公开实施例文件包读取方法的硬件设备。
S102:控制中心获取内核信息,内核信息包括内核数量。
控制中心可通过获取平台信息得到内核信息,此平台信息可为执行本公开实施例的控制中心CPU品牌及CPU的内核数量。CPU品牌可为高通、MTK、展讯、海思等,CPU内核数量可为:双核、4核、6核、8核、12核等,内核数量根据读取到的平台CPU内核数确定。其中,内核可分为具有高主频的大核、以及低主频的小核。
S103:控制中心根据内核数量,得到线程数量,线程数量为大于1的整数,且线程数量不高于内核数量。
线程数量可以通过预设设定,如设置为两个或三个;也可以根据内核数量确定,如等于内核数量,或等于内核的大核数量等。
S104:控制中心根据线程数量,分配多个子文件至多个线程。
若子文件数量小于或等于线程数量,那么控制中心可为每个线程随机分配一个子文件。若子文件数量多于线程数量,则控制中心为某些线程分配一个子文件,为某些线程分配多个子文件,也可能存在控制中心为每个线程分配多个子文件的情况。若一个线程需要加载多个子文件,则此时的多个子文件串行加载至分配的单个线程。
S105:控制中心绑定多个线程至分别对应的多个内核。通过将线程与内核绑定,将多线程分配至多内核,保证了并行加载;同时,在一些实施例中,可以根据每个线程分配的子文件的情况,将线程绑定至大核或小核,从而做到更合理的加载,提高了效率。
控制中心可通过对内核的大核和小核数量编码的方式,绑定多线程至多内核。编码方式可为二进制、八进制、十六进制码,或控制中心能够识别的其它编码方式。若内核数量为八核,四大核四小核,则通过16进制编码为:0x11110000,其中1表示大核,0表示小核。
S106:控制中心并行启动并运行多个线程,以分别加载对应的多个子文件。
一方面,分配多个子文件至多个线程,并行启动并运行多个线程,能够提高子文件加载速度,并将多个线程绑定至多个内核,多个内核可同时工作,能够实现多个线程并行加载子文件至不同内核,提高文件包读取速度,减少了文件包读取过程的卡顿现象,提升用户体验。另一方面,将多个线程绑定至多个内核,能够充分利用平台内核,减少平台内核的资源浪费情况发生。
在一例中,本公开提供的一种文件包读取方法10,还包括:控制中心根据文件包,获取文件包的文件信息,文件信息包括文件包的子文件数量;其中根据内核数量,得到线程数量按照子文件数量和内核数量,包括:控制中心根据子文件数量和内核数量,得到线程数量。其中,线程数量的确定,可以为:若子文件数量大于或等于内核数量,线程数量为内核数量。若子文件数量小于内核数量,线程数量为子文件数量。通过子文件数量和内核数量确定线程数量,能够最大限度的利用内核读取文件包,且避免内核闲置造成资源浪费的情况出现。
在一例中,本公开提供的一种文件包读取方法10中,文件信息还包括子文件的子文件大小;其中,控制中心根据线程数量,分配多个子文件至多个线程,包括:根据子文件大小对子文件排序,随机分配或按照子文件大小顺序分配子文件至线程。将依据随机分配或按照子文件大小顺序分配子文件至线程的分配原则,在子文件分配至线程的过程中,针对不同情况选择不同的分配方式,能够提高子文件加载至线程的速度,进一步提高文件包的读取速度,下面详细介绍多种分配方式。
根据线程数量的确定方式,子文件分配至线程可分为两种情况,情况一:文件数量大于或等于内核数量,此时线程数量为内核数量,即子文件数量大于线程数量。情况二:若子文件数量小于内核数量,则线程数量为子文件数量,此时线程数量与子文件数量相同。
情况一,此时分配多个子文件至线程的方式有多种,本实施例中只列出三种分配方式,但是子文件分配至线程的分配方式不局限于以下三种分配方式:
分配方式一,随机分配子文件至线程。降低分配的运算成本,直接将子文件进行分配,通过多线程并行加载从而提高文件包的加载速度。
分配方式二,根据子文件大小平均分配子文件至线程。按照该分配方式,使得每个线程加载的子文件总大小接近,使得并行加载的完成时间缩短。根据子文件大小平均分配子文件至线程,具体步骤可为:根据子文件大小,按照由大到小或由小到大的顺序排列子文件。对子文件数量与线程数量M求商,在对求得的商四舍五入取整数N,得到每个线程平均分配N个子文件,根据已经从大到小排序的子文件,按照一首一尾的顺序,从已经排好序的子文件两端逐个取N个子文件依次分配至前M-1个线程中的每一个线程,余下未分配线程的子文件全部分配至最后一个线程。例如,根据子文件大小,按照由大到小的顺序排序,若子文件数量为30,线程数量M为8,则子文件数量与线程数量M取商,结果为3.75,对商四舍五入取整数为4,即前7个线程分配4个子文件,最后一个线程分配2个子文件,分配结果如下:
线程1:(子文件1、子文件30、子文件2、子文件29)
线程2:(子文件3、子文件28、子文件4、子文件27)
线程3:(子文件5、子文件26、子文件6、子文件25)
线程4:(子文件7、子文件24、子文件8、子文件23)
线程5:(子文件9、子文件22、子文件10、子文件21)
线程6:(子文件11、子文件20、子文件12、子文件19)
线程7:(子文件13、子文件18、子文件14、子文件17)
线程8:(子文件15、子文件16)。
分配方式三,相比分配方式二,区别在于不采用一首一尾的顺序进行分配,而是通过根据子文件大小,顺序、逆序交替分配的方式进行,即,先根据子文件大小,先将最大或最小的M个子文件,顺序分配到1至M线程中,其次最大或最小的M个子文件,逆序分配到1至M线程中,以此类推直至分配完全部子文件。例如,子文件数量为30,线程数量M为8,则子文件数量与线程数量M取商,结果为3.75,对商四舍五入取整数为4,即8个线程中有7个线程分配4个子文件,一个线程分配2个子文件,分配结果如下:
线程1:(子文件1、子文件16、子文件17)
线程2:(子文件2、子文件15、子文件18)
线程3:(子文件3、子文件14、子文件19、子文件30)
线程4:(子文件4、子文件13、子文件20、子文件29)
线程5:(子文件5、子文件12、子文件21、子文件28)
线程6:(子文件6、子文件11、子文件22、子文件27)
线程7:(子文件7、子文件10、子文件23、子文件26)
线程8:(子文件8、子文件9、子文件24、子文件25)。
通过分配方式二、三,根据子文件的大小进行更加合理的分配,使得线程上分配的子文件总大小更加平均,由于并行加载全部线程的时间是由所需时间最长的线程决定的,因此,平均化的分配方式,能够使加载时间缩短,提高了效率。
情况二,线程数量与子文件数量相同,此情况下每个线程可随机分配一个子文件,线程均可被利用,此时并行加载子文件至线程速度最快。
在一例中,本公开提供的一种文件包读取方法10中,内核包括大核、小核;其中,绑定线程至内核,包括:控制中心根据分配至每个线程的全部子文件大小,绑定线程至大核和/或小核。大核读取文件包的速度相比于小核快,依据“控制中心根据分配至每个线程的全部子文件大小,绑定线程至大核和/或小核”的绑核原则及不同线程数量的情况考虑,为线程绑定内核选择对应的绑定方式,大核读取文件包的速度相比于小核快,控制中心将分配子文件总大小大的线程绑定至大核,分配子文件总大小小的线程绑定至小核,会缩短大核、小核读取线程内子文件的时间差,进而减少完整读取文件包的时间。也可以将全部线程仅绑定至大核,保证效率同时保证平台的处理能力,在一些情况下,如文件包很小,也可以仅绑定至小核。下面参考确定线程数量的两种情况,控制中心绑定线程至内核也可分两种情况,具体为:
情况一,当线程数量等于内核数量时,控制中心按照分配至每个线程的子文件总大小由高到低的顺序,绑定线程至大核、小核。或控制中心按照分配至每个线程的子文件总大小由低到高的顺序,绑定线程至平台小核、大核。通过根据大核、小核的性能分配,缩短了大核、小核读取线程内子文件的时间差,即内核完整读取文件包所需时间短。
情况二,当线程数量小于内核数量时,控制中心按照分配至每个线程的子文件总大小由高至低的顺序,绑定线程至平台大核、小核,且线程优先绑定至所有大核,余下的线程绑定至小核。
在一例中,本公开实施例提供一种可能的实施方式中,为了方便控制中心读取文件包内的子文件信息,控制中心可通过配置文件读取文件包的子文件信息,配置文件内记载文件包的子文件信息;其中,配置文件可以是文本文档等控制中心可读取的文档;其中,子文件信息包括:子文件数量、子文件大小、子文件名称等;其中,配置文件的生成时间有两种:一种是通过手动输入方式,可提前把文件包的子文件信息写入配置文件内,则在控制中心读取文件过程中无需花费时间读取文件包,提高文件读取速度;另一种方式是:控制中心可在读取文件的开始时刻获取文件包的文件信息,并把文件包的文件信息保存至配置文件。
基于与一种文件包读取方法10相同的发明构思,本公开实施例还提供一种文件包读取装置20。
图2示出了本公开实施例提供的一种文件包读取装置20的示意图。如图2所示,一种文件包读取装置20包括:
获取单元210,用于获取文件包及内核信息,文件包包括多个子文件,多个子文件分别对应软件开发包SDK的各个组成模块,内核信息包括内核数量。
线程数量确定单元220,用于根据内核数量,得到线程数量,线程数量为大于1的整数,且线程数量不高于内核数量。
线程分配单元230,用于根据线程数量,分配多个子文件至多个线程。
绑核单元240,用于绑定多个线程至分别对应的多个内核。
线程启动单元250,用于并行启动并运行多个线程,以分别加载对应的多个子文件。
在一例中,获取单元210还用于:根据文件包,获取文件包的文件信息,文件信息包括文件包的子文件数量;其中,线程数量确定单元220可采用如下方式根据内核数量,得到线程数量:根据子文件数量和内核数量,得到线程数量。
在一例中,线程数量确定单元220可采用如下方式得到线程数量:若子文件数量大于或等于内核数量,线程数量为内核数量,若子文件数量小于内核数量,线程数量为子文件数量。
在一例中,文件信息还包括子文件的子文件大小;通过在获取单元210可获得子文件大小,线程分配单元230可采用如下方式根据线程数量,分配多个子文件至多个线程:根据子文件大小对子文件排序,按照子文件大小顺序分配或随机分配子文件至线程。
在一例中,内核包括大核、小核;依据内核包括大核、小核,绑核单元240可采用如下方式绑定线程至内核:根据分配至每个线程的全部子文件大小,绑定线程至大核或小核。
在一例中,获取单元210可采用如下方式获取文件包的文件信息:通过配置文件获取文件包的文件信息,其中,配置文件记载文件包的子文件的名称、数量、以及大小。
在一例中,获取单元210可采用如下方式获取内核信息:通过获取平台信息得到内核信息。
装置中的各个子文件所实现的功能与上文描述的方法中的步骤相对应,其具体实现和技术效果请参见上文对于方法步骤的描述,在此不再赘述。
如图3所示,本发明的一个实施方式提供了一种电子设备40。其中,该电子设备40包括存储器410、处理器420、输入/输出(Input/Output,I/O)接口430。其中,存储器410,用于存储指令。处理器420,用于调用存储器410存储的指令执行本发明实施例的用于文件包读取方法。其中,处理器420分别与存储器410、I/O接口430连接,例如可通过总线系统和/或其他形式的连接机构(未示出)进行连接。存储器410可用于存储程序和数据,包括本发明实施例中涉及的用于文件包读取的程序,处理器420通过运行存储在存储器410的程序从而执行电子设备40的各种功能应用以及数据处理。
本发明实施例中处理器420可以采用数字信号处理器(Digital SignalProcessing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现,处理器420可以是中央处理单元(Central Processing Unit,CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元中的一种或几种的组合。
本发明实施例中的存储器410可以包括一个或多个计算机程序产品,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(Random Access Memory,RAM)和/或高速缓冲存储器(cache)等。非易失性存储器例如可以包括只读存储器(Read-Only Memory,ROM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)等。
本发明实施例中,I/O接口430可用于接收输入的指令(例如数字或字符信息,以及产生与电子设备40的用户设置以及功能控制有关的键信号输入等),也可向外部输出各种信息(例如,图像或声音等)。本发明实施例中I/O接口430可包括物理键盘、功能按键(比如音量控制按键、开关按键等)、鼠标、操作杆、轨迹球、麦克风、扬声器、和触控面板等中的一个或多个。
在一些实施方式中,本发明提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在由处理器执行时,执行上文所述的任何方法。
尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。
本发明的方法和装置能够利用标准编程技术来完成,利用基于规则的逻辑或者其他逻辑来实现各种方法步骤。还应当注意的是,此处以及权利要求书中使用的词语“装置”和“子文件”意在包括使用一行或者多行软件代码的实现和/或硬件实现和/或用于接收输入的设备。
此处描述的任何步骤、操作或程序可以使用单独的或与其他设备组合的一个或多个硬件或软件子文件来执行或实现。在一个实施方式中,软件子文件使用包括包含计算机程序代码的计算机可读介质的计算机程序产品实现,其能够由计算机处理器执行用于执行任何或全部的所描述的步骤、操作或程序。
出于示例和描述的目的,已经给出了本发明实施的前述说明。前述说明并非是穷举性的也并非要将本发明限制到所公开的确切形式,根据上述教导还可能存在各种变形和修改,或者是可能从本发明的实践中得到各种变形和修改。选择和描述这些实施例是为了说明本发明的原理及其实际应用,以使得本领域的技术人员能够以适合于构思的特定用途来以各种实施方式和各种修改而利用本发明。
Claims (10)
1.一种文件包读取方法,其中,包括:
获取文件包,所述文件包包括多个子文件,所述多个子文件分别对应软件开发包SDK的各个组成模块;
获取内核信息,所述内核信息包括内核数量;
根据所述内核数量,得到线程数量,所述线程数量为大于1的整数,且所述线程数量不高于所述内核数量;
根据所述线程数量,分配所述多个子文件至多个线程;
绑定所述多个线程至分别对应的多个内核;
并行启动并运行所述多个线程,以分别加载对应的所述多个子文件。
2.根据权利要求1所述的方法,其中,所述方法还包括:根据所述文件包,获取所述文件包的文件信息,所述文件信息包括所述文件包的子文件数量;
所述根据所述内核数量,得到线程数量,包括:
根据所述子文件数量和所述内核数量,得到所述线程数量。
3.根据权利要求2所述的方法,其中,所述根据所述子文件数量和所述内核数量,得到所述线程数量,包括:
若所述子文件数量大于或等于所述内核数量,所述线程数量为所述内核数量;
若所述子文件数量小于所述内核数量,所述线程数量为所述子文件数量。
4.根据权利要求3所述的方法,其中,所述文件信息还包括所述子文件的子文件大小;
所述根据所述线程数量,分配所述多个子文件至所述多个线程,包括:
根据所述子文件大小对所述子文件排序,随机分配或按照子文件大小的排序顺序分配所述子文件至所述线程。
5.根据权利要求4所述的方法,其中,所述内核包括大核、小核;
所述绑定所述线程至所述内核,包括:
按照分配至每个所述线程的全部所述子文件大小,绑定所述线程至所述大核和/或所述小核。
6.根据权利要求4或5所述的方法,其中,所述根据所述文件包,获取所述文件包的文件信息,包括:
通过配置文件获取所述文件包的文件信息,其中,所述配置文件记载所述文件包的所述子文件的名称、数量以及大小。
7.根据权利要求1所述的方法,其中,所述获取内核信息,包括:
通过获取平台信息得到所述内核信息。
8.一种文件包读取装置,其中,所述装置包括:
获取单元,用于获取文件包及内核信息,所述文件包包括多个子文件,所述多个子文件分别对应软件开发包SDK的各个组成模块,所述内核信息包括内核数量;
线程数量确定单元,用于根据所述内核数量,得到线程数量,所述线程数量为大于1的整数,且所述线程数量不高于所述内核数量;
线程分配单元,用于根据所述线程数量,分配所述多个子文件至多个线程;
绑核单元,用于绑定所述多个线程至分别对应的多个内核;
线程启动单元,用于并行启动并运行所述多个线程,以分别加载对应的所述多个子文件。
9.一种电子设备,其中,所述电子设备包括:
存储器,用于存储指令;以及
处理器,用于调用所述存储器存储的指令执行权利要求1-7中任一项所述的一种文件包读取方法。
10.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由处理器执行时,执行权利要求1-7中任一项所述的一种文件包读取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600526.6A CN110333911A (zh) | 2019-07-04 | 2019-07-04 | 一种文件包读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910600526.6A CN110333911A (zh) | 2019-07-04 | 2019-07-04 | 一种文件包读取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110333911A true CN110333911A (zh) | 2019-10-15 |
Family
ID=68143125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910600526.6A Pending CN110333911A (zh) | 2019-07-04 | 2019-07-04 | 一种文件包读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110333911A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324387A (zh) * | 2020-01-20 | 2020-06-23 | 北京无限光场科技有限公司 | 应用任务的控制方法、装置、终端及系统 |
CN116414782A (zh) * | 2023-06-12 | 2023-07-11 | 荣耀终端有限公司 | 识别重复文件的方法及电子设备 |
CN117130769A (zh) * | 2023-02-25 | 2023-11-28 | 荣耀终端有限公司 | 一种调频方法、频率调节神经网络的训练方法及电子设备 |
CN117201479A (zh) * | 2023-09-12 | 2023-12-08 | 北京大学 | 一种跨集群文件传输方法、系统及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100074920A (ko) * | 2008-12-24 | 2010-07-02 | 삼성전자주식회사 | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 |
CN103559443A (zh) * | 2013-11-01 | 2014-02-05 | 北京奇虎科技有限公司 | 多核设备的病毒扫描方法和装置 |
CN103841196A (zh) * | 2014-03-07 | 2014-06-04 | 长沙裕邦软件开发有限公司 | 一种基于多线程的文件上传系统及方法 |
JP2017174194A (ja) * | 2016-03-24 | 2017-09-28 | コニカミノルタ株式会社 | 画像処理装置、負荷分散方法および負荷分散プログラム |
US20180046474A1 (en) * | 2016-08-15 | 2018-02-15 | National Taiwan University | Method for executing child kernels invoked on device side utilizing dynamic kernel consolidation and related non-transitory computer readable medium |
CN108009430A (zh) * | 2017-12-22 | 2018-05-08 | 北京明朝万达科技股份有限公司 | 一种敏感数据快速扫描方法及装置 |
CN108600312A (zh) * | 2018-03-21 | 2018-09-28 | 深圳市奥软网络科技有限公司 | 一种基于文件分块的多线程并行下载方法 |
CN109254849A (zh) * | 2018-08-31 | 2019-01-22 | 北京小米移动软件有限公司 | 应用程序的运行方法及装置 |
-
2019
- 2019-07-04 CN CN201910600526.6A patent/CN110333911A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100074920A (ko) * | 2008-12-24 | 2010-07-02 | 삼성전자주식회사 | 멀티코어 시스템에서의 로드 밸런싱 장치 및 방법 |
CN103559443A (zh) * | 2013-11-01 | 2014-02-05 | 北京奇虎科技有限公司 | 多核设备的病毒扫描方法和装置 |
CN103841196A (zh) * | 2014-03-07 | 2014-06-04 | 长沙裕邦软件开发有限公司 | 一种基于多线程的文件上传系统及方法 |
JP2017174194A (ja) * | 2016-03-24 | 2017-09-28 | コニカミノルタ株式会社 | 画像処理装置、負荷分散方法および負荷分散プログラム |
US20180046474A1 (en) * | 2016-08-15 | 2018-02-15 | National Taiwan University | Method for executing child kernels invoked on device side utilizing dynamic kernel consolidation and related non-transitory computer readable medium |
CN108009430A (zh) * | 2017-12-22 | 2018-05-08 | 北京明朝万达科技股份有限公司 | 一种敏感数据快速扫描方法及装置 |
CN108600312A (zh) * | 2018-03-21 | 2018-09-28 | 深圳市奥软网络科技有限公司 | 一种基于文件分块的多线程并行下载方法 |
CN109254849A (zh) * | 2018-08-31 | 2019-01-22 | 北京小米移动软件有限公司 | 应用程序的运行方法及装置 |
Non-Patent Citations (2)
Title |
---|
曹折波;李青;: "多核处理器并行编程模型的研究与设计", 计算机工程与设计, no. 13 * |
董丽丽;刘明生;袁香菊;: "多核并行编程技术在中文分词程序优化中的应用", 计算机工程与设计, no. 24 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324387A (zh) * | 2020-01-20 | 2020-06-23 | 北京无限光场科技有限公司 | 应用任务的控制方法、装置、终端及系统 |
CN117130769A (zh) * | 2023-02-25 | 2023-11-28 | 荣耀终端有限公司 | 一种调频方法、频率调节神经网络的训练方法及电子设备 |
CN116414782A (zh) * | 2023-06-12 | 2023-07-11 | 荣耀终端有限公司 | 识别重复文件的方法及电子设备 |
CN116414782B (zh) * | 2023-06-12 | 2023-10-20 | 荣耀终端有限公司 | 识别重复文件的方法及电子设备 |
CN117201479A (zh) * | 2023-09-12 | 2023-12-08 | 北京大学 | 一种跨集群文件传输方法、系统及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110333911A (zh) | 一种文件包读取方法及装置 | |
CN110728578A (zh) | 区块链交易的并行执行方法、系统及存储介质 | |
TWI537729B (zh) | 資料儲存裝置及其資料維護方法 | |
US9244617B2 (en) | Scheduling requests in a solid state memory device | |
US8200824B2 (en) | Optimized multi-component co-allocation scheduling with advanced reservations for data transfers and distributed jobs | |
US20180136869A1 (en) | Reducing storage requirements for storing memory addresses and values | |
CN103744617B (zh) | 一种键-值存储系统中数据文件的合并压缩方法及装置 | |
WO2017166643A1 (zh) | 一种任务资源的量化方法和装置 | |
US20080208861A1 (en) | Data Sorting Method And System | |
US11151155B2 (en) | Memory use in a distributed index and query system | |
CN111324427B (zh) | 一种基于dsp的任务调度方法及装置 | |
US20110072420A1 (en) | Apparatus and method for controlling parallel programming | |
CN108733324B (zh) | 一种固态硬盘的数据读写方法、装置、设备及存储介质 | |
US11429314B2 (en) | Storage device, storage system and operating method thereof | |
CN105511975A (zh) | 一种异常处理方法和装置 | |
CN111078394A (zh) | 一种gpu线程负载均衡方法与装置 | |
CN111666343A (zh) | 基于共识机制的数据上链方法、装置及可读存储介质 | |
CN110515734A (zh) | 数据处理任务的负载处理方法及装置 | |
CN115904671B (zh) | 一种边缘计算环境下的任务调度方法、装置、设备及介质 | |
CN110134701A (zh) | 一种缓冲补账方法及装置 | |
CN113296788B (zh) | 指令调度方法、装置、设备及存储介质 | |
US11487731B2 (en) | Read iterator for pre-fetching nodes of a B-tree into memory | |
CN108563507A (zh) | 一种内存管理方法、装置、设备及可读存储介质 | |
CN113342897A (zh) | 一种数据同步的方法及装置 | |
US8359456B2 (en) | Generating random addresses for verification of distributed computerized devices |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191015 |
|
RJ01 | Rejection of invention patent application after publication |