CN116661697A - 内存处理方法、装置、电子设备及存储介质 - Google Patents

内存处理方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN116661697A
CN116661697A CN202310707153.9A CN202310707153A CN116661697A CN 116661697 A CN116661697 A CN 116661697A CN 202310707153 A CN202310707153 A CN 202310707153A CN 116661697 A CN116661697 A CN 116661697A
Authority
CN
China
Prior art keywords
display memory
instruction queue
application program
target application
target
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
Application number
CN202310707153.9A
Other languages
English (en)
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.)
Vivo Mobile Communication Co Ltd
Original Assignee
Vivo Mobile Communication Co 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 Vivo Mobile Communication Co Ltd filed Critical Vivo Mobile Communication Co Ltd
Priority to CN202310707153.9A priority Critical patent/CN116661697A/zh
Publication of CN116661697A publication Critical patent/CN116661697A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Processing (AREA)

Abstract

本申请公开了一种内存处理方法、装置、电子设备及存储介质,属于信息处理领域。该方法包括:在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。

Description

内存处理方法、装置、电子设备及存储介质
技术领域
本申请属于信息处理领域,具体涉及一种内存处理方法、装置、电子设备及存储介质。
背景技术
随着技术的不断发展,应用程序的内存越来越大,而运行应用程序的电子设备的运行内存在4GB/8GB/12GB/16GB不等,因此,相关技术中存在因内存不足而导致系统运行卡顿的问题。
发明内容
本申请实施例的目的是提供一种内存处理方法、装置、电子设备及存储介质,以解决系统运行卡顿的问题。
第一方面,本申请实施例提供了一种内存处理方法,该方法包括:
在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
第二方面,本申请实施例提供了一种内存处理装置,包括:
监控模块,用于在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
处理模块,用于在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面所述的方法的步骤。
第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面所述的方法的步骤。
第五方面,本申请实施例提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的方法。
第六方面,本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如第一方面所述的方法。
在本申请实施例中,在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。通过压缩目标应用程序对应的显示内存,减少目标应用程序的显示内存占用,缓解电子设备的内存不足的情况,以避免系统卡顿。
附图说明
图1为本申请实施例提供的内存处理方法流程示意图;
图2为本申请实施例中图形处理器的渲染指令处理示意图;
图3为本申请实施例提供的分析流程示意图;
图4为本申请实施例提供的压缩处理流程示意图;
图5为本申请实施例提供的内存处理装置结构示意图;
图6为本申请实施例提供的电子设备结构示意图;
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的内存处理方法、装置、电子设备及存储介质进行详细地说明。
图1为本申请实施例提供的内存处理方法流程示意图,如图1所示,包括:
步骤110,在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
本申请实施例中,目标应用程序具体可以是安装在电子设备中的应用程序,其具体可以是系统影城程序,也可以是第三方应用程序,例如,游戏应用程序,地图应用程序,或者视频应用程序等等。
目标应用程序后台运行,具体可以是指目标应用被切换到电子设备后台运行的情况,其具体可以是用户手动将应用程序切换到后台运行,也可以是被其他应用程序调用切换到后台运行。
本申请实施例中的图形处理器是指设置在电子设备中,用于进行图形处理工作的处理器,根据图形处理器的运行原理,在电子设备的显示元件上所显示的内容,需要由应用程序主动向图形处理器提交渲染指令,从而指挥图形处理器和显示元件的工作。
一般来说,图形处理器与应用程序交互过程中,存在两个指令队列,一个是应用程序与图形处理器之间的第一指令队列,该队列中缓存有应用程序提交给图形处理器的渲染指令;另一个是图形处理器与显示元件之间的第二指令队列,该队列中缓存有图形处理器正在执行的渲染指令。
在一个可选地实施例中,每一个目标应用程序对应有一个第一指令队列和第二指令队列,即在不同目标应用程序的渲染指令缓存在不同的第一指令队列和不同的第二指令队列中。
例如,第一目标应用程序提交给图形处理器的渲染指令均缓存在第一目标指令队列中,图像处理器正在执行中的来自第一目标应用程序的渲染指令均缓存在第二目标指令队列中;第二目标应用程序提交给图形处理器的渲染指令均缓存在第三目标指令队列中,图像处理器正在执行中的,来自第二目标应用程序的渲染指令均缓存在第四目标指令队列中。
在另一个可选地实施例中,多个应用程序均对应同一个第一指令队列和第二指令队列,即多个不同目标应用程序的渲染指令缓存在同一个第一指令队列和同一个第二指令队列中。
例如,第一目标应用程序和第二目标应用程序提交给图形处理器的渲染指令均缓存在同一第一指令队列中,图像处理器正在执行中的来自第一目标应用程序和第二目标应用程序的渲染指令均缓存在同一第二指令队列中。
图2为本申请实施例中图形处理器的渲染指令处理示意图,如图2所示,应用程序和图形处理器之间的队列,缓存有应用程序提交给图形处理器的3个渲染指令,分别为:渲染指令4、渲染指令5和渲染指令6;图形处理器和显示屏之间的队列,缓存有图形处理器正在执行的3个渲染指令,分别为:渲染指令1、渲染指令2和渲染指令3。
步骤120,在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
在本申请实施例中,若第一指令队列不包含所述目标应用程序的渲染指令的情况,则说明此时目标应用程序未向图形处理器提交渲染指令,此时目标应用程序没有更新显示内容的需求。
在本申请实施例中,若第二指令队列均不包含所述目标应用程序的渲染指令,则说明图形处理器接收到的来自目标应用程序的渲染指令已经全部执行完毕,此时目标应用程序在图形处理器中没有待处理的渲染指令。
因此,在第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,则说明标应用程序及没有更新显示内容的需求,在图形处理器中没有待处理的渲染指令,此时即使对目标应用程序的显示内存进行压缩处理,也不会影响电子设备的显示效果,因此可以开始执行对目标应用程序对应的显示内存的压缩处理。
本申请实施例中,目标应用程序对应的显示内存具体可以是目标应用程序在运行过程中所占用的显示内存。
在一个可选地实施例中,对目标应用程序对应的显示内存进行压缩处理后,能够有效减少该显示内存的大小,例如,可以将目标应用程序对应的显示内存由1.3GB,压缩为0.6GB。
在本申请实施例中,在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。通过压缩目标应用程序对应的显示内存,减少目标应用程序的显示内存占用,缓解电子设备的内存不足的情况,以避免系统卡顿。在本申请的一些实施例中,所述目标应用程序对应的显示内存包括N个显示内存块;所述对所述目标应用程序对应的显示内存进行压缩处理,包括:
解除目标显示内存块与所述图形处理器之间的映射关系,并解除所述目标显示内存块与中央处理器之间的映射关系,其中,所述目标显示内存块是所述N个显示内存块中未携带有不可压缩标识的显示内存块,或者,所述目标显示内存块是所述N个显示内存块中携带有可压缩标识的显示内存块;
对所述目标显示内存块进行压缩处理。
在本申请的一些实施例中,目标应用程序对应的显示内存可以被分为很多个地址空间,每个地址空间对应着一段显示内存块。显示内存块可以是字节、单词或者是任意长度的数据块。显示内存通常是指查看整个内存的内容,而显示内存块则是指查看内存中某个特定的数据块。因此,显示内存中可以包括N个显示内存块。
由于显示内存是一块块显示内存块组成的,对于显示内存块的管理也是一块块显示内存块进行管理的。例如,显示屏幕的图片区不是连续的,而是通过图片区对应的一个个显示内存块来进行管理的。
在本申请的一些实施例中,在N个显示内存块中包括有携带不可压缩标记的非目标显示内存块,以及未携带有不可压缩标记的目标显示内存块,此处的不可压缩标识具体可以是目标应用程序自动标记的。在本申请实施例中,携带有不可压缩标记的非目标显示内存块是指不适宜进行压缩处理的显示内存块,其具体可能是与其它硬件保持交互的一些显示内存块,若对这些非目标显示内存块进行压缩处理,很可能会影响目标应用程序的正常运行。
在一个可选地实施例中,该目标显示内存块还可以是N个显示内存块中携带有可压缩标识的显示内存块,对应地,非目标显示内存块即为N个显示内存块中,未携带有可压缩标识的显示内存块。
在本申请实施例中,携带有可压缩标记的目标显示内存块是指可以进行压缩处理的显示内存块,对携带有可压缩标记的目标显示内存块进行压缩处理,也不会影响目标应用程序的正常运行。
在本申请的一些实施例中,显示内存中的N个显示内存块均可以记录在一个双向管理链接表中,对双向管理链接表中的每个显示内存块可以依次进行分析,直至遍历双向管理链接表中的N个显示内存块。
在本申请的一些实施例中,首先可以根据各个显示内存块是否携带有不可压缩标识或者可压缩标识来区分目标显示内存块和非目标显示内存块。
对于每一个目标显示内存块,首先解除其与图形处理器之间的内存管理单元映射关系,然后再解除其与中央处理器之间的内存管理单元映射关系,最终得到无映射关系的各个目标显示内存块。
在本申请实施例中,通过内存管理单元映射关系的解除,能够有效避免显示内存块在压缩和解压时导致内存块映射物理地址发生变化,而导致该内存块无法正常读取的问题。
在完成内存管理单元映射的解除,得到无映射关系的各个目标显示内存块之后,这些内存块处于无访问状态,可以整块压缩。
在本申请实施例中,对目标显示内存块进行内存块压缩处理时,可以使用LZ4压缩算法、XZ压缩算法等实现对于目标显示内存块的压缩,也可以是采用其它能够对内存块进行有效压缩的压缩算法实现,本申请实施例对此并不进行限定。
在本申请实施例中,在完成各个目标显示内存块的压缩处理后,可以得到完成压缩处理后的各个目标压缩内存块。
在一个可选实施例中,在本申请实施例中根据目标压缩内存块和各个未进行压缩处理的非目标显示内存块,最终会得到完成压缩处理后的压缩显示内存。
在本申请实施例的方案中,通过各个显示内存块是否携带不可压缩标识或者可压缩标识,从而有效区别能够进行压缩处理的目标显示内存块,以及不适宜进行压缩处理的非目标显示内存块,避免不适当的压缩处理所导致的程序故障;同时,通过与图形处理器及中央处理器的解映射处理,能够有效避免因为压缩和解压时导致的映射地址变化,而出现映射错误的情况,同时,在完成对于目标显示内存块进行内存块压缩处理后,能够有效减少显示内存的内存大小,减轻电子设备的运行内存压力。
在本申请的一些实施例中,在所述对所述目标应用程序对应的显示内存进行压缩处理之后,还包括:
生成压缩完成标识,所述压缩完成标识用于指示所述压缩处理完成。
在本申请实施例中,在完成对所述显示内存的压缩处理后,可以生成目标应用程序的压缩完成标识,该标识可以是特殊字符的形式,随压缩后的显示内存一同存储。
在本申请实施例中,目标应用程序的压缩完成标识,标志着已经完成对于目标应用程序的所有显示内存的压缩处理。
在完成对所述目标显示内存的压缩处理后,若目标应用程序被切换到前台运行时,对于压缩处理过的显示内存还需要进行解压处理,通过检测压缩完成标识是否存在,可以判断是否需要对该显示内存进行解压处理。
在本申请的一些实施例中,在所述生成压缩完成标识之后,还包括:
在所述目标应用程序切换至前台运行、且读取到所述压缩完成标识的情况下,对压缩处理后的所述显示内存进行解压处理。
在本申请实施例中,目标应用程序切换到前台运行,具体可以是用户通过特定输入,控制目标应用程序从后台运行切换到前台运行,也可以是系统的其它应用应用程序或者指令调用目标应用程序从后台切换到前台运行。
将目标应用程序切换到前台运行后,此时需要读取目标应用程序对应的显示内存,显示目标应用程序的相关内容,而若在此时读取到压缩完成标识的情况下,则此时说明显示目标应用程序的显示内存已经经过压缩处理过,需要进行解压处理,才能正常读取。
因此,本申请实施例中,可以对压缩处理后的显示内存进行解压处理,其具体可以采用常规的解压方式,在解压完成后,可以得到能够正常读取的显示内存。
在本申请的另一些实施例中,在此时若未读取到目标应用程序的压缩完成标识,则说明此时目标应用程序对应的显示内存未进行压缩处理,不需要进行解压。
在本申请实施例中,目标应用程序切换到前台运行的情况下,通过压缩完成标识,来进一步判断是否需要对目标应用程序对应的显示内存进行解压处理,保证显示内存的正确读取,避免目标应用程序在切换到前台运行时出现卡顿。
在本申请的一些实施例中,所述在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理,包括:
在所述第一指令队列和所述第二指令队列均为空的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
在一个可选地实施例中,该第一指令队列可以是仅用于缓存目标应用程序提交给图形处理器的渲染指令,该第二指令队列可以是仅用于缓存图形处理器正在执行的来自所述目标应用程序的渲染指令。
在所述第一指令队列不包含所述目标应用程序的渲染指令的情况下,则说明此时,第一指令队列可以为空,而第二指令队列均不包含所述目标应用程序的渲染指令的情况下,则说明第二指令队列可以为空。
而在第一指令队列和所述第二指令队列均为空的情况下,则说明,此时目标应用程序未向图形处理器提交渲染指令,并且图形处理器接收到的来自目标应用程序的渲染指令全部执行完毕,此时可以目标应用程序对应的显示内存进行压缩处理。
在本申请实施例中,第一指令队列和第二指令队列可以仅仅缓存来自目标应用程序的渲染指令,因此,在第一指令队列和第二指令队列为空的时候,目标应用程序未向图形处理器提交渲染指令,并且图形处理器接收到的来自目标应用程序的渲染指令全部执行完毕,对目标应用程序的显示内存进行压缩时,不会因为压缩显示内存,导致电子设备显示出现卡顿或者黑屏。
在一个可选地实施例中,图3为本申请实施例提供的分析流程示意图,如图3所示,包括:
步骤301,目标应用程序被切换到后台运行,此时可以开始进行分析是否需要对该应用程序的显示内存进行压缩;
步骤302,判断目标应用程序与所述图形处理器之间的渲染指令提交队列是否为空,若为空,则进入步骤303,否则,进入步骤305,退出分析流程;
步骤303,判断图形处理器的渲染指令执行队列是否为空,若为空,则进入步骤304,否则,进入步骤305,退出分析流程;
步骤304,触发对于目标应用程序对应的显示内存进行压缩处理。
在本申请实施例中,通过对于目标应用程序与所述图形处理器之间的渲染指令提交队列的分析,能够有效确定目标应用程序是否向图形处理器提交渲染指令,通过对于图形处理器的渲染指令执行队列的分析,能够有效确定图形处理器接收到的渲染指令是否全部执行完毕,保证目标显示内存压缩触发条件的准确分析。
图4为本申请实施例提供的压缩处理流程示意图,如图4所示,包括:
步骤401,压缩开始;
步骤402,判断是否完成对于N个显示内存块的遍历;若未完成对于N个显示内存块的遍历,则进入步骤403;
步骤403,通过显示内存块是否携带有不可压缩标识或者可压缩标识,来判断该内存块是否可以压缩;若该内存块不可以压缩,则回到步骤402,继续遍历下一内存块;若该内存块可以压缩,则进入步骤404;
步骤404,解除图形处理器与该显示内存块之间的内存管理单元映射;
步骤405,解除中央处理器与该显示内存块之间的内存管理单元映射;
步骤406,对该显示内存进行内存压缩处理,在完成对于该显示内存块的压缩处理后,回到步骤402,继续对下一个显示内存块进行处理;
若完成对于N个显示内存块的遍历,则进入步骤407;
步骤407,设置目标应用程序的压缩完成标识,结束压缩流程。
在本申请实施例中,依据后台应用和图形处理器运行的渲染命令队列的运行状态来决定是否压缩显示内存的方式,有效回收后台应用的显示内存,减少了电子设备的运行内存压力。
本申请实施例提供的内存处理方法,执行主体可以为内存处理装置。本申请实施例中以内存处理装置执行内存处理方法为例,说明本申请实施例提供的内存处理装置。
图5为本申请实施例提供的内存处理装置结构示意图,如图5所示,包括:
监控模块510用于在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
处理模块520用于在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
可选地,所述处理模块520,具体用于:
解除目标显示内存块与所述图形处理器之间的映射关系,并解除所述目标显示内存块与中央处理器之间的映射关系,其中,所述目标显示内存块是所述N个显示内存块中未携带有不可压缩标识的显示内存块,或者,所述目标显示内存块是所述N个显示内存块中携带有可压缩标识的显示内存块;
对所述目标显示内存块进行压缩处理。
可选地,所述装置还包括:
生成模块,用于生成压缩完成标识,所述压缩完成标识用于指示所述压缩处理完成。
可选地,所述装置还包括:
解压模块,用于在所述目标应用程序切换至前台运行、且读取到所述压缩完成标识的情况下,对压缩处理后的所述显示内存进行解压处理。
可选地,所述在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,所述处理模块,具体用于:
在所述第一指令队列和所述第二指令队列均为空的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
在本申请实施例中,在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。通过压缩目标应用程序对应的显示内存,减少目标应用程序的显示内存占用,缓解电子设备的内存不足的情况,以避免系统卡顿。
本申请实施例中的内存处理装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本或者个人数字助理(personal digital assistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personalcomputer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的内存处理装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为iOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的内存处理装置能够实现图1至图4的方法实施例实现的各个过程,为避免重复,这里不再赘述。
可选地,图6为本申请实施例提供的电子设备结构示意图,如图6所示,本申请实施例还提供一种电子设备600,包括处理器601和存储器602,存储器602上存储有可在所述处理器601上运行的程序或指令,该程序或指令被处理器601执行时实现上述内存处理方法实施例的各个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
图7为实现本申请实施例的一种电子设备的硬件结构示意图。
该电子设备700包括但不限于:射频单元701、网络模块702、音频输出单元703、输入单元704、传感器705、显示单元706、用户输入单元707、接口单元708、存储器709、以及处理器710等部件。
本领域技术人员可以理解,电子设备700还可以包括给各个部件供电的电源(比如电池),电源可以通过电源管理系统与处理器710逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。图7中示出的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,在此不再赘述。
其中,处理器710用于在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
处理器710用于在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
处理器710用于解除目标显示内存块与所述图形处理器之间的映射关系,并解除所述目标显示内存块与中央处理器之间的映射关系,其中,所述目标显示内存块是所述N个显示内存块中未携带有不可压缩标识的显示内存块,或者,所述目标显示内存块是所述N个显示内存块中携带有可压缩标识的显示内存块;
对所述目标显示内存块进行压缩处理。
处理器710用于生成压缩完成标识,所述压缩完成标识用于指示所述压缩处理完成。
处理器710用于在所述目标应用程序切换至前台运行、且读取到所述压缩完成标识的情况下,对压缩处理后的所述显示内存进行解压处理。
处理器710用于在所述第一指令队列和所述第二指令队列均为空的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
在本申请实施例中,在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。通过压缩目标应用程序对应的显示内存,减少目标应用程序的显示内存占用,缓解电子设备的内存不足的情况,以避免系统卡顿。
应理解的是,本申请实施例中,输入单元704可以包括图形处理器(GraphicsProcessing Unit,GPU)7041和麦克风7042,图形处理器7041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。显示单元706可包括显示面板7061,可以采用液晶显示器、有机发光二极管等形式来配置显示面板7061。用户输入单元707包括触控面板7071以及其他输入设备7072中的至少一种。触控面板7071,也称为触摸屏。触控面板7071可包括触摸检测装置和触摸控制器两个部分。其他输入设备7072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
存储器709可用于存储软件程序以及各种数据。存储器709可主要包括存储程序或指令的第一存储区和存储数据的第二存储区,其中,第一存储区可存储操作系统、至少一个功能所需的应用程序或指令(比如声音播放功能、图像播放功能等)等。此外,存储器709可以包括易失性存储器或非易失性存储器,或者,存储器709可以包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。本申请实施例中的存储器709包括但不限于这些和任意其它适合类型的存储器。
处理器710可包括一个或多个处理单元;可选的,处理器710集成应用处理器和调制解调处理器,其中,应用处理器主要处理涉及操作系统、用户界面和应用程序等的操作,调制解调处理器主要处理无线通信信号,如基带处理器。可以理解的是,上述调制解调处理器也可以不集成到处理器710中。
本申请实施例还提供一种可读存储介质,所述可读存储介质上存储有程序或指令,该程序或指令被处理器执行时实现上述内存处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述内存处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
本申请实施例提供一种计算机程序产品,该程序产品被存储在存储介质中,该程序产品被至少一个处理器执行以实现如上述内存处理方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。

Claims (12)

1.一种内存处理方法,其特征在于,包括:
在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
2.根据权利要求1所述的内存处理方法,其特征在于,所述目标应用程序对应的显示内存包括N个显示内存块;所述对所述目标应用程序对应的显示内存进行压缩处理,包括:
解除目标显示内存块与所述图形处理器之间的映射关系,并解除所述目标显示内存块与中央处理器之间的映射关系,其中,所述目标显示内存块是所述N个显示内存块中未携带有不可压缩标识的显示内存块,或者,所述目标显示内存块是所述N个显示内存块中携带有可压缩标识的显示内存块;
对所述目标显示内存块进行压缩处理。
3.根据权利要求1所述的内存处理方法,其特征在于,在所述对所述目标应用程序对应的显示内存进行压缩处理之后,还包括:
生成压缩完成标识,所述压缩完成标识用于指示所述压缩处理完成。
4.根据权利要求3所述的内存处理方法,其特征在于,在所述生成压缩完成标识之后,还包括:
在所述目标应用程序切换至前台运行、且读取到所述压缩完成标识的情况下,对压缩处理后的所述显示内存进行解压处理。
5.根据权利要求1所述的内存处理方法,其特征在于,所述在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理,包括:
在所述第一指令队列和所述第二指令队列均为空的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
6.一种内存处理装置,其特征在于,包括:
监控模块,用于在目标应用程序后台运行的情况下,监控第一指令队列和第二指令队列;所述第一指令队列用于缓存提交给图形处理器的渲染指令,所述第二指令队列用于缓存图形处理器执行中的渲染指令;
处理模块,用于在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
7.根据权利要求6所述的内存处理装置,其特征在于,所述目标应用程序对应的显示内存包括N个显示内存块;所述处理模块,具体用于:
解除目标显示内存块与所述图形处理器之间的映射关系,并解除所述目标显示内存块与中央处理器之间的映射关系,其中,所述目标显示内存块是所述N个显示内存块中未携带有不可压缩标识的显示内存块,或者,所述目标显示内存块是所述N个显示内存块中携带有可压缩标识的显示内存块;
对所述目标显示内存块进行压缩处理。
8.根据权利要求6所述的内存处理装置,其特征在于,所述装置还包括:
生成模块,用于生成压缩完成标识,所述压缩完成标识用于指示所述压缩处理完成。
9.根据权利要求8所述的内存处理装置,其特征在于,所述装置还包括:
解压模块,用于在所述目标应用程序切换至前台运行、且读取到所述压缩完成标识的情况下,对压缩处理后的所述显示内存进行解压处理。
10.根据权利要求6所述的内存处理装置,其特征在于,所述在所述第一指令队列和所述第二指令队列均不包含所述目标应用程序的渲染指令的情况下,所述处理模块,具体用于:
在所述第一指令队列和所述第二指令队列均为空的情况下,对所述目标应用程序对应的显示内存进行压缩处理。
11.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如权利要求1-5任一项所述的内存处理方法的步骤。
12.一种可读存储介质,其特征在于,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如权利要求1-5任一项所述的内存处理方法的步骤。
CN202310707153.9A 2023-06-14 2023-06-14 内存处理方法、装置、电子设备及存储介质 Pending CN116661697A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310707153.9A CN116661697A (zh) 2023-06-14 2023-06-14 内存处理方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310707153.9A CN116661697A (zh) 2023-06-14 2023-06-14 内存处理方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116661697A true CN116661697A (zh) 2023-08-29

Family

ID=87709512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310707153.9A Pending CN116661697A (zh) 2023-06-14 2023-06-14 内存处理方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116661697A (zh)

Similar Documents

Publication Publication Date Title
CN112231144A (zh) 一种数据处理方法、装置及电子设备
CN115357389A (zh) 内存管理方法、装置及电子设备
CN111054070A (zh) 基于游戏的商品展示方法、装置、终端及存储介质
CN111444117B (zh) 存储空间碎片化实现方法、装置、存储介质及电子设备
CN116661697A (zh) 内存处理方法、装置、电子设备及存储介质
CN114580015A (zh) 隐私处理方法、装置及电子设备
CN114070892A (zh) 数据传输方法和装置
CN114385368A (zh) 预写日志的刷写方法和装置
CN113485642A (zh) 数据缓存方法及装置
CN112684965A (zh) 动态壁纸状态变更方法、装置、电子设备及存储介质
CN113590509A (zh) 一种页交换的方法、存储系统和电子设备
CN110765377B (zh) 一种数据加载方法和装置
CN115795519B (zh) 数据加解密处理方法、装置、电子设备及存储介质
CN117270908A (zh) 升级校验方法、装置、电子设备及可读存储介质
CN117271387A (zh) 地址映射表项的更新方法、装置、电子设备及存储介质
CN117235319A (zh) 显示方法、装置、电子设备和存储介质
CN117631932A (zh) 截图方法、装置、电子设备及计算机可读存储介质
CN116088989A (zh) 应用显示方法和应用显示装置
CN117788266A (zh) 数据传输方法、装置及电子设备
CN116701142A (zh) 数据获取方法、装置、设备和存储介质
CN118134749A (zh) 数据传输速率的更新方法、装置及设备
CN116756353A (zh) 处理方法、处理装置和电子设备
CN116450439A (zh) 查找表的测试方法、装置及电子设备
CN117112111A (zh) 信息显示方法、装置及电子设备
JPH08241194A (ja) ビデオゲームシステム、情報処理装置、及びそ のソフトウエア貯蔵手段

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