CN112882832B - 应用于浏览器的内存管理方法、装置、终端及存储介质 - Google Patents

应用于浏览器的内存管理方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN112882832B
CN112882832B CN202110168922.3A CN202110168922A CN112882832B CN 112882832 B CN112882832 B CN 112882832B CN 202110168922 A CN202110168922 A CN 202110168922A CN 112882832 B CN112882832 B CN 112882832B
Authority
CN
China
Prior art keywords
browser
memory
running
mode
terminal
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
CN202110168922.3A
Other languages
English (en)
Other versions
CN112882832A (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.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp 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 Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN202110168922.3A priority Critical patent/CN112882832B/zh
Publication of CN112882832A publication Critical patent/CN112882832A/zh
Application granted granted Critical
Publication of CN112882832B publication Critical patent/CN112882832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请实施例提供了一种应用于浏览器的内存管理方法、装置、终端及存储介质。该方法包括:运行浏览器;在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败;当监测到操作系统向浏览器分配内存失败时,释放浏览器的冗余内存。在本申请实施例中,通过在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败,并在监测到该操作系统向浏览器分配内存失败后,及时释放浏览器中的冗余内存,使得浏览器的可用内存始终处于充足状态,避免浏览器由于内存不足导致的响应速度较慢,甚至无法响应的情况发生,从而提升浏览器的运行性能。

Description

应用于浏览器的内存管理方法、装置、终端及存储介质
本申请是2018年08月28日提交的申请号为201810990014.0、发明名称为“应用于浏览器的内存管理方法、装置、终端及存储介质”的发明专利申请的分案申请。
技术领域
本申请实施例涉及浏览器技术领域,特别涉及一种应用于浏览器的内存管理方法、装置、终端及存储介质。
背景技术
浏览器是一种可以显示HTML(超文本标记语言,HyperText Markup Language)文件的软件。
在浏览器运行的过程中,由于浏览器被打开的网页页面不断增多,因此浏览所占用的内存也不断增大,此时终端的可用内存不断减小,从而导致浏览器打开网页页面的速度越来越慢,甚至出现浏览器无法响应的情况。
发明内容
本申请实施例提供一种应用于浏览器的内存管理方法、装置、设备及存储介质。所述技术方案如下:
一方面,本申请实施例提供一种应用于浏览器的内存管理方法,所述方法包括:
运行浏览器;
在所述浏览器的运行过程中,监测运行所述浏览器的终端的操作系统向所述浏览器分配内存是否失败;
当监测到所述操作系统向所述浏览器分配内存失败时,释放所述浏览器的冗余内存。
另一方面,本申请实施例提供了一种应用于浏览器的内存管理装置,所述装置包括:
浏览器运行模块,用于运行浏览器;
内存监测模块,用于在所述浏览器的运行过程中,监测运行所述浏览器的终端的操作系统向所述浏览器分配内存是否失败;
内存释放模块,用于当监测到所述操作系统向所述浏览器分配内存失败时,释放所述浏览器的冗余内存。
再一方面,本申请实施例提供一种终端,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现上述方面所述的应用于浏览器的内存管理方法。
又一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述方面所述的应用于浏览器的内存管理方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败,并在监测到该操作系统向浏览器分配内存失败后,及时释放浏览器中的冗余内存,使得浏览器的可用内存始终处于充足状态,避免浏览器由于内存不足导致的响应速度较慢,甚至无法响应的情况发生,从而提升浏览器的运行性能。
附图说明
图1是本申请一个实施例示出的应用于浏览器的内存管理方法的流程图;
图2是本申请一个实施例提供的运行浏览器的示意图;
图3是本申请另一个实施例示出的应用于浏览器的内存管理方法的流程图;
图4是本申请一个实施例示出的应用于浏览器的内存管理方法的示意图;
图5是本申请一个实施例示出的应用于浏览器的内存管理装置的框图;
图6是本申请一个实施例示出的终端的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请实施例提供的技术方案,通过在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败,并在监测到该操作系统向浏览器分配内存失败后,及时释放浏览器中的冗余内存,使得浏览器的可用内存始终处于充足状态,避免浏览器由于内存不足导致的响应速度较慢,甚至无法响应的情况发生,从而提升浏览器的运行性能。
本申请实施例提供的技术方案,各步骤的执行主体可以是终端。示例性地,上述终端可以是手机、个人计算机(Personal Computer,PC)、平板电脑、电子书阅读器、多媒体播放设备、可穿戴设备等电子设备。
可选地,终端中安装运行有浏览器,各步骤的执行主体可以是该浏览器。其中,浏览器是指可以显示网页服务器或者文件系统的超文本标记语言(Hyper Text MarkupLanguage,HTML)文件内容,并让用户与这些文件内容交互的一种软件。示例性地,浏览器可以是火狐(Firefox)浏览器、谷歌(Chrome)浏览器、欧朋(Opera)浏览器、UC浏览器等。
为了便于说明,在下述方法实施例中,仅以各步骤的执行主体是浏览器为例进行介绍说明,但对此不构成限定。
请参考图1,其示出了本申请一个实施例示出的应用于浏览器的内存管理方法的流程图。该方法可以包括如下几个步骤:
步骤101,运行浏览器。
若用户期望运行浏览器,则可以点击终端中的浏览器图标,终端根据接收到的作用在浏览器图标上的操作信号运行浏览器。
在本申请实施例中,终端可以按照浏览器的运行方式来运行浏览器,浏览器的运行方式根据运行浏览器的终端的内存大小确定。可选地,步骤101可以包括如下几个子步骤:
步骤101a,当获取到对应于浏览器的运行指令时,获取运行浏览器的终端的内存信息;
内存信息用于指示内存大小。运行浏览器的终端的内存大小可以为3GB(GigaByte)、4GB、6GB、8GB等等,本申请实施例对此不作限定。
步骤101b,根据终端的内存信息确定浏览器的运行方式;
浏览器的运行方式包括多进程方式和单进程多线程方式。其中,进程是并发执行的程序在执行过程中分配和管理资源的基本单位;线程是进程内的一个执行单元,是比进程更小的独立运行的基本单位,也称轻量级进程。
当浏览器的运行方式为多进程方式时,浏览器中包括多个进程并行处理。上述多个进程可以包括主(Brower)进程、渲染(Render)进程、第三方插件进程、图形处理器(Graphics Processing Unit,GPU)进程等。当浏览器的运行方式为单进程多线程方式时,浏览器包括一个进程,多个线程在该进程的进程空间内并行处理。上述多个线程包括主线程、渲染线程、第三方插件线程、图形处理器线程等。多进程方式与单进程多线程方式相比,安全性及稳定性较高,但所占用的内存也更大。
可选地,当终端的内存信息所指示的内存大小大于第一门限时,确定浏览器的运行方式为多进程方式。当终端的内存信息所指示的内存大小小于第二门限时,确定浏览器的运行方式为单进程多线程方式。第一门限大于第二门限。
另外,第一门限和第二门限可以根据实际经验设定,本申请实施例对此不作限定,示例性地,第一门限为6GB,第二门限为4GB。
由于不同运行方式所需的内存不相同,因此在本申请实施例中,对于内存较大的终端,可以采用多进程方式来运行浏览器,以使得浏览器更加安全、稳定;对于内存较小的终端,采用单进程多线程来运行浏览器,以使得浏览器所占用的内存较小。通过根据运行浏览器的终端的内存大小,来确定浏览器的运行方式,可以满足对浏览器的不同性能的需求,更加灵活。
步骤101c,按照浏览器的运行方式运行浏览器。
当浏览器的运行方式为多进程方式,则按照多进程方式来运行浏览器;当浏览器的运行方式为单线程多进程方式,则按照单线程多进程方式来运行浏览器。
步骤102,在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败。
在浏览器的运行过程中,浏览器启动内存检测机制。当浏览器从操作系统中申请运行时所需的内存时,若操作系统在确定出终端的可用内存的大小小于浏览器所申请的内存的大小时,预先注册的内存处理回调函数向浏览器发送分配失败通知,该内存分配通知用于指示操作系统向浏览器分配内存失败。
另外,需要说明的是,在本申请实施例中,为了使浏览器能够预先注册内存处理回调函数,浏览器在运行之前,需要加载由相关开发人员自定义设定的内存分配方式,而并非系统的内存分配方式。
结合参考图2,其示出了本申请一个实施例示出的浏览器启动的示意图。当终端接收到浏览器的启动指令后,由浏览器内存监控模块判断运行浏览器的终端是否属于高性能手机,若运行浏览器的终端属于高性能手机,则浏览器中的进程控制模块确定浏览器按照多线程方式运行,若运行浏览器的终端不属于高性能手机,则浏览器中的进程控制模块确定浏览器按照单进程多线程方式运行,之后浏览器将系统的内存分配方式调整为相关开发人员自定义的内存分配方式,之后注册浏览器内存检测回调函数。
步骤103,当监测到操作系统向浏览器分配内存失败时,释放浏览器的冗余内存。
冗余内存包括以下一项或多项的组合:浏览器内核所占用的内存、在图片解码过程中所产生的内存、脚本所占用的内存、层叠样式表(Cascading Style Sheets,CSS)所占用的内存、在脚本解析过程中所产生的内存、图形处理器所占用的内存。
浏览器内核也称为渲染引擎(Rendering Engine),用于确定浏览器如何显示网页的内容以及页面的格式信息。脚本(是一种纯文本保存的程序,用于确定一系列控制计算机进行运算的操作动作,脚本在被执行时,需要先由解释器将其翻译成机器可识别的指令。层叠样式表是一种用来表现HTML或可扩展标记语言(eXtensible Markup Language,XML)等文件样式的计算机语言。在脚本进行解析过程中所产生的内存也即翻译脚本时所产生的内存。图形处理器通常又称显示核心、显示芯片,是一种专门在PC、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上专门进行图像运算工作的微处理器。
在一种可能的实现方式中,浏览器每次释放上述冗余内存中的一项,之后监测操作系统向浏览器分配内存是否成功,若操作系统向浏览器分配内存成功,则结束流程,并继续运行浏览器,若操作系统向浏览器分配内存不成功,则从每次释放上述冗余内存中的一项的步骤重新开始执行。需要说明的是,浏览器每次释放的冗余内存互不相同。
在另一种可能的实现方式中,浏览器每次释放预设大小的冗余内存,之后监测操作系统向浏览器分配内存是否成功,若操作系统向浏览器分配内存成功,则结束流程,并继续运行浏览器,若操作系统向浏览器分配内存不成功,则从每次释放预设大小的冗余内存的步骤重新开始执行。预设大小可以根据实际需求设定,本申请实施例对此不作限定。示例性地,预设大小为300MB。
需要说明的是,浏览器在按照上述两种可能的实现方式来释放冗余内存时,可以对释放冗余内存的次数进行计数。
综上所述,本申请实施例提供的技术方案,通过在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败,并在监测到该操作系统向浏览器分配内存失败后,及时释放浏览器中的冗余内存,使得浏览器的可用内存始终处于充足状态,避免浏览器由于内存不足导致的响应速度较慢,甚至无法响应的情况发生,从而提升浏览器的运行性能。
另外,由于浏览器的运行方式是根据运行浏览器的终端的内存大小实际确定的,若终端的内存较大,则采用多进程方式;若终端的内存较小,则采用单进程多线程方式,可以满足对浏览器的不同性能的需求,更加灵活。
当浏览器将所有的冗余内存释放完毕,或者,浏览器释放冗余内存的次数较多时,仍可能出现操作系统向浏览器分配内存失败的情况发生。下面对这种情况的处理方式进行讲解。
请参考图3,其示出了本申请另一个实施例提供的应用于浏览器的内存管理方法的流程图。该方法可以包括如下几个步骤:
步骤301,运行浏览器。
步骤302,在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败。
步骤303,当监测到操作系统向浏览器分配内存失败时,释放浏览器的冗余内存。
冗余内存包括以下一项或多项的组合:浏览器内核所占用的内存、在图片解码过程中所产生的内存、脚本所占用的内存、层叠样式表所占用的内存、在脚本解析过程中所产生的内存、图形处理器所占用的内存。步骤304,根据浏览器的运行方式对浏览器中的目标对象进行重启处理。
重启处理也即将目标对象先关闭,然后再开启的过程。重启处理前的目标对象所占用的内存大于重启处理后的目标对象所占用的内存将目标对象关闭的过程中,浏览器会释放掉目标对象所占用的全部内存。另外,在目标对象重新开启的过程中,浏览器会为目标对象重新分配内存。另外,由于目标对象在浏览器的运行过程中所占用的内存中存在部分内存,由于时间的推移,页面的跳转等原因而变成冗余内存,浏览器在为目标对象重新分配内存时并不会考虑上述冗余内存,因此重新分配给目标对象的内存小于浏览器为目标对象释放的内存,因此可以增大可用内存。
示例性地,在浏览器对目标对象进行重启处理的过程中,浏览器释放掉目标对象所占用的全部内存的大小为100MB,而浏览器为目标对象重新分配的内存的大小为20MB。
当浏览器的运行方式为多进程方式;步骤204具体实现为对浏览器的目标进程进行重启处理,目标进程是除浏览器的主进程之外的其它进程。可选地,目标进程可以是渲染进程、第三方插件进程、图形处理器进程中的一项或多项。
由于浏览器的主进程被关闭了,则浏览器会停止运行,而除浏览器的主进程之外的其它进程关闭时,浏览器并不会停止运行,因此在本申请实施例中,对主进程之外的其它进程进行重启处理。以目标进程为渲染进程为例,浏览器先释放渲染进程所占用的全部内存,之后重新为渲染进程申请内存,以实现当前页面的重加载。另外,需要说明的是,在浏览器重新开启渲染进程时,还需要恢复浏览器的数据与消息通信。
当浏览器的运行方式为单进程多线程方式时,步骤204具体实现为:对浏览器的目标线程进行重启处理,目标线程是除浏览器的主线程之外的其它线程。可选地,目标线程可以是渲染线程、第三方插件线程、图形处理器线程中的一项或多项。
由于浏览器的运行方式为单进程多线程方式时,若对进程或者浏览器的主线程进行重启处理,则浏览器会直接退出,因此在本申请实施例中,对主线程之外的其它线程进行重启处理。以目标线程为渲染线程为例,浏览器先释放渲染线程所占用的全部内存,之后重新为渲染线程申请内存,以实现当前页面的重加载。另外,需要说明的是,在浏览器重新开启渲染线程时,还需要恢复浏览器的数据与消息通信。
步骤305,当释放次数不小于预设次数时根据浏览器的运行方式对浏览器中的目标对象进行重启处理。
在本申请实施例中,终端在执行步骤304之前,还检测释放浏览器的冗余内存的释放次数是否小于预设次数,并在释放次数大于或等于预设次数时,执行步骤304,在释放次数小于预设次数时,则继续释放冗余内存。
预设次数可以根据实际经验设定,本申请实施例对此不作限定。示例性地,预设次数为5次。在本申请实施例中,浏览器在每次释放冗余内存时,会对释放冗余内存的次数进行计数,浏览器可以根据计数时所得到的计数值,与预设次数的大小关系,来检测释放次数是否小于预设次数。
进一步地,步骤305还可以实现为:当释放次数不小于预设次数,且监测到操作系统向浏览器分配内存失败时,根据浏览器的运行方式对浏览器中的目标对象进行重启处理。可选地,浏览器在检测到释放次数不小于预设次数后,重新向操作系统申请可用内存,若操作系统向浏览器分配内存依然失败,则浏览器通过内存处理回调函数向浏览器发送分配失败通知,该内存分配通知用于指示操作系统向浏览器分配内存失败。
在本申请实施例中,浏览器在根据浏览器的运行方式对浏览器中的目标对象进行重启处理之前,先检测释放浏览器的冗余内存的次数达到预设次数,并监测操作系统向浏览器分配内存是否失败,并在释放浏览器的冗余内存的次数达到预设次数,且监测到操作系统向浏览器分配内存失败时,再执行根据浏览器的运行方式对浏览器中的目标对象进行重启处理的步骤。通过上述方式,可以避免在可用内存充足时依然执行本申请实施例提供的技术方案的情况发生,可以提高浏览器的运行效率。
另外,浏览器可以只需执行上述步骤304和步骤305中的任意一项。浏览器可以执行步骤304,也可以执行步骤305,本申请实施例对此不作限定。
另外,浏览器对目标对象进行重启处理后,还可以继续监测操作系统向浏览器分配内存是否失败,若失败,则浏览器采集异常信息,并停止运行。上述异常信息可以包括浏览器在停止运行时所调用的函数(也即堆栈信息)、浏览器最后访问的页面、网络地址等等,本申请实施例对此不作限定。
综上所述,本申请实施例提供的技术方案,通过在浏览器释放冗余内存之后,进一步根据浏览器的运行方式对浏览器的某一对象进行重启,由于该对象被关闭时会释放所占用的内存,而重新启动时会重新申请内存,由于重新申请的内存的数量小于释放的内存的数量,因此可以增大可用内存,进一步避免操作系统向浏览器分配内存失败,提高浏览器的运行性能。
在一个具体地例子中,结合参考图4,终端中的浏览器启动运行,并访问某一页面,之后浏览器向操作系统申请分配内存,浏览器监测操作系统向浏览器分配内存是否成功,若操作系统向浏览器分配内存失败,则浏览器中的内存优化模块响应,并依次进行如下步骤:优化浏览器内核内存缓存、清理CSS样式表内存、清理图片解码数据内存、清理javascript脚本内存、清理浏览器GPU合成层内存、清理浏览器V8脚本解析内存,之后浏览器检测释放内存次数是否超过预设次数,如果浏览器释放内存的次数没有超过预设次数,并且操作系统的可用内存足够时,浏览器从向操作系统申请分配内存的步骤重新开始执行,如果浏览器释放内存的次数达到预设次数,并且操作系统的可用内存不够时,则浏览器先判断运行方式是否是多进程方式,若运行方式为多进程方式,则浏览器对主进程之外的一个或多个进程(例如渲染进程)进行重启处理,以对渲染进程进行重启处理为例,浏览器先退出渲染进程,之后恢复浏览器中的数据与消息通信;若运行方式为单进程多线程方式,则浏览器对主线程之外的其它线程进行重启处理,该过程与对渲染进程进行重启处理的过程类似,浏览器先杀死该线程,之后恢复浏览器中的数据与消息通信,最后浏览器检测系统的可用内存是否足够,若系统的可用内存足够,则从向操作系统申请分配内存的步骤重新开始执行,若系统的可用内存依然不足,在浏览器中的异常信息收集模块响应,并收集浏览器的异常信息,之后推出浏览器进程。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图5,其示出了本申请一个实施例提供的应用于浏览器的内存管理装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以包括:浏览器运行模块501、内存监测模块502和内存释放模块503。
浏览器运行模块501,用于运行浏览器。
内存监测模块502,用于在所述浏览器的运行过程中,监测运行所述浏览器的终端的操作系统向所述浏览器分配内存是否失败。
内存释放模块503,用于当监测到所述操作系统向所述浏览器分配内存失败时,释放所述浏览器的冗余内存。
综上所述,本申请实施例提供的技术方案,通过在浏览器的运行过程中,监测运行浏览器的终端的操作系统向浏览器分配内存是否失败,并在监测到该操作系统向浏览器分配内存失败后,及时释放浏览器中的冗余内存,使得浏览器的可用内存始终处于充足状态,避免浏览器由于内存不足导致的响应速度较慢,甚至无法响应的情况发生,从而提升浏览器的运行性能。
在基于图5所示实施例提供的一个可选实施例中,所述冗余内存包括以下一项或多项的组合:浏览器内核所占用的内存、在图片解码过程中所产生的内存、脚本所占用的内存、层叠样式表CSS所占用的内存、在脚本解析过程中所产生的内存、图形处理器GPU所占用的内存。
在基于图5所示实施例提供的一个可选实施例中,所述装置还包括:重启处理模块(图中未示出),
重启处理模块,用于根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理。
可选地,所述浏览器的运行方式为多进程方式;所述重启处理模块,用于对所述浏览器的目标进程进行重启处理,所述目标进程是除所述浏览器的主进程之外的其它进程。
可选地,所述浏览器的运行方式为单进程多线程方式;所述重启处理模块,用于对所述浏览器的目标线程进行重启处理,所述目标线程是除所述浏览器的主线程之外的其它线程。
可选地,所述装置还包括:次数检测模块(图中未示出)。
次数检测模块,用于检测释放所述浏览器的冗余内存的释放次数是否小于预设次数
重启处理模块,用于若所述释放次数不小于所述预设次数,则执行所述根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理的步骤。
在基于图5所示实施例提供的另一个可选实施例中,所述浏览器运行模块501,用于:
当获取到对应于所述浏览器的运行指令时,获取运行所述浏览器的终端的内存信息,所述内存信息用于指示内存大小;
根据所述终端的内存信息确定所述浏览器的运行方式;
按照所述浏览器的运行方式运行所述浏览器。
可选地,所述浏览器运行模块501,用于:
当所述终端的内存信息所指示的内存大小大于第一门限时,确定所述浏览器的运行方式为多进程方式;
当所述终端的内存信息所指示的内存大小小于第二门限时,确定所述浏览器的运行方式为单进程多线程方式;
其中,所述第一门限大于所述第二门限。
需要说明的是,上述实施例提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
参考图6,其示出了本申请一个示例性实施例提供的终端的结构方框图。本申请中的终端可以包括一个或多个如下部件:处理器610和存储器620。
处理器610可以包括一个或者多个处理核心。处理器610利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器620内的指令、程序、代码集或指令集,以及调用存储在存储器620内的数据,执行终端的各种功能和处理数据。可选地,处理器610可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器610可集成中央处理器(CentralProcessing Unit,CPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统和应用程序等;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器610中,单独通过一块芯片进行实现。
可选地,处理器610执行存储器620中的程序指令时实现下上述各个方法实施例提供的应用于浏览器的内存管理方法。
存储器620可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选地,该存储器620包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器620可用于存储指令、程序、代码、代码集或指令集。存储器620可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令、用于实现上述各个方法实施例的指令等;存储数据区可存储根据终端的使用所创建的数据等。
上述终端的结构仅是示意性的,在实际实现时,终端可以包括更多或更少的组件,比如:指纹传感器等,本实施例对此不作限定。
本领域技术人员可以理解,图6中示出的结构并不构成对终端600的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
在示例性实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由服务器的处理器加载并执行以实现上述方法实施例中的各个步骤。
可选地,上述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述方法实施例中的各个步骤的功能。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (8)

1.一种应用于浏览器的内存管理方法,其特征在于,所述方法包括:
运行浏览器;
在所述浏览器的运行过程中,监测运行所述浏览器的终端的操作系统向所述浏览器分配内存是否失败;
当监测到所述操作系统向所述浏览器分配内存失败时,释放所述浏览器的冗余内存;
若释放所述浏览器的冗余内存的释放次数不小于预设次数,则根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理;
当所述浏览器的运行方式为多进程方式时;所述根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理,包括:对所述浏览器的目标进程进行重启处理,所述目标进程是除所述浏览器的主进程之外的其它进程;
当所述浏览器的运行方式为单进程多线程方式时;所述根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理,包括:对所述浏览器的目标线程进行重启处理,所述目标线程是除所述浏览器的主线程之外的其它线程。
2.根据权利要求1所述的方法,其特征在于,所述冗余内存包括以下一项或多项的组合:浏览器内核所占用的内存、在图片解码过程中所产生的内存、脚本所占用的内存、层叠样式表CSS所占用的内存、在脚本解析过程中所产生的内存、图形处理器GPU所占用的内存。
3.根据权利要求1至2任一项所述的方法,其特征在于,所述运行浏览器,包括:
当获取到对应于所述浏览器的运行指令时,获取运行所述浏览器的终端的内存信息,所述内存信息用于指示内存大小;
根据所述终端的内存信息确定所述浏览器的运行方式;
按照所述浏览器的运行方式运行所述浏览器。
4.根据权利要求3所述的方法,其特征在于,所述根据所述内存信息确定所述浏览器的运行方式,包括:
当所述终端的内存信息所指示的内存大小大于第一门限时,确定所述浏览器的运行方式为多进程方式;
当所述终端的内存信息所指示的内存大小小于第二门限时,确定所述浏览器的运行方式为单进程多线程方式;
其中,所述第一门限大于所述第二门限。
5.一种应用于浏览器的内存管理装置,其特征在于,所述装置包括:
浏览器运行模块,用于运行浏览器;
内存监测模块,用于在所述浏览器的运行过程中,监测运行所述浏览器的终端的操作系统向所述浏览器分配内存是否失败;
内存释放模块,用于当监测到所述操作系统向所述浏览器分配内存失败时,释放所述浏览器的冗余内存;
所述内存释放模块,还用于若释放所述浏览器的冗余内存的释放次数不小于预设次数,则根据所述浏览器的运行方式对所述浏览器中的目标对象进行重启处理;
当所述浏览器的运行方式为多进程方式时;所述内存释放模块,用于:对所述浏览器的目标进程进行重启处理,所述目标进程是除所述浏览器的主进程之外的其它进程;
当所述浏览器的运行方式为单进程多线程方式时;所述内存释放模块,用于:对所述浏览器的目标线程进行重启处理,所述目标线程是除所述浏览器的主线程之外的其它线程。
6.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至4任一项所述的应用于浏览器的内存管理方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至4任一项所述的应用于浏览器的内存管理方法。
8.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机程序,以实现如权利要求1至4任一项所述的方法。
CN202110168922.3A 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质 Active CN112882832B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110168922.3A CN112882832B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110168922.3A CN112882832B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质
CN201810990014.0A CN109117274B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201810990014.0A Division CN109117274B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN112882832A CN112882832A (zh) 2021-06-01
CN112882832B true CN112882832B (zh) 2024-06-21

Family

ID=64860365

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810990014.0A Active CN109117274B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质
CN202110168922.3A Active CN112882832B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201810990014.0A Active CN109117274B (zh) 2018-08-28 2018-08-28 应用于浏览器的内存管理方法、装置、终端及存储介质

Country Status (4)

Country Link
US (1) US20210182147A1 (zh)
EP (1) EP3839735B1 (zh)
CN (2) CN109117274B (zh)
WO (1) WO2020042818A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117274B (zh) * 2018-08-28 2021-03-09 Oppo广东移动通信有限公司 应用于浏览器的内存管理方法、装置、终端及存储介质
CN112306825B (zh) * 2019-07-31 2024-02-27 中科寒武纪科技股份有限公司 内存操作记录方法、装置和计算机设备
CN110516179A (zh) * 2019-08-07 2019-11-29 Oppo广东移动通信有限公司 图形渲染方法、装置、电子设备及存储介质
CN110968815B (zh) * 2019-12-04 2023-06-20 北京达佳互联信息技术有限公司 页面刷新方法、装置、终端及存储介质
CN111580792B (zh) * 2020-04-29 2022-07-01 上海航天计算机技术研究所 一种基于操作系统的高可靠星载软件架构设计方法
CN111638956B (zh) * 2020-05-28 2024-08-27 腾讯科技(深圳)有限公司 一种应用的运行方法、设备及存储介质
CN111694713B (zh) * 2020-06-15 2023-04-11 Oppo(重庆)智能科技有限公司 一种应用运行优化方法、装置及计算机可读存储介质
CN113407346B (zh) * 2021-06-28 2023-04-07 Vidaa(荷兰)国际控股有限公司 一种浏览器内存调节方法及显示设备
CN114741208B (zh) * 2022-06-13 2022-09-23 北京智芯微电子科技有限公司 电能表及其内存堆管理方法、内存堆管理装置、存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080055A (zh) * 2006-12-21 2007-11-28 腾讯科技(深圳)有限公司 一种基于手机浏览器快速浏览网页的方法、系统及设备
CN104503828A (zh) * 2014-12-12 2015-04-08 广东欧珀移动通信有限公司 一种进程管理方法及终端
CN105100412A (zh) * 2015-05-27 2015-11-25 努比亚技术有限公司 终端数据清除方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043606B2 (en) * 2002-10-01 2006-05-09 America Online, Inc. Automatic browser web cache resizing system
US20060209695A1 (en) * 2005-03-15 2006-09-21 Archer Shafford R Jr Load balancing in a distributed telecommunications platform
US7552293B2 (en) * 2006-02-28 2009-06-23 Red Hat, Inc. Kernel and application cooperative memory management
US8341268B2 (en) * 2009-08-28 2012-12-25 Microsoft Corporation Resource sharing in multi-principal browser
US8296783B1 (en) * 2010-05-28 2012-10-23 Adobe Systems Incorporated Media player instance managed resource reduction
CN102436457B (zh) * 2011-02-18 2014-04-16 奇智软件(北京)有限公司 一种分配浏览器进程的方法及其设备
US9292359B2 (en) * 2012-07-27 2016-03-22 Intel Corporation System and method for memory management
CN103634337B (zh) * 2012-08-22 2018-09-18 腾讯科技(深圳)有限公司 页面恢复方法、装置及移动终端
US9311236B2 (en) * 2012-11-20 2016-04-12 International Business Machines Corporation Out-of-memory avoidance in dynamic virtual machine memory adjustment
CN104077191A (zh) * 2014-07-18 2014-10-01 广州金山网络科技有限公司 一种用于管理内存资源的方法及装置
CN107329836B (zh) * 2017-07-13 2021-01-22 北京元心科技有限公司 多系统的内存管理方法、管理装置以及移动终端
CN109117274B (zh) * 2018-08-28 2021-03-09 Oppo广东移动通信有限公司 应用于浏览器的内存管理方法、装置、终端及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101080055A (zh) * 2006-12-21 2007-11-28 腾讯科技(深圳)有限公司 一种基于手机浏览器快速浏览网页的方法、系统及设备
CN104503828A (zh) * 2014-12-12 2015-04-08 广东欧珀移动通信有限公司 一种进程管理方法及终端
CN105100412A (zh) * 2015-05-27 2015-11-25 努比亚技术有限公司 终端数据清除方法及装置

Also Published As

Publication number Publication date
CN112882832A (zh) 2021-06-01
CN109117274B (zh) 2021-03-09
EP3839735A4 (en) 2021-08-25
EP3839735B1 (en) 2023-11-22
EP3839735A1 (en) 2021-06-23
US20210182147A1 (en) 2021-06-17
WO2020042818A1 (zh) 2020-03-05
CN109117274A (zh) 2019-01-01

Similar Documents

Publication Publication Date Title
CN112882832B (zh) 应用于浏览器的内存管理方法、装置、终端及存储介质
EP3084615B1 (en) Detection of unauthorized memory modification and access using transactional memory
CN107766128B (zh) 一种启动应用的方法及装置
US11093270B2 (en) Fast-booting application image
TWI612439B (zh) 用以偵測未經授權之記憶體存取的計算裝置、方法及機器可讀儲存媒體
US20140365861A1 (en) Prefetching binary data for use by a browser plugin
CN109669877B (zh) 内存管理方法、装置、终端及存储介质
CN108334779B (zh) 一种应用的处理方法、设备和计算存储介质
CN110879742A (zh) 虚拟机异步创建内部快照方法、装置及存储介质
US8860735B2 (en) Aligning script animations with display refresh
CN111831434A (zh) 资源分配方法、装置、存储介质及电子设备
CN114328073A (zh) 线程监控方法、装置、设备及存储介质
CN103034577A (zh) 一种定位关机慢的方法及装置
US20130067320A1 (en) Batch Document Formatting and Layout on Display Refresh
CN111831432B (zh) Io请求的调度方法、装置、存储介质及电子设备
EP2546744B1 (en) Software control device, software control method, and software control program
JP5862722B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム
CN107608756B (zh) 一种基于cpu硬件特性的虚拟机自省触发方法及系统
CN113032154B (zh) 一种虚拟cpu的调度方法、装置、电子设备及存储介质
US20130318310A1 (en) Processor processing method and processor system
CN115114247A (zh) 文件数据处理方法及装置
CN114327508A (zh) 一种软件加载方法及相关装置
EP2677432A1 (en) Memory management program, memory management method, information processing device, and computer-readable recording medium upon which memory management program has been recorded
EP3115898B1 (en) Method for generating user-level events for an application
CN116627622A (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