CN109710327A - 浏览器内存分配方法、内存分配器及浏览器 - Google Patents
浏览器内存分配方法、内存分配器及浏览器 Download PDFInfo
- Publication number
- CN109710327A CN109710327A CN201710985363.9A CN201710985363A CN109710327A CN 109710327 A CN109710327 A CN 109710327A CN 201710985363 A CN201710985363 A CN 201710985363A CN 109710327 A CN109710327 A CN 109710327A
- Authority
- CN
- China
- Prior art keywords
- browser
- memory
- processor architecture
- configuration information
- kernel
- 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.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供的浏览器内存分配方法、内存分配器及浏览器,通过先获取处理器架构的配置信息,随后根据该处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,最后由内存分配器根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。通过根据处理器架构的配置信息对其配置文件进行相应修改,并按照修改后的配置文件启动,以使其实现相应的内存分配和释放功能,从而有效解决了现有技术中在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配单元进行内存的分配和释放,进而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题。
Description
技术领域
本发明涉及一种计算机技术,尤其涉及一种浏览器内存分配方法、内存分配器及浏览器。
背景技术
浏览器是用于显示网页服务器内或系统内的文件,并向用户提供与上述文件互动功能的一种软件,其可用于显示文字、影像及其他资讯,以方便用户获取各种资讯。浏览器内核则是浏览器的重要组成部分,它负责将文字、影像及其他资讯等需要显示在浏览器显示页面上的信息进行渲染,并通过显示器或打印机等输出设备进行输出。在浏览器内核进行渲染的过程中,需要启动浏览器的内存分配器,并利用内存分配器为浏览器内核提供系统内存的分配和释放,以使浏览器内核实现渲染操作。
在现有技术中,为了使保证浏览器内核的渲染效果,浏览器的内存分配器在其内存分配性能和运行安全性能上进行了优化。但是,随着技术进步,浏览器内核可兼容的浏览器类型和处理器架构越来越多,其通用性得到了较大的增强。而浏览器的内存分配器的通用性和兼用性却没有得到同步提升。
也就是说,当浏览器内核运行于某处理器架构下的某浏览器中时,由于浏览器的内存分配器与该处理器架构不兼容,而无法执行启动操作,从而无法为浏览器内核提供相应的系统内存的分配和释放的功能。此时,浏览器内核只能调用未经过性能和安全优化的系统自带的内存分配单元来进行内存空间分配,这将严重影响浏览器内核的性能和渲染效果。
发明内容
针对在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配器进行内存的分配和释放,从而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题,本发明提供了一种浏览器内存分配方法、内存分配器及浏览器。
本发明提供了一种浏览器内存分配方法,包括:
获取处理器架构的配置信息;
根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
在其中一种可选的实施方式中,所述根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,包括:
解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数;
根据所述处理器架构的配置信息对所述核心函数的取值进行修改,获得修改后的配置文件。
在其中一种可选的实施方式中,所述处理器架构的配置信息包括所述处理器架构的内核页面大小;
相应的,所述与所述配置信息相应的核心函数包括偏移量函数,所述偏移量函数的取值为内核页面大小的偏移量。
在其中一种可选的实施方式中,所述内存分配器为PartitionAlloc;所述偏移量函数包括PageAllocator.h和PartitionAlloc.h;
所述根据所述处理器架构的配置信息对所述核心函数的取值进行修改,包括:
将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;
将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。
本发明提供了一种内存分配器,包括:
获取单元,用于获取处理器架构的配置信息;
修改单元,根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
执行单元,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
在其中一种可选的实施方式中,所述修改单元,具体用于:
解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数;
根据所述处理器架构的配置信息对所述核心函数的取值进行修改,获得修改后的配置文件。
在其中一种可选的实施方式中,所述处理器架构的配置信息包括所述处理器架构的内核页面大小;
相应的,所述与所述配置信息相应的核心函数包括偏移量函数,所述偏移量函数的取值为内核页面大小的偏移量。
在其中一种可选的实施方式中,所述内存分配器为PartitionAlloc;所述偏移量函数包括PageAllocator.h和PartitionAlloc.h;
所述修改单元具体用于:将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。
本发明提供了一种内存分配器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:
获取处理器架构的配置信息;
根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
本发明还提供了一种浏览器,所述浏览器包括:
浏览器内核和上述任一项所述的内存分配器;
所述浏览器内核,用于在对浏览器的显示页面进行渲染时,向所述内存分配器发起内存调用请求;
所述内存分配器,用于根据所述内存调用请求,为所述浏览器内核分配和释放内存;
其中,所述内存分配器包括:
获取单元,用于获取处理器架构的配置信息;
修改单元,根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
执行单元,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
本发明提供的浏览器内存分配方法、内存分配器及浏览器,通过先获取处理器架构的配置信息,随后根据该处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,最后由内存分配器根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。通过根据处理器架构的配置信息对其配置文件进行相应修改,并按照修改后的配置文件启动,以使其实现相应的内存分配和释放功能,从而有效解决了现有技术中在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配单元进行内存的分配和释放,进而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本发明实施例一提供的一种浏览器内存分配方法的流程示意图;
图2为本发明实施例二提供的一种内存分配器的结构示意图;
图3为本发明实施例二提供的一种内存分配器的硬件结构示意图;
图4为本发明实施例三提供的一种浏览器的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
浏览器是用于显示网页服务器内或系统内的文件,并向用户提供与上述文件互动功能的一种软件,其可用于显示文字、影像及其他资讯,以方便用户获取各种资讯。浏览器内核则是浏览器的重要组成部分,它负责将文字、影像及其他资讯等需要显示在浏览器显示页面上的信息进行渲染,并通过显示器或打印机等输出设备进行输出。在浏览器内核进行渲染的过程中,需要启动浏览器的内存分配器,并利用浏览器的内存分配器为浏览器内核提供系统内存的分配和释放,以使浏览器内核更够实现渲染操作。一般来说,浏览器的内存分配器在与浏览器所基于的处理器架构匹配的情况下,才能实现正常启动,以并为浏览器内核提供系统内存的分配和释放等功能;否则,将由启动系统自身的内存分配单元,以实现浏览器内核的系统内存分配和释放。因此,与使用浏览器的内存分配器相比,浏览器内核的性能将大大降低,严重影响渲染效果。
为了更加清楚的说明现有技术中的缺陷,下面将以浏览器内核为Blink,浏览器的内存分配器为PartitionAlloc为例进行说明。
Blink是一个浏览器内核,其可通用在多种处理器架构中,并兼容各类浏览器,如chrome浏览器、Opera浏览器、Yandex浏览器、Vivaldi浏览器等。PartitionAlloc是一款可用于Blink的内存分配器,与系统自带的分配器如malloc/free不同的是,PartitionAlloc在内容分配其的性能和运行安全性能上进行了优化,以更好的为Blink分配内存空间。
在PartitionAlloc分配内存空间的过程中,其一般按照加载的配置文件进行启动,并提供相应功能,这些配置文件则是由开发者预先设置好的。而在对这些配置文件的设置和开发过程中,开发者考虑到PartitionAlloc在分配内存空间时的分配效率,以及其与各处理器架构和各类浏览器之间的兼容性,一般会将该配置文件设置为与主流处理器架构相应的配置信息。举例来说,如Intel公司、AMD公司的X86型处理器架构,IBM公司的PowerPC型处理器架构,ARM公司的ARM型处理器架构等在内的一些主流处理器架构的内核页面大小均为4K级,因此,开发者在PartitionAlloc的配置文件中将内核页面大小这一参数信息设置为4K,以供PartitionAlloc可兼用在这些主流处理器架构中。
也就是说,针对某些不支持该4K级的内核页面大小的处理器架构,PartitionAlloc将无法兼用或运行在这些处理器架构中:例如,支持16K级的内核页面大小的MIPS型处理器架构;再如,支持8K级的内核页面大小的UltraSPARC型处理器架构。
在这种情况下,如上所述的,运行在不支持4K级的内核页面大小的处理器架构中的浏览器的Blink,在调用内存分配器进行内存空间分配时,则无法使用PartitionAlloc,而仅能使用系统自带的内存分配单元,如malloc/free。这将严重影响Blink在渲染时的性能。
基于上述情况,亟需一种通用的浏览器内存分配方法以使无论浏览器内核基于何种处理器架构,均能使用浏览器的内核分配器进行系统内存获取。
下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
图1为本发明实施例一提供的一种浏览器内存分配方法的流程示意图。如图1所示,该浏览器内存分配方法包括:
步骤101、获取处理器架构的配置信息。
需要说明的是,本发明提供的浏览器内存分配方法的执行主体为内存分配器,该内存分配器可以应用于各种处理器架构下的浏览器。此外,内存分配器可采用C/C++、Java、Shell或Python等语言编写;浏览器则可为任意类型浏览器,例如IE、Firefox、Chrome等;处理器架构则可例如MIPS型、X86型、PowerPC型、ARM型等。
具体来说,当浏览器内核在根据用户触发指令或系统指令执行对浏览器页面的渲染时,将向浏览器的内存分配器发送一内存调用请求,该内存调用请求用于为浏览器内核中的每个对象调用相应的内存空间。随后,内存分配器将获取处理器架构的配置信息,并根据该获取的处理器架构的配置信息,对自身的配置文件进行修改,随后,内存分配器将根据修改后的配置文件为浏览器内核的各对象调用内存空间,实现对系统内存空间的分配和释放。
可选择的是,在上述实施方式中,内存分配器将获取处理器架构的配置信息的方式可采用多种技术方式实现,例如,内存分配器可在预设存储空间查询和获取该处理器架构的配置信息;也可向处理器内核发送相应请求,以使处理器内核根据该请求将对应的配置信息反馈至内存分配器;或者,内存分配器还可查询获取处理器架构的全部配置信息,并从全部配置信息中计算获得或筛选获得所需的配置信息;此外,还可采用其他方式进行获取,本发明对此不进行限制。
进一步举例来说,在步骤101中,当处理器架构为MIPS型时,且获取的配置信息为内核页面大小时,则可直接在命令行输入getconf PAGESIZE,并在输出行获取相应的输出值,该输出值则为所得到的处理器架构的配置信息,即内核页面大小。
步骤102、根据处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改。
具体来说,内存分配器将在获得处理器架构的配置信息之后,对其配置文件进行相应修改,其中的配置文件可通过在浏览器相应的文件中抽取获得,而根据处理器架构的配置信息的类型的不同,可对配置文件的相应部分进行修改。
在其中一种实施方式中,解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数,根据处理器架构的配置信息对核心函数的取值进行修改,获得修改后的配置文件。也就是说,在该实施方式中,可采用按照处理器架构的配置信息对内存分配器的配置文件中核心函数的取值进行修改的方式,实现内存分配器与各处理器架构的兼用性。
举例来说,当处理器架构的配置信息包括所述处理器架构的内核页面大小时,相应的,与该配置信息相应的核心函数则包括用于偏移量函数,该偏移量函数的取值为内核页面大小的偏移量。
当内存分配器为PartitionAlloc时,上述的偏移量函数包括PageAllocator.h和PartitionAlloc.h。步骤102中的根据所述处理器架构的配置信息对所述核心函数的取值进行修改,则具体可为:将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。即PageAllocator.h的取值=log2(处理器架构的内核页面大小);PartitionAlloc.h的取值=log2(处理器架构的内核页面大小)+2。
例如,针对于MIPS处理器架构来说,该内核页面大小则为16384,PageAllocator.h的取值=log2(16384);PartitionAlloc.h的取值=log2(1638)+2。
步骤103、根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
具体来说,内存分配器可根据修改后的配置文件启动,以为所述浏览器的浏览器内核提供相应的分配和释放内存的功能。
此外,为了进一步提高修改后的配置文件的可靠性,可在修改后完配置文件之后可先对该修改后的配置文件进行编译和测试,并将通过测试的修改后的配置文件进行保存,以保证内存分配器的正常运行。
本发明提供的浏览器内存分配方法通过先获取处理器架构的配置信息,随后根据该处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,最后由内存分配器根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。通过根据处理器架构的配置信息对其配置文件进行相应修改,并按照修改后的配置文件启动,以使其实现相应的内存分配和释放功能,从而有效解决了现有技术中在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配单元进行内存的分配和释放,进而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题。
图2为本发明实施例二提供的一种内存分配器的结构示意图,如图2所示,该内存分配器包括:
获取单元11,用于获取处理器架构的配置信息;
修改单元12,用于根据处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
执行单元13,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
内存分配器可以应用于各种处理器架构下的浏览器。此外,内存分配器可采用C/C++、Java、Shell或Python等语言编写;浏览器则可为任意类型浏览器,例如IE、Firefox、Chrome等;处理器架构则可例如MIPS型、X86型、PowerPC型、ARM型等。
具体来说,当浏览器内核在根据用户触发指令或系统指令执行对浏览器页面的渲染时,将向浏览器的内存分配器发送一内存调用请求,该内存调用请求用于为浏览器内核中的每个对象调用相应的内存空间。随后,获取单元11获取处理器架构的配置信息,修改单元12根据该获取的处理器架构的配置信息,对自身的配置文件进行修改,随后,执行单元13将加载该修改后的配置文件,以实现在该处理器架构下的正常运行,并为浏览器内核的各对象调用内存空间,最终实现对系统内存空间的分配和释放。
可选择的是,在上述实施方式中,获取单元11将获取处理器架构的配置信息的方式可采用多种技术方式实现,例如,可在预设存储空间查询和获取该处理器架构的配置信息;也可向处理器内核发送相应请求,以使处理器内核根据该请求将对应的配置信息反馈至获取单元11;或者,还可查询获取处理器架构的全部配置信息,并从全部配置信息中计算获得或筛选获得所需的配置信息;此外,还可采用其他方式进行获取,本发明对此不进行限制。
在其中一种可选的实施方式中,在获得处理器架构的配置信息之后,修改单元12对其配置文件进行相应修改,其中的配置文件可通过在浏览器相应的文件中抽取获得,而根据处理器架构的配置信息的类型的不同,修改单元12可对配置文件的相应部分进行修改。在其中一种实施方式中,修改单元12具体用于解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数;根据所述处理器架构的配置信息对所述核心函数的取值进行修改,获得修改后的配置文件。也就是说,在该实施方式中,可采用按照处理器架构的配置信息对内存分配器的配置文件中核心函数的取值进行修改的方式,实现内存分配器在启动时的与各处理器架构的兼用。
举例来说,当处理器架构的配置信息包括所述处理器架构的内核页面大小时,相应的,与该配置信息相应的核心函数则包括偏移量函数,该偏移量函数的取值为内核页面大小的偏移量。
当内存分配器为PartitionAlloc时,偏移量函数包括PageAllocator.h和PartitionAlloc.h。修改单元12将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。即PageAllocator.h的取值=log2(处理器架构的内核页面大小);PartitionAlloc.h的取值=log2(处理器架构的内核页面大小)+2。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
在其他实施方式中,图3为本发明实施例二提供的一种本内存分配器的硬件结构示意图。如图3所示,该内存分配器具体可为一种包括指令的非临时性计算机可读存储介质,包括:
内存分配处理器32和用于存储内存分配处理器32可执行指令的内存分配存储器31;
其中,内存分配处理器32被配置为:获取处理器架构的配置信息,根据处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,根据修改后的配置文件执行启动操作,并为浏览器的浏览器内核分配和释放内存。
其中,上述内存分配存储器31可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。而内存分配处理器32可由一个或多个应用专用集成电路(ASIC)、数字信号处理器架构(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器架构或其他电子元件实现。
上述指令可采用C/C++、Java、Shell或Python等语言编写,本实施例对此不进行限制。
本发明提供的内存分配器通过先获取处理器架构的配置信息,随后根据该处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,最后由内存分配器根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。通过根据处理器架构的配置信息对其配置文件进行相应修改,并按照修改后的配置文件启动,以使其实现相应的内存分配和释放功能,从而有效解决了现有技术中在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配单元进行内存的分配和释放,进而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题。
图4为本发明实施例三提供的一种浏览器的结构示意图,如图4所示,该浏览器包括:浏览器内核2和上述实施例二中的任意一项所述的内存分配器1。
浏览器内核2,用于在对浏览器的显示页面进行渲染时,向内存分配器1发起内存调用请求。内存分配器1用于根据内存调用请求为浏览器内核2从系统的处理器3中分配和释放内存。具体来说,内存分配器1包括:获取单元11,用于获取处理器架构的配置信息;修改单元12,用于根据处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;执行单元13,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
需要说明的是,内存分配器2可以应用于各种处理器架构下的浏览器。此外,内存分配器可采用C/C++、Java、Shell或Python等语言编写;浏览器则可为任意类型浏览器,例如IE、Firefox、Chrome等;处理器架构则可例如MIPS型、X86型、PowerPC型、ARM型等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程以及相应的有益效果,可以参考前述方法实施例中的对应过程,在此不再赘述。
本发明提供浏览器通过先获取处理器架构的配置信息,随后根据该处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,最后由内存分配器根据修改后的配置文件为浏览器的浏览器内核分配和释放内存。也就是说,浏览器中的内存分配器能够按照处理器架构的配置信息对其配置文件进行相应修改,并按照修改后的配置文件对内存进行分配和释放,从而有效解决了现有技术中在浏览器的内存分配器不支持浏览器所基于的处理器架构时,浏览器内核仅能调用系统自带的内存分配单元进行内存的分配和释放,从而导致的浏览器内核的性能降低,浏览器显示页面的渲染效果差的问题。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本发明旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求书指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求书来限制。
Claims (10)
1.一种浏览器内存分配方法,其特征在于,包括:
获取处理器架构的配置信息;
根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
2.根据权利要求1所述的浏览器内存分配方法,其特征在于,所述根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改,包括:
解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数;
根据所述处理器架构的配置信息对所述核心函数的取值进行修改,获得修改后的配置文件。
3.根据权利要求2所述的浏览器内存分配方法,其特征在于,所述处理器架构的配置信息包括所述处理器架构的内核页面大小;
相应的,所述与所述配置信息相应的核心函数包括偏移量函数,所述偏移量函数的取值为内核页面大小的偏移量。
4.根据权利要求3所述的浏览器内存分配方法,其特征在于,所述内存分配器为PartitionAlloc;所述偏移量函数包括PageAllocator.h和PartitionAlloc.h;
所述根据所述处理器架构的配置信息对所述核心函数的取值进行修改,包括:
将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;
将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。
5.一种内存分配器,其特征在于,包括:
获取单元,用于获取处理器架构的配置信息;
修改单元,根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
执行单元,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
6.根据权利要求5所述的内存分配器,其特征在于,所述修改单元,具体用于:
解析浏览器的内存分配器中的配置文件,并获得与所述配置信息相应的核心函数;
根据所述处理器架构的配置信息对所述核心函数的取值进行修改,获得修改后的配置文件。
7.根据权利要求6所述的内存分配器,其特征在于,所述处理器架构的配置信息包括所述处理器架构的内核页面大小;
相应的,所述与所述配置信息相应的核心函数包括偏移量函数,所述偏移量函数的取值为内核页面大小的偏移量。
8.根据权利要求7所述的内存分配器,其特征在于,所述内存分配器为PartitionAlloc;所述偏移量函数包括PageAllocator.h和PartitionAlloc.h;
所述修改单元具体用于:将所述PageAllocator.h的取值设置为以2为底的所述内核页面大小的对数;将所述PartitionAlloc.h的取值设置为以2为底的所述内核页面大小的对数加2。
9.一种内存分配器,其特征在于,包括:
内存分配处理器;
用于存储内存分配处理器可执行指令的内存分配存储器;
其中,所述内存分配处理器被配置为:
获取处理器架构的配置信息;
根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
10.一种浏览器,其特征在于,所述浏览器包括浏览器内核和如权利要求5-9任一项所述的内存分配器;
所述浏览器内核,用于在对浏览器的显示页面进行渲染时,向所述内存分配器发起内存调用请求;
所述内存分配器,用于根据所述内存调用请求启动,并为所述浏览器内核分配和释放内存;
其中,所述内存分配器包括:
获取单元,用于获取处理器架构的配置信息;
修改单元,根据所述处理器架构的配置信息,对浏览器的内存分配器中的配置文件进行修改;
执行单元,根据修改后的配置文件执行启动操作,并为所述浏览器的浏览器内核分配和释放内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710985363.9A CN109710327B (zh) | 2017-10-20 | 2017-10-20 | 浏览器内存分配方法、内存分配器及浏览器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710985363.9A CN109710327B (zh) | 2017-10-20 | 2017-10-20 | 浏览器内存分配方法、内存分配器及浏览器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109710327A true CN109710327A (zh) | 2019-05-03 |
CN109710327B CN109710327B (zh) | 2022-01-25 |
Family
ID=66251896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710985363.9A Active CN109710327B (zh) | 2017-10-20 | 2017-10-20 | 浏览器内存分配方法、内存分配器及浏览器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109710327B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124371A (zh) * | 2019-12-25 | 2020-05-08 | 上海米哈游天命科技有限公司 | 一种基于游戏的数据处理方法、装置、设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327187B1 (en) * | 2009-09-21 | 2012-12-04 | Tilera Corporation | Low-overhead operating systems |
CN105607928A (zh) * | 2015-12-18 | 2016-05-25 | 北京奇虎科技有限公司 | 用于浏览器内核的支持方法和网页的显示方法以及装置 |
CN107168801A (zh) * | 2017-05-12 | 2017-09-15 | 南京大学 | 基于多内核页表的内核动态数据隔离以及保护技术 |
-
2017
- 2017-10-20 CN CN201710985363.9A patent/CN109710327B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8327187B1 (en) * | 2009-09-21 | 2012-12-04 | Tilera Corporation | Low-overhead operating systems |
CN105607928A (zh) * | 2015-12-18 | 2016-05-25 | 北京奇虎科技有限公司 | 用于浏览器内核的支持方法和网页的显示方法以及装置 |
CN107168801A (zh) * | 2017-05-12 | 2017-09-15 | 南京大学 | 基于多内核页表的内核动态数据隔离以及保护技术 |
Non-Patent Citations (1)
Title |
---|
SHUN_QIZI_RAN: "Blink内存分配器PartitionAlloc", 《HTTPS://BLOG.CSDN.NET/WOWEIWOKUANG0000/ARTICLE/DETAILS/50859029》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111124371A (zh) * | 2019-12-25 | 2020-05-08 | 上海米哈游天命科技有限公司 | 一种基于游戏的数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109710327B (zh) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109325195B (zh) | 浏览器的渲染方法和系统、计算机设备、计算机存储介质 | |
US20170085419A1 (en) | System and method for deploying an application | |
EP3313023A1 (en) | Life cycle management method and apparatus | |
US10666758B2 (en) | Browser resource pre-pulling method, terminal and storage medium | |
US10019298B2 (en) | Middleware interface and middleware interface generator | |
US8539506B2 (en) | Dynamic injection of code into running process | |
CN113312037A (zh) | 应用于微服务的数据处理方法、装置、设备和存储介质 | |
CN106649057A (zh) | 一种服务器压力测试的方法及装置 | |
CN113703893B (zh) | 一种页面渲染方法、装置、终端及存储介质 | |
WO2019085290A1 (zh) | 测试前置实现方法、装置、终端设备及存储介质 | |
CN107562483A (zh) | 一种挂载引导文件系统的方法及装置 | |
WO2017166448A1 (zh) | 内核漏洞修复方法和装置 | |
JP6962180B2 (ja) | 情報処理システム、コンテナ管理装置及びコンテナ管理方法 | |
CN110489305B (zh) | 一种服务器管理方法及装置 | |
US20180203726A1 (en) | Virtual machine migration method and apparatus | |
WO2021091735A1 (en) | Pausing deployment of a virtual machine prior to a machine name dependency | |
CN107977243A (zh) | 一种第三方接口调用方法及装置 | |
CN109302314B (zh) | 一种被控节点模拟方法及相关装置 | |
CN109857963A (zh) | 本地资源访问方法、装置及电子设备 | |
CN110018855A (zh) | 一种基于安卓系统开机优化方法、存储介质及智能终端 | |
CN109710327A (zh) | 浏览器内存分配方法、内存分配器及浏览器 | |
JP2021131897A (ja) | スケジューリング方法、装置、設備、記憶設備、及びプログラム | |
CN109032767A (zh) | 异步多进程的业务处理系统、方法、装置及存储介质 | |
CN116016227B (zh) | 基于Docker Compose的微服务系统编排可视化方法、设备及介质 | |
CN108287737A (zh) | Service Worker启动方法、装置及电子设备 |
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 | ||
CB02 | Change of applicant information |
Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant after: Loongson Zhongke Technology Co.,Ltd. Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing Applicant before: LOONGSON TECHNOLOGY Corp.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |