释放已占用逻辑空间的方法、装置及虚拟机的制作方法_3

文档序号:9375335阅读:来源:国知局
中,保留该应用程序运行时最多可占用的虚拟机堆空间容量对应的部分空间,并将其余部分的空间全部释放;或者,虚拟机保留的部分空间的容量可以稍大于该应用程序运行时最多可占用的虚拟机堆空间容量。
[0100]比如,虚拟机已占用为虚拟机堆空间的逻辑空间容量为512M,应用程序最多可占用的虚拟机堆空间容量为128M,则虚拟机可以保留该512M容量中的128M,并将其余的384M释放,或者,虚拟机为了保证应用程序的正常运行,也可以保留该512M容量中的130M,并将其余的382M释放。
[0101]以该终端为智能手机,该应用程序为浏览器为例,虚拟机初始化后占用的虚拟机堆空间为512M,浏览器最多可占用的虚拟机堆空间容量为128M,终端向虚拟机发送包含浏览器最多可占用的虚拟机堆空间容量的空间释放指令,虚拟机根据该空间释放指令计算待释放的逻辑空间的容量为384M后,将占用的512M虚拟机堆空间中的384M释放,用做可以被浏览器申请的内存空间(native heap)。经过逻辑空间释放之后,浏览器可以同时打开更多的网页,比如,浏览器原来可以同时打开6个网页,经过本公开实施例的空间释放之后,可以同时打开最多10个网页。
[0102]在步骤306中,当应用程序打开新的对象时,终端检测该应用程序已经打开的对象的数量是否大于预设的数量阈值。
[0103]在步骤307中,若应用程序已经打开的对象的数量大于预设的数量阈值,则终端将该应用程序最早打开的对象的缓存数据删除。
[0104]可选的,本公开实施例所示的方案中,为了避免应用程序打开的对象数量过多而导致内存溢出错误,还可以将应用程序可以打开的对象的数量限制在某一个预设值之下,当打开的对象的数量大于该预设值时,将最先打开的对象关闭,并将其缓存数据。
[0105]比如,以应用程序为浏览器为例,该浏览器打开的对象为网页,可以预先设置该浏览器最多可以打开10个网页,当浏览器打开第11个网页时,将该浏览器的最先打开的一个网页关闭,并删除其对应的缓存数据,以节约逻辑空间。
[0106]综上所述,本公开实施例所示的释放已占用逻辑空间的方法,通过在检测到应用程序接收到启动指令时,获取该应用程序运行时最多可占用的虚拟机堆空间容量,根据该应用程序运行时最多可占用的虚拟机堆空间容量向该虚拟机发送空间释放指令,使虚拟机释放该虚拟机已占用的逻辑空间中的部分空间,其能给被应用程序申请为内存空间,从而达到扩展应用程序可申请的内存空间的效果。
[0107]图4是根据另一示例性实施例示出的一种释放已占用逻辑空间的方法的流程图。该释放已占用逻辑空间的方法用于通过虚拟机运行应用程序的终端中,比如,该终端可以是智能手机、平板电脑以及电子书阅读器等。如图4所示,该释放已占用逻辑空间的方法可以包括以下步骤。
[0108]在步骤401中,终端检测该应用程序是否接收到启动指令。
[0109]在步骤402中,若该应用程序接收到该启动指令,则终端获取该应用程序的配置文件;从该应用程序的配置文件中读取该应用程序运行时最多可占用的虚拟机堆空间容量。
[0110]在步骤403中,终端根据该应用程序运行时最多可占用的虚拟机堆空间容量以及该虚拟机已占用的逻辑空间计算待释放的该部分空间的空间容量。
[0111]在步骤404中,终端向该虚拟机发送包含该空间容量的空间释放指令。
[0112]在步骤405中,虚拟机根据该空间释放指令中包含的空间容量释放该部分空间。
[0113]以该终端为智能手机,该应用程序为浏览器为例,虚拟机初始化后占用的虚拟机堆空间为512M,浏览器最多可占用的虚拟机堆空间容量为128M,终端计算待释放的逻辑空间的容量为384M后,向虚拟机发送包含待释放的逻辑空间的容量的空间释放指令,虚拟机根据该空间释放指令,将占用的512M虚拟机堆空间中的384M释放,用做可以被浏览器申请的内存空间(native heap)。经过逻辑空间释放之后,浏览器可以同时打开更多的网页,比如,浏览器原来可以同时打开6个网页,经过本公开实施例的空间释放之后,可以同时打开最多10个网页。
[0114]在步骤406中,当应用程序打开新的对象时,终端检测该应用程序已经打开的对象的数量是否大于预设的数量阈值。
[0115]在步骤407中,若应用程序已经打开的对象的数量大于预设的数量阈值,则终端将该应用程序最早打开的对象的缓存数据删除。
[0116]可选的,本公开实施例所示的方案中,为了避免应用程序打开的对象数量过多而导致内存溢出错误,还可以将应用程序可以打开的对象的数量限制在某一个预设值之下,当打开的对象的数量大于该预设值时,将最先打开的对象关闭,并将其缓存数据。
[0117]比如,以应用程序为浏览器为例,该浏览器打开的对象为网页,可以预先设置该浏览器最多可以打开10个网页,当浏览器打开第11个网页时,将该浏览器的最先打开的一个网页关闭,并删除其对应的缓存数据,以节约逻辑空间。
[0118]综上所述,本公开实施例所示的释放已占用逻辑空间的方法,通过在检测到应用程序接收到启动指令时,获取该应用程序运行时最多可占用的虚拟机堆空间容量,根据该应用程序运行时最多可占用的虚拟机堆空间容量向该虚拟机发送空间释放指令,使虚拟机释放该虚拟机已占用的逻辑空间中的部分空间,其能给被应用程序申请为内存空间,从而达到扩展应用程序可申请的内存空间的效果。
[0119]下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。
[0120]图5是根据一示例性实施例示出的一种释放已占用逻辑空间的装置的框图,该释放已占用逻辑空间的装置可以用于通过虚拟机运行应用程序的终端中,执行如图1所示方法的全部步骤,或者,执行图3或图4所示方法中由终端执行的步骤,该终端可以是智能手机、平板电脑以及电子书阅读器等。如图5所示,该释放已占用逻辑空间的装置包括但不限于:指令检测模块501、获取模块502以及指令发送模块503 ;
[0121]所述指令检测模块501被设置为用于检测所述应用程序是否接收到启动指令;
[0122]所述获取模块502被设置为用于若所述应用程序接收到所述启动指令,则获取所述应用程序运行时最多可占用的虚拟机堆空间容量;
[0123]所述指令发送模块503被设置为用于根据所述应用程序运行时最多可占用的虚拟机堆空间容量向所述虚拟机发送空间释放指令,所述空间释放指令用于指示所述虚拟机释放所述虚拟机已占用的逻辑空间中的部分空间。
[0124]综上所述,本公开实施例所示的释放已占用逻辑空间的装置,通过在检测到应用程序接收到启动指令时,获取该应用程序运行时最多可占用的虚拟机堆空间容量,根据该应用程序运行时最多可占用的虚拟机堆空间容量向该虚拟机发送空间释放指令,使虚拟机释放该虚拟机已占用的逻辑空间中的部分空间,其能给被应用程序申请为内存空间,从而达到扩展应用程序可申请的内存空间的效果。
[0125]图6是根据另一示例性实施例示出的一种释放已占用逻辑空间的装置的框图,该释放已占用逻辑空间的装置可以用于通过虚拟机运行应用程序的终端中,执行如图1所示方法的全部步骤,或者,执行图3或图4所示方法中由终端执行的步骤,该终端可以是智能手机、平板电脑以及电子书阅读器等。如图6所示,该释放已占用逻辑空间的装置包括但不限于:指令检测模块501、获取模块502以及指令发送模块503 ;
[0126]所述指令检测模块501被设置为用于检测所述应用程序是否接收到启动指令;
[0127]所述获取模块502被设置为用于若所述应用程序接收到所述启动指令,则获取所述应用程序运行时最多可占用的虚拟机堆空间容量;
[0128]所述指令发送模块503被设置为用于根据所述应用程序运行时最多可占用的虚拟机堆空间容量向所述虚拟机发送空间释放指令,所述空间释放指令用于指示所述虚拟机释放所述虚拟机已占用的逻辑空间中的部分空间。
[0129]可选的,所述获取模块502,包括:获取子模块
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1