G06F12/02
1. 一种混合内存分配的方法,其特征在于,包括:
配置浏览器独占内存,配置浏览器内存使用的阈值;
判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值;
若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存;
释放所述浏览器申请的内存,其他模块重新使用。
2. 如权利要求1所述的方法,其特征在于,所述判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值之后,还包括:
若没有超过所述浏览器内存使用的阈值,从所述浏览器独占内存中分配所述浏览器申请的内存;
释放所述浏览器申请的内存,所述浏览器独占内存回收释放的内存。
3. 如权利要求1或2所述的方法,其特征在于,所述配置浏览器独占内存,配置浏览器内存使用的阈值,还包括:
配置浏览器能使用的最大内存,所述浏览器能使用的最大内存为浏览器申请的系统内存最大值与所述浏览器独占内存之和。
4. 如权利要求3所述的方法,其特征在于,所述若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存,具体还包括:
判断所述浏览器申请的内存与累积未释放内存之和是否大于所述浏览器申请的系统内存最大值,若小于或等于,从系统中非浏览器独占的内存中分配所述浏览器申请的内存。
5. 如权利要求4所述的方法,其特征在于,还包括,若所述浏览器申请的内存与累积未释放内存之和大于所述浏览器申请的系统内存最大值,则结束所述浏览器申请的内存的申请。
6. 一种混合内存分配的系统,其特征在于,包括:
配置模块,用于配置浏览器独占内存,配置浏览器内存使用的阈值;
判断模块,用于判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值;
分配模块,用于若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存;
释放模块,用于释放所述浏览器申请的内存,其他模块重新使用。
7. 如权利要求6所述的系统,其特征在于,还包括:
所述分配模块,还用于若没有超过所述浏览器内存使用的阈值,从所述浏览器独占内存中分配所述浏览器申请的内存;
所述释放模块,还用于释放所述浏览器申请的内存,所述浏览器独占内存回收释放的内存。
8. 如权利要求6或7所述的系统,其特征在于,所述配置模块,还用于配置浏览器能使用的最大内存,所述浏览器能使用的最大内存为浏览器申请的系统内存最大值与所述浏览器独占内存之和。
9. 如权利要求8所述的系统,其特征在于,还包括,当浏览器申请的内存大小超过所述浏览器内存使用的阈值时,
所述判断模块,还用于判断所述浏览器申请的内存与累积未释放内存之和是否大于所述浏览器申请的系统内存最大值;
所述分配模块,还用于若所述浏览器申请的内存与累积未释放内存之和小于或等于所述浏览器申请的系统内存最大值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存。
10. 一种浏览器,其特征在于,所述浏览器包括权利要求6至9任一项所述的混合内存分配的系统。
本发明涉及内存分配领域,尤其涉及一种混合内存分配的方法、系统及浏览器。
浏览器是指可以显示网页服务器或者文件系统的HTML文件内容,并让用户与这些文件交互的一种软件。一般浏览器需要独占一定量的内存才能够正常运行,但是在实际的某些项目中,比如嵌入式项目,内存比较紧张,无法提供给浏览器大块的独占内存。
本发明实施例在于提供一种混合内存分配的方法、系统及浏览器,利用混合内存分配机制,提高内存使用率。
本发明是这样实现的,一种混合内存分配的方法,包括:
配置浏览器独占内存,配置浏览器内存使用的阈值;
判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值;
若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存;
释放所述浏览器申请的内存,其他模块重新使用。
较优的,所述判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值之后,还包括:
若没有超过所述浏览器内存使用的阈值,从所述浏览器独占内存中分配所述浏览器申请的内存;
释放所述浏览器申请的内存,所述浏览器独占内存回收释放的内存。
较优的,所述配置浏览器独占内存,配置浏览器内存使用的阈值,还包括:
配置浏览器能使用的最大内存,所述浏览器能使用的最大内存为浏览器申请的系统内存最大值与所述浏览器独占内存之和。
较优的,所述若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存,具体还包括:
判断所述浏览器申请的内存与累积未释放内存之和是否大于所述浏览器申请的系统内存最大值,若小于或等于,从系统中非浏览器独占的内存中分配所述浏览器申请的内存。
较优的,还包括,若所述浏览器申请的内存与累积未释放内存之和大于所述浏览器申请的系统内存最大值,则结束所述浏览器申请的内存的申请。
本发明的另一目的在于一种混合内存分配的系统,包括:
配置模块,用于配置浏览器独占内存,配置浏览器内存使用的阈值;
判断模块,用于判断浏览器申请的内存大小是否超过所述浏览器内存使用的阈值;
分配模块,用于若超过所述浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存;
释放模块,用于释放所述浏览器申请的内存,其他模块重新使用。
较优的,还包括:
所述分配模块,还用于若没有超过所述浏览器内存使用的阈值,从所述浏览器独占内存中分配所述浏览器申请的内存;
所述释放模块,还用于释放所述浏览器申请的内存,所述浏览器独占内存回收释放的内存。
较优的,所述配置模块,还用于配置浏览器能使用的最大内存,所述浏览器能使用的最大内存为浏览器申请的系统内存最大值与所述浏览器独占内存之和。
较优的,还包括,当浏览器申请的内存大小超过所述浏览器内存使用的阈值时,
所述判断模块,还用于判断所述浏览器申请的内存与累积未释放内存之和是否大于所述浏览器申请的系统内存最大值;
所述分配模块,还用于若所述浏览器申请的内存与累积未释放内存之和小于或等于所述浏览器申请的系统内存最大值,从系统中非浏览器独占的内存中分配所述浏览器申请的内存。
本发明的再一目的在于提供一种浏览器,包括:所述浏览器包括上述权利要求任一项所述的混合内存分配的系统。
实施上述实施例,使用混合内存分配,既可以利用浏览器独占内存使用高效、节约的内存管理策略,又可以最大限度避免浏览器独占内存给系统造成的内存压力,使浏览器不因产生大量内存碎片而浪费内存,提高内存申请速度。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的一种混合内存分配的方法流程示意图;
图2是本发明一种混合内存分配的方法的另一实施例的流程示意图;
图3是本发明一种混合内存分配的方法的另一实施例的流程示意图;
图4是本发明实施例的一种混合内存分配的系统的结构示意图。
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。
请参阅图1示出的本发明实施例的一种混合内存分配的方法流程示意图,包括:
步骤S101:配置浏览器独占内存,配置浏览器内存使用的阈值。
具体的,例如一个系统整个内存为256M,在浏览器初始化之前,配置浏览器独占内存为4M,浏览器开始初始化时,即开始分配浏览器独占内存4M,则系统中非浏览器独占内存的大小为252M,一般而言,浏览器独占内存不小于3M。并配置浏览器内存使用的阈值,一般配置阈值为4k字节。
步骤S102:判断浏览器申请的内存大小是否超过浏览器内存使用的阈值。
具体的,用户在使用浏览器时,会单次动态申请内存,比如用户点击浏览器上“返回”键时,浏览器就会申请内存来执行该命令,有些命令占用的内存比较小,有些命令占用的内存较大。
步骤S103:若超过浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为1M时,大于浏览器内存使用的阈值4K,则从系统中非浏览器独占的内存252M中来分配1M提供给浏览器使用。
步骤S104:释放浏览器申请的内存,其他模块重新使用。
具体的,当浏览器完成命令后,会释放申请的内存1M,系统中其他的模块来重新使用。
实施上述实施例,使用混合内存分配,既可以利用浏览器独占内存使用高效、节约的内存管理策略,又可以最大限度避免浏览器独占内存给系统造成的内存压力,使浏览器不因产生大量内存碎片而浪费内存,提高内存申请速度。
下面结合图2示出的本发明一种混合内存分配的方法的另一实施例的流程示意图,方法步骤包括:
步骤S201:配置浏览器独占内存,配置浏览器内存使用的阈值。
具体的,例如一个系统整个内存为256M,在浏览器初始化之前,配置浏览器独占内存为4M,则系统中非浏览器独占内存的大小为252M,一般而言,浏览器独占内存不小于3M。并配置浏览器内存使用的阈值,一般配置阈值为4k字节。
步骤S202:判断浏览器申请的内存大小是否超过浏览器内存使用的阈值,如果没超过,进入步骤S203;如果超过,进入步骤S205。
具体的,用户在使用浏览器时,会单次动态申请内存,比如用户点击浏览器上“返回”键时,浏览器就会申请内存来执行该命令,有些命令占用的内存比较小,有些命令占用的内存较大。
步骤S203:从浏览器独占内存中分配。
具体的,当浏览器申请的内存为3K时,小于浏览器内存使用的阈值4K,则从浏览器独占的内存4M中来分配3K提供给浏览器使用。
步骤S204:释放内存,浏览器独占内存回收该内存。
具体的,当浏览器完成命令后,会释放申请的内存3K,浏览器独占内存会回收3K内存。
步骤S205:从系统中非浏览器独占的内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为1M时,大于浏览器内存使用的阈值4K,则从系统中非浏览器独占的内存252M中来分配1M提供给浏览器使用。
步骤S206:释放内存,其他模块重新使用。
具体的,当浏览器完成命令后,会释放申请的内存1M,系统中其他的模块来重新使用。
步骤S207:结束。
实施上述实施例,使用混合内存分配,既可以利用浏览器独占内存使用高效、节约的内存管理策略,又可以最大限度避免浏览器独占内存给系统造成的内存压力,使浏览器不因产生大量内存碎片而浪费内存,提高内存申请速度。
下面结合图3示出的本发明一种混合内存分配的方法的另一实施例的流程示意图,方法步骤包括:
步骤S301:配置浏览器独占内存,配置浏览器内存使用的阈值,配置浏览器能使用的最大内存。
具体的,例如一个系统整个内存为256M,在浏览器初始化之前,配置浏览器独占内存为4M,则系统中非浏览器独占内存的大小为252M,一般而言,浏览器独占内存不小于3M。并配置浏览器内存使用的阈值,一般配置阈值为4k字节。浏览器能使用的最大内存为浏览器申请的系统内存最大值与浏览器独占内存之和,如果配置浏览器能使用的最大内存为100M,则代表浏览器申请的系统内存最大值为100M‑4M=96M。
步骤S302:判断浏览器申请的内存大小是否超过浏览器内存使用的阈值,如果没超过,进入步骤S303;如果超过,进入步骤S305。
具体的,用户在使用浏览器时,会单次动态申请内存,比如用户点击浏览器上“返回”键时,浏览器就会申请内存来执行该命令,有些命令占用的内存比较小,有些命令占用的内存较大。
步骤S303:从浏览器独占内存中分配。
具体的,当浏览器申请的内存为3K时,小于浏览器内存使用的阈值4K,则从浏览器独占的内存4M中来分配3K提供给浏览器使用。
步骤S304:释放内存,浏览器独占内存回收该内存。
具体的,当浏览器完成命令后,会释放申请的内存3K,浏览器独占内存会回收3K内存。
步骤S305:判断浏览器申请的内存与累积未释放内存之和是否大于浏览器申请的系统内存最大值,若大于,进入步骤S308;若小于或等于,进入步骤S306。
具体的,浏览器申请的系统内存最大值为浏览器能使用的最大内存与浏览器独占内存之差。因为每次申请的内存都有自己的生命周期,各不相同,所以系统内存中海存在累积未释放内存。
步骤S306:从系统中非浏览器独占的内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为1M,累积未释放内存为4M时,两者之和为5M,小于浏览器能使用的最大内存与浏览器独占内存之差96M,则从系统中非浏览器独占的内存252M中来分配1M提供给浏览器使用。
步骤S307:释放内存,其他模块重新使用。
具体的,当浏览器完成命令后,会释放申请的内存1M,系统中其他的模块来重新使用。
步骤S308:结束。
实施上述实施例,使用混合内存分配,既可以利用浏览器独占内存使用高效、节约的内存管理策略,又可以最大限度避免浏览器独占内存给系统造成的内存压力,使浏览器不因产生大量内存碎片而浪费内存,提高内存申请速度。
下面结合图4示出的本发明实施例的一种混合内存分配的系统的结构示意图,进一步详细说明本发明实施例一种混合内存分配的系统的结构。
配置模块401,用于配置浏览器独占内存,配置浏览器内存使用的阈值。
具体的,例如一个系统整个内存为256M,在浏览器初始化之前,配置浏览器独占内存为4M,则系统中非浏览器独占内存的大小为252M,一般而言,浏览器独占内存不小于3M。并配置浏览器内存使用的阈值,一般配置阈值为4k字节。
判断模块402,用于判断浏览器申请的内存大小是否超过浏览器内存使用的阈值。
具体的,用户在使用浏览器时,会单次动态申请内存,比如用户点击浏览器上“返回”键时,浏览器就会申请内存来执行该命令,有些命令占用的内存比较小,有些命令占用的内存较大。
分配模块403,用于若超过浏览器内存使用的阈值,从系统中非浏览器独占的内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为1M时,大于浏览器内存使用的阈值4K,则从系统中非浏览器独占的内存252M中来分配1M提供给浏览器使用。
释放模块404,用于释放该浏览器申请的内存,其他模块重新使用。
具体的,当浏览器完成命令后,会释放申请的内存1M,系统中其他的模块来重新使用。
实施上述实施例,使用混合内存分配,既可以利用浏览器独占内存使用高效、节约的内存管理策略,又可以最大限度避免浏览器独占内存给系统造成的内存压力,使浏览器不因产生大量内存碎片而浪费内存,提高内存申请速度。
较优的,分配模块403,还用于若没有超过浏览器内存使用的阈值,从所述浏览器独占内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为3K时,小于浏览器内存使用的阈值4K,则从浏览器独占的内存4M中来分配3K提供给浏览器使用。
释放模块404,还用于释放该浏览器申请的内存,浏览器独占内存回收释放的内存。
具体的,当浏览器完成命令后,会释放申请的内存3K,浏览器独占内存会回收3K内存。
较优的,配置模块401,还用于配置浏览器能使用的最大内存,浏览器能使用的最大内存为浏览器申请的系统内存最大值与浏览器独占内存之和。
具体的,如果配置浏览器能使用的最大内存为100M,则代表浏览器申请的系统内存最大值为100M‑4M=96M。
当浏览器申请的内存大小超过所述浏览器内存使用的阈值时,
判断模块402,还用于判断浏览器申请的内存与累积未释放内存之和是否大于浏览器申请的系统内存最大值。
具体的,浏览器申请的系统内存最大值为浏览器能使用的最大内存与浏览器独占内存之差。因为每次申请的内存都有自己的生命周期,各不相同,所以系统内存中还存在累积未释放内存。
分配模块403,还用于若浏览器申请的内存与累积未释放内存之和小于或等于浏览器申请的系统内存最大值,从系统中非浏览器独占的内存中分配浏览器申请的内存。
具体的,当浏览器申请的内存为1M,累积未释放内存为4M时,两者之和为5M,小于浏览器能使用的最大内存与浏览器独占内存之差96M,则从系统中非浏览器独占的内存252M中来分配1M提供给浏览器使用。
本发明提供的系统可以集成在浏览器中,本发明提供的一种混合内存分配的方法、系统及浏览器可以用于一般的系统中,也可以应用于嵌入式系统中。
需要说明的是,通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的硬件平台的方式来实现,当然也可以全部通过硬件来实施。基于这样的理解,本发明的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
以上所揭露的仅为本发明实施例中的较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
本文发布于:2023-04-13 21:29:56,感谢您对本站的认可!
本文链接:https://patent.en369.cn/patent/3/86230.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |