CN116662222B - 缓存管理方法及相关设备 - Google Patents
缓存管理方法及相关设备 Download PDFInfo
- Publication number
- CN116662222B CN116662222B CN202211468890.XA CN202211468890A CN116662222B CN 116662222 B CN116662222 B CN 116662222B CN 202211468890 A CN202211468890 A CN 202211468890A CN 116662222 B CN116662222 B CN 116662222B
- Authority
- CN
- China
- Prior art keywords
- text data
- text
- cache
- data block
- memory
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 56
- 230000015654 memory Effects 0.000 claims abstract description 295
- 238000009877 rendering Methods 0.000 claims abstract description 93
- 238000000034 method Methods 0.000 claims abstract description 70
- 238000004140 cleaning Methods 0.000 claims abstract description 60
- 230000004044 response Effects 0.000 claims description 25
- 230000008859 change Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 40
- 230000001965 increasing effect Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 230000006854 communication Effects 0.000 description 9
- 230000001960 triggered effect Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 1
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Digital Computer Display Output (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种缓存管理方法及相关设备,所述方法包括:响应于文字渲染指令,获取待渲染文字对应的文字数据块;判断当前的文字缓存是否满足预设的缓存清理条件;若当前的文字缓存满足预设的缓存清理条件,确定待清理文字数据块的占用内存;基于待清理文字数据块的占用内存从缓存空间中获取待清理的文字数据块;将待清理的文字数据块设置为使用状态;创建后台线程,在后台线程中将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间。本申请通过创建后台线程来处理缓存清理任务,避免增加渲染线程的耗时,使得电子设备可以及时对应用程序界面进行更新显示,有效提升系统流畅度。
Description
技术领域
本申请涉及设备管理技术领域,尤其涉及一种缓存管理方法及相关设备。
背景技术
智能手机、个人电脑、智能穿戴式设备等智能终端在开启应用程序或前台应用程序界面产生更新时,需要对应用程序界面进行渲染显示。由于应用程序界面通常包括大量文字,对应用程序界面上文字的渲染会产生大量文字缓存,进而占用较大的系统缓存空间,如此,容易频繁触发系统的缓存清理机制。然而,若缓存清理任务在渲染线程中进行处理,会增加渲染线程的耗时,导致应用程序界面无法及时更新显示,造成系统卡顿,影响用户体验。
发明内容
鉴于以上内容,有必要提供一种缓存管理方法及相关设备,解决由于缓存清理任务的处理增加渲染线程的耗时而导致应用程序界面无法及时更新显示的技术问题。
第一方面,本申请提供一种缓存管理方法,所述方法包括:响应于文字渲染指令,获取待渲染文字对应的文字数据块;判断当前的文字缓存是否满足预设的缓存清理条件;若当前的所述文字缓存满足所述预设的缓存清理条件,确定待清理文字数据块的占用内存;基于所述待清理文字数据块的占用内存从缓存空间中获取待清理的文字数据块;将所述待清理的文字数据块设置为使用状态;创建后台线程,在所述后台线程中将所述待清理的文字数据块设置为未使用状态,并释放所述待清理的文字数据块占用的内存空间。
通过上述技术方案,可以减少渲染线程的耗时,使得电子设备可以及时对应用程序界面进行更新显示,有效提升系统流畅度。
在一种可能的实现方式中,所述将所述待清理的文字数据块设置为使用状态包括:设置共享指针以指向所述待清理的文字数据块的存储地址,使得所述共享指针引用所述待清理的文字数据块。
通过上述技术方案,可以通过设置共享指针将待清理的文字数据块设置为使用状态,设置简单方便,使得待清理的文字数据块在创建了后台线程之后再进行清理,有效避免缓存清理操作在渲染线程中执行,减少渲染线程的耗时,使得电子设备可以及时对应用程序界面进行更新显示,有效提升系统流畅度。
在一种可能的实现方式中,所述创建后台线程,在所述后台线程中将所述待清理的文字数据块设置为未使用状态,并释放所述待清理的文字数据块占用的内存空间包括:创建所述后台线程,并将所述待清理的文字数据块设置为未使用状态的操作和释放所述待清理的文字数据块占用的内存空间的操作加入所述后台线程的任务队列;运行所述后台线程,将所述待清理的文字数据块设置为未使用状态,并释放所述待清理的文字数据块占用的内存空间。
通过上述技术方案,在后台线程创建完成之后,将待清理的文字数据块设置为未使用状态,使得待清理的文字数据块可以在后台线程中进行清理,避免缓存清理操作在渲染线程中执行,减少渲染线程的耗时,使得电子设备可以及时对应用程序界面进行更新显示,有效提升系统流畅度。
在一种可能的实现方式中,所述将所述待清理的文字数据块设置为未使用状态的操作为对所述共享指针的重置操作。
通过上述技术方案,可以对所述共享指针的重置操作而方便地将待清理的文字数据块设置为未使用状态,使得文字数据块的清理操作可以在后台线程中执行。
在一种可能的实现方式中,所述方法还包括:将获取的所述文字数据块对应的数据单元的描述符作为键,指向所述文字数据块的所述共享指针作为值记录在哈希表中,其中,所述数据单元与所述文字数据块一一对应,用于记录所述文字数据块的属性。
通过上述技术方案,可以将文字数据块对应的数据单元和指向文字数据块的共享指针以键值对的形式记录在哈希表中,便于系统调用文字数据块进行渲染。
在一种可能的实现方式中,所述方法还包括:在所述哈希表中删除与所述待清理的文字数据块关联的记录。
通过上述技术方案,使得指向待清理的文字数据块的共享指针可以被重置,便于将待清理的文字数据块设置为未使用状态,使得待清理文字数据块占用的内存空间可以被释放,有效提高缓存清理效率。
在一种可能的实现方式中,所述在所述哈希表中删除与所述待清理的文字数据块关联的记录包括:确定所述待清理的文字数据块对应的数据单元的描述符,在所述哈希表中识别以所述描述符作为键的键值对记录,将所述描述符对应的键值对记录删除。
通过上述技术方案,可以在哈希表中快速确定待清理的文字数据块关联的记录,使得该记录可以被及时删除,有效提高缓存清理效率。
在一种可能的实现方式中,所述响应于文字渲染指令,获取待渲染文字对应的文字数据块包括:响应于显示界面的变化,产生渲染指令;响应于所述渲染指令,判断待渲染的显示界面是否包含文字;若所述待渲染的显示界面包含文字,产生所述文字渲染指令,并响应于所述文字渲染指令,创建或查找所述待渲染文字对应的文字数据块。
通过上述技术方案,可以在触发显示界面的渲染时,判断显示界面是否包含文字,在确定显示界面包含文字时,创建或查找待渲染文字对应的文字数据块,使得创建或查找的文字数据块符合场景需求。
在一种可能的实现方式中,所述响应于所述渲染指令,判断待渲染的显示界面是否包含文字包括:响应于所述渲染指令,获取所述待渲染的显示界面中每个窗口的内容,识别每个窗口的内容是否包含文字;若任一窗口的内容包含文字,确定所述待渲染的显示界面包含文字;或若所有窗口的内容都不包含文字,确定所述待渲染的显示界面不包含文字。
通过上述技术方案,可以通过识别待渲染界面中每个窗口的内判断窗口内是否包含文字,从而提高判断精确度。
在一种可能的实现方式中,所述创建或查找所述待渲染文字对应的文字数据块包括:获取所述待渲染的显示界面中的至少一个文字,查找所述缓存空间是否包含所述至少一个文字所对应的文字数据块;若查找到所述缓存空间包含所述至少一个文字所对应的文字数据块,从所述缓存空间获取所述至少一个文字所对应的文字数据块;或若未查找到所述缓存空间包含任一文字所对应的文字数据块,基于待渲染的所述任一文字的属性,创建所述任一文字对应的文字数据块。
通过上述技术方案,可以在缓存空间中包含待渲染文字的文字数据块时,直接返回查找到的文字数据块,在缓存空间中不包含待渲染文字的文字数据块时,及时创建待渲染文字的文字数据块,保证获取每个待渲染文字的文字数据块,提高界面渲染的精度和效率。
在一种可能的实现方式中,所述判断当前的文字缓存是否满足预设的缓存清理条件包括:当在所述缓存空间中查找到所述待渲染文字对应的文字数据块时,或当创建得到所述待渲染文字对应的文字数据块,将创建的文字数据块写入缓存空间后,判断当前的所述缓存空间中文字数据块的占用内存是否大于或等于内存阈值;若当前的所述缓存空间中文字数据块的占用内存大于或等于所述内存阈值,确定当前的文字缓存满足所述预设的缓存清理条件;或若当前的所述缓存空间中文字数据块的占用内存小于所述内存阈值,确定当前的文字缓存不满足所述预设的缓存清理条件。
通过上述技术方案,可以精确地确定缓存清理条件,使得缓存空间在溢出时可以及时被清理,保障系统稳定、流畅运行。
在一种可能的实现方式中,所述确定待清理文字数据块的占用内存包括:若当前的所述缓存空间中文字数据块的占用内存大于或等于所述内存阈值,确定当前的所述缓存空间中文字数据块的占用内存与所述内存阈值的内存差值;判断所述内存差值是否大于预设的文字缓存内存空间;若所述内存差值大于所述预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为所述内存差值;或若所述内存差值小于或等于所述预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间。
通过上述技术方案,可以确保溢出的缓存空间可以被有效地清理,保障系统稳定、流畅运行。
在一种可能的实现方式中,所述基于所述待清理文字数据块的占用内存从缓存空间中获取待清理的文字数据块包括:从所述缓存空间中逐一获取写入时间最早且处于未使用状态的文字数据块,作为所述待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存。
通过上述技术方案,可以将写入时间长且未被使用的文字数据块作为待清理的文字数据块,避免文字数据块的清理影响系统的正常运行。
在一种可能的实现方式中,所述基于所述待清理文字数据块的占用内存从缓存空间中获取待清理的文字数据块包括:从所述缓存空间中逐一获取空闲时间最长的文字数据块,作为所述待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存。
通过上述技术方案,可以将使用频率较低的文字数据块作为待清理的文字数据块,避免文字数据块的清理影响系统的正常运行。
在一种可能的实现方式中,所述方法还包括:响应于对应用程序的预设操作,释放所述缓存空间中所述应用程序的文字数据块占用的内存空间。通过上述技术方案,可以用户未使用应用程序时,将所述应用程序中的文字数据块占用的缓存空间释放,避免缓存空间溢出,保障系统稳定、流畅运行。
在一种可能的实现方式中,所述文字数据块用于记录所述待渲染文字的属性。通过上述技术方案,可以通过文字数据块预先记录待渲染文字的属性,从而提高界面渲染过程中文字的渲染效率。
第二方面,本申请提供一种电子设备,所述电子设备包括存储器和处理器:其中,所述存储器,用于存储程序指令;所述处理器,用于读取并执行所述存储器中存储的所述程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行上述的缓存管理方法。
第三方面,本申请提供一种芯片,与电子设备中的存储器耦合,所述芯片用于控制所述电子设备执行上述的缓存管理方法。
第四方面,本申请提供一种计算机存储介质,所述计算机存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行上述的缓存管理方法。
另外,第二方面至第四方面所带来的技术效果可参见上述方法部分各设计的方法相关的描述,此处不再赘述。
本申请实施例提供的缓存管理方法及相关设备,通过创建后台线程来处理缓存清理任务,无需在渲染线程中对缓存清理任务进行处理,从而避免增加渲染线程的耗时,同时,文字缓存清理后,系统缓存空间占用量降低,渲染线程可以及时进行新文字的渲染,使得电子设备可以及时对应用程序界面进行更新显示,有效提升系统流畅度,从而提升用户体验。
附图说明
图1A是本申请一实施例提供的电子设备的显示界面的示意图。
图1B是本申请一实施例提供的电子设备的另一显示界面的示意图。
图1C是本申请一实施例提供的电子设备的另一显示界面的示意图。
图2是本申请一实施例提供的文字缓存清理过程的流程图。
图3是本申请一实施例提供的电子设备的软件架构图。
图4是本申请一实施例提供的缓存管理方法的流程图。
图5是本申请一实施例提供的响应于文字渲染指令产生文字数据块的流程图。
图6是本申请一实施例提供的缓存空间中文字数据块的状态示意图。
图7是本申请一实施例提供的创建后台线程,并在后台线程中释放待清理的文字数据块占用的内存空间的流程图。
图8是本申请一实施例提供的后台线程的示意图。
图9是本申请另一实施例提供的缓存管理方法的流程图。
图10是本申请另一实施例提供的缓存管理方法的流程图。
图11是本申请另一实施例提供的缓存管理方法的流程图。
图12是本申请一实施例提供的释放文字数据块占用的内存空间的流程图。
图13是本申请一实施例提供的电子设备的硬件架构图。
具体实施方式
为了便于理解,示例性的给出了部分与本申请实施例相关概念的说明以供参阅。
需要说明的是,本申请实施例中所涉及的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请中的技术领域的技术人员通常理解的含义相同。本申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。应理解,本申请中除非另有说明,“/”表示或的意思。例如,A/B可以表示A或B。本申请中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B三种情况。“至少一个”是指一个或者多个。“多个”是指两个或多于两个。例如,a、b或c中的至少一个,可以表示:a,b,c,a和b,a和c,b和c,a、b和c七种情况。
本申请实施例中的用户界面(User Interface,UI),是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,可实现信息的内部形式与用户可以接受形式之间的转换。应用程序的用户界面是通过JAVA、可扩展标记语言(Extensible MarkupLanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析、渲染,最终呈现为用户可以识别的内容,比如图片、文字、按钮等控件。控件(control),是用户界面的基本元素,典型的控件有按钮(button)、小工具(widget)、工具栏(toolbar)、菜单栏(menu bar)、文本框(text box)、滚动条(scrollbar)、图片(image)和文本(text)。界面中的控件的属性和内容是通过标签或者节点来定义的,比如XML通过<Textview>、<ImgView>、<VideoView>等节点来规定界面所包含的控件。一个节点对应界面中一个控件或属性,节点经过解析和渲染之后呈现为用户可视的内容。此外,很多应用程序,比如混合应用(hybridapplication)的界面中通常还包含有网页。网页,也称为页面,可以理解为内嵌在应用程序界面中的一个特殊的控件,网页是通过特定计算机语言编写的源代码,例如超文本标记语言(Hyper Text Markup Language,HTML),层叠样式表(Cascading Style Sheets,CSS),JAVA脚本(JavaScript,JS)等,网页源代码可以由浏览器或与浏览器功能类似的网页显示组件加载和显示为用户可识别的内容。网页所包含的具体内容也是通过网页源代码中的标签或者节点来定义的,比如HTML通过<p>、<img>、<video>、<canvas>来定义网页的元素和属性。
用户界面常用的表现形式是图形用户界面(Graphic User Interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素。
在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
智能手机、个人电脑、智能穿戴式设备等智能终端在开启应用程序或前台应用程序界面产生更新时,需要对应用程序界面进行渲染显示。由于应用程序界面通常包括大量文字,对应用程序界面上文字的渲染会产生大量文字缓存,进而占用较大的系统缓存空间,如此,容易频繁触发系统的缓存清理机制。然而,若缓存清理任务在渲染线程中进行处理,会增加渲染线程的耗时,导致应用程序界面无法及时更新显示,造成系统卡顿,影响用户体验。
为了避免缓存清理任务的处理会增加渲染线程的耗时,从而导致应用程序界面无法及时更新显示,本申请实施例提供一种缓存管理方法,通过创建后台线程来处理缓存清理任务,使得缓存清理任务无需在渲染线程中进行处理,渲染线程可以及时进行新文字的渲染,使得电子设备可以及时对应用程序界面进行更新显示。
为了更好地理解本申请实施例提供的缓存管理方法,下面结合图1A、图1B、图1C对本申请实施例的缓存管理方法的应用场景进行描述。
参阅图1A所示,电子设备的桌面通常显示有多个应用程序的图标,用户可以对图标执行触控操作,对应用程序进行冷启动或热启动。其中,冷启动是指在应用程序未处于前台运行状态,后台也没有应用程序进程的情况下,对应用程序的启动。热启动是指在应用程序未处于前台运行状态,但后台有应用程序进程的情况下,对应用程序的启动。为了优化用户的视觉体验,在启动应用程序的过程中,可以给应用程序的图标及图标下方的文字(即应用程序名称)增加缩放的动态效果。在生成缩放动态效果时,需要对应用程序的图标及文字进行渲染。
参阅图1B所示,当用户对应用程序图标进行触控时,即,用户的手指接触应用程序图标对应的显示屏区域并且尚未离开时,应用程序的图标的动态效果为图标的亮度相较于显示屏其他区域的亮度变暗,应用程序的文字的动态效果为文字的尺寸(例如字号)相较于初始尺寸变小。此时,在对当前界面进行渲染时,操作系统产生相应的文字缓存,对尺寸变小的文字进行渲染。
参阅图1C所示,当用户结束对应用程序图标的触控时,即,用户的手指离开应用程序图标对应的显示屏区域,应用程序的图标及文字的动态效果为图标及文字的尺寸(例如图标的大小、文字的字号等)逐渐增大。此时,操作系统产生相应的文字缓存,对不同字号的文字进行渲染。
当操作系统确定文字的动态效果后,对文字进行渲染时,需要将文字缓存写入系统的缓存空间或者需要在缓存空间中查找是否存在待渲染文字对应的文字缓存。然而,系统的缓存空间中文字缓存占用的内存通常具有预先设置的上限,在待写入的文字缓存需要占用的内存与当前缓存空间已被文字缓存占用的内存之和上限时,或者查找到待渲染文字对应的文字缓存后,判定当前缓存空间已被文字缓存占用的内存超出上限时,为了继续写入文字缓存或者返回查找得到的文字缓存,需要触发缓存清理机制,对当前缓存空间中的文字缓存进行清理,以减少当前缓存空间被文字缓存占用的内存。
参阅图2所示,在触发文字缓存清理操作后,将缓存清理任务加入渲染线程,在哈希表中删除待清理的文字数据(图2中strike表示文字数据块),再释放缓存空间中文字数据对应的文字缓存占用的内存。此时,如果将缓存清理任务加入渲染线程,渲染线程在缓存清理任务执行结束后,才能将新的文字缓存写入系统的缓存空间,再对应用程序界面上的文字和其他内容进行渲染。在渲染线程中,缓存清理任务的执行会增加渲染线程的耗时,导致待显示的应用程序界面无法及时绘制、渲染和显示,造成系统卡顿,从而影响用户的使用体验。
参阅图3所示,为本申请实施例提供的电子设备的软件架构图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。例如,将安卓系统分为四层,从上至下分别为应用程序层101,框架层102,安卓运行时(Androidruntime)和系统库103,硬件抽象层104,内核层105。
应用程序层可以包括一系列应用程序包。例如,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,设备控制服务等应用程序。
框架层为应用程序层的应用程序提供应用编程接口(Application ProgrammingInterface,API)和编程框架。应用程序框架层包括一些预先定义的函数。例如,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
其中,窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和框架层运行在虚拟机中。虚拟机将应用程序层和框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如,表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如SGL)等。
其中,表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
内核层是电子设备的操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统最基本的功能,是操作系统工作的基础,负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定了系统的性能和稳定性。例如,内核可以决定一个应用程序对某部分硬件的操作时间。
内核层包括与硬件紧密相关的程序,例如中断处理程序、设备驱动程序等,还包括基本的、公共的、运行频率较高的模块,例如时钟管理模块、进程调度模块等,还包括关键性的数据结构。内核层可以设置于处理器中,或固化在内部存储器。
参阅图4所示,为本申请一实施例提供的缓存管理方法的流程图。所述方法应用于电子设备中,所述缓存管理方法包括:
S101,响应于文字渲染指令,获取待渲染文字对应的文字数据块。
在本申请的一实施例中,响应于文字渲染指令,产生文字数据块的细化流程如图5所示,具体包括:
S1011,响应于显示界面的变化,产生渲染指令。
在本申请的一实施例中,硬件抽象层104包括绘制渲染服务(SurfaceFlinger)1041。响应于显示界面的变化,产生绘制渲染指令包括:响应于用户的触控操作触发的显示界面变化或自动触发的显示界面变化,应用程序发送渲染请求指令至绘制渲染服务1041,绘制渲染服务1041响应于渲染请求指令,发送渲染信号至应用程序,应用程序响应于渲染信号,产生渲染指令。其中,渲染信号可以为vsync信号。
在本申请的一实施例中,在显示界面产生变化时,需要将变化后的显示界面通过显示屏呈现给用户,即,应用程序需要对变化后的显示界面进行绘制渲染,为了触发绘制渲染流程,需要产生渲染请求指令,以请求渲染信号。例如,用户的触控操作可以包括单击应用程序图标开启应用程序的操作、通过上下滑动显示屏使得应用程序界面滚动显示的操作、通过左右滑动显示屏切换应用程序界面的操作。以上触控操作可以触发显示界面变化,应用程序响应于触控操作,产生绘制请求指令。
又如,在显示界面包含自动切换或滚动显示的内容时,或者在用户使用电子设备播放视频或玩游戏时,显示界面的变化可以自动触发,进而产生渲染请求指令。
S1012,响应于渲染指令,判断待渲染的显示界面是否包含文字。若待渲染的显示界面包含文字,流程进入S1013;若待渲染的显示界面不包含文字,流程返回S1011。
在本申请的一实施例中,响应于渲染指令,判断待渲染的显示界面是否包含文字包括:响应于渲染指令,获取待渲染的显示界面中每个窗口的内容,识别每个窗口的内容是否包含文字,若任一窗口的内容包含文字,确定待渲染的显示界面包含文字,若所有窗口的内容都不包含文字,确定待渲染的显示界面不包含文字。
由于本申请的实施例侧重描述对文字渲染过程中产生的文字缓存进行处理,对其他内容例如图形等的渲染非本实施例的重点,因此,在确定待渲染的显示界面不包含文字时,不对其他内容的渲染进行详细说明,流程返回S1011,继续侦测显示界面的变化,并在待渲染的显示界面中包括文字时才执行后续的流程。
S1013,产生文字渲染指令,并响应于文字渲染指令,创建或查找待渲染文字对应的文字数据块。
在本申请的一实施例中,在电子设备中,文字数据块为strike,记录有一个文字的属性,文字的属性可以包括文字内容、字号、颜色等,每个文字数据块与一个文字对应。例如,如图1A所示,阅读应用程序名称中的“阅”字和“读”字分别对应一个文字数据块,“阅”字对应的文字数据块记录有文字内容“阅”以及“阅”字的字号、颜色。
在本申请的一实施例中,创建或查找待渲染文字对应的文字数据块包括:获取待渲染的显示界面中的至少一个文字,查找缓存空间是否包含待渲染的显示界面中的至少一个文字所对应的文字数据块,若查找到缓存空间包含待渲染的显示界面中的至少一个文字所对应的文字数据块,从缓存空间获取待渲染的显示界面中的至少一个文字所对应的文字数据块;若未查找到缓存空间包含待渲染的显示界面中的任一文字所对应的文字数据块,基于待渲染的所述任一文字的属性,创建所述任一文字对应的文字数据块,即,创建的文字数据块具有待渲染的所述任一文字的属性。
例如,如图1C所示,在响应于文字渲染指令、对图1C的界面中的“阅读”两个字进行渲染时,若未查找到电子设备的缓存空间中存储有“阅”字和“读”字所对应的文字数据块,则基于待渲染的“阅”字的属性创建“阅”字对应的文字数据块,基于待渲染的“读”字的属性创建“读”字对应的文字数据块。
S102,判断当前的文字缓存是否满足预设的缓存清理条件。若当前的文字缓存满足预设的缓存清理条件,流程进入S103;若当前的文字缓存不满足预设的缓存清理条件,流程返回S101。
在文字渲染的过程中,基于待渲染的文字创建文字数据块后,需要将创建的文字数据块写入电子设备的缓存空间,使得文字数据块在缓存空间中形成文字缓存,并从缓存空间中获取文字数据块,基于文字数据块进行文字渲染。或者,当在缓存空间中查找到待渲染文字对应的文字数据块时,从缓存空间中获取文字数据块,基于文字数据块进行文字渲染。此外,在获取文字数据块后,还将文字的操作数据写入对应的文字数据块,文字的操作数据可以包括图像数据、移动路径数据等。例如,当需要给文字数据块对应的文字设置图像时,或当文字数据块对应的文字需要随着显示界面的滑动而进行移动时,文字的图像数据和移动路径数据都会写入文字对应的文字数据块中,使得文字数据块在缓存空间中的占用内存增加。因此,在文字数据块中写入对应文字的操作数据时,也判断当前的文字缓存是否满足预设的缓存清理条件,并基于当前的文字缓存满足预设的缓存清理条件而触发文字缓存的清理操作。
在本申请的一实施例中,判断当前的文字缓存是否满足预设的缓存清理条件包括:当在缓存空间中查找到待渲染文字对应的文字数据块时,或当创建得到待渲染文字对应的文字数据块,将创建的文字数据块写入缓存空间后,判断当前的缓存空间中文字数据块的占用内存是否大于或等于内存阈值,若当前的缓存空间中文字数据块的占用内存大于或等于内存阈值,确定当前的文字缓存满足预设的缓存清理条件;若当前的缓存空间中文字数据块的占用内存小于内存阈值,确定当前的文字缓存不满足预设的缓存清理条件。其中,内存阈值为缓存空间中文字缓存占用内存的上限,可以为16777216B。在其他实施例中,内存阈值也可以根据需求设置为其他合适的数值。
若当前的文字缓存不满足预设的缓存清理条件,可确定电子设备当前的缓存空间充足,无需执行文字缓存的清理,流程返回至S101,继续侦测文字渲染指令。
S103,确定待清理文字数据块的占用内存。
在本申请的一实施例中,确定待清理文字数据块的占用内存包括:若当前的缓存空间中文字数据块的占用内存大于或等于内存阈值,确定当前的缓存空间中文字数据块的占用内存与内存阈值的内存差值,即,确定当前的缓存空间中文字数据块的占用内存超出内存阈值的部分,判断内存差值是否大于预设的文字缓存内存空间,若内存差值大于预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为内存差值;若内存差值小于或等于预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间。其中,预设的文字缓存内存空间为当前缓存空间中文字数据块占用内存的四分之一。在其他实施例中,预设的文字缓存内存空间也可以根据需求设置为其他合适的数值。
本申请实施例的缓存清理机制为当缓存空间中文字数据块的占用内存超出上限时,至少释放文字数据块占用内存的四分之一的内存空间,可以确保创建的或者查找到的文字数据块可以返回给绘制渲染服务,并且避免缓存空间溢出。
S104,基于待清理文字数据块的占用内存从缓存空间中获取待清理的文字数据块。
在本申请的一实施例中,从缓存空间中获取待清理的文字数据块包括:从缓存空间中逐一获取写入时间最早且未处于使用状态的文字数据块,作为待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存。
参阅图6所示,为本申请实施例提供的缓存空间中文字数据块的状态示意图。文字数据块基于时间顺序依次写入缓存空间,多个文字数据块按写入缓存空间的时间顺序排列,最早写入的文字数据块在队列尾部,从尾部获取可被清理的文字数据块。例如,在缓存空间中,写入时间最早的是文字数据块A,然而文字数据块A处于使用状态,不能被清理;除了文字数据块A,写入时间最早的是文字数据块B,并且文字数据块B处于未使用状态,可以被清理;除了文字数据块A和B,写入时间最早的是文字数据块C,并且文字数据块C处于未使用状态,可以被清理。基于以上规则在缓存空间中逐一获取写入时间最早且处于未使用状态的文字数据块,作为待清理的文字数据块。
在本申请的另一实施例中,从缓存空间中获取待清理的文字数据块包括:从缓存空间中逐一获取空闲时间最长的文字数据块,作为待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存。其中,空闲时间最长的文字数据块为持续未被使用的时间最长的文字数据块。
S105,将待清理的文字数据块设置为使用状态。
在本申请的一实施例中,将待清理的文字数据块设置为使用状态包括:触发缓存清理操作,设置共享指针以指向待清理的文字数据块的存储地址,使得共享指针引用待清理的文字数据块,从而将待清理的文字数据块设置为使用状态。其中,待清理的文字数据块的存储地址为待清理的文字数据块在缓存空间中的存储地址。
S106,创建后台线程,在后台线程中将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间。
在本申请的一实施例中,创建后台线程,并在后台线程中将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间的细化流程如图7所示,具体包括:
S1061,在哈希表中删除与待清理的文字数据块关联的记录。
在本申请的一实施例中,每个文字数据块对应一个数据单元StrikeSpec,数据单元用于记录该文字数据块的属性,每个数据单元有对应的描述符,在文字渲染的过程中,获取待渲染的文字对应的文字数据块后,将文字数据块对应的数据单元的描述符作为键key,指向该文字数据块的共享指针作为值value记录在哈希表中,即,文字数据块对应的数据单元和指向该文字数据块的共享指针以键值对的形式记录在哈希表中。
在本申请的一实施例中,在哈希表中删除与待清理的文字数据块关联的记录包括:确定待清理的文字数据块对应的数据单元的描述符,在哈希表中识别以该描述符作为key的记录,得到待清理的文字数据块关联的记录,将该描述符对应的键值对(即key和value)记录删除,从而删除与待清理的文字数据块关联的记录。
S1062,创建后台线程,并将待清理的文字数据块设置为未使用状态的操作和释放待清理的文字数据块占用的内存空间的操作加入后台线程的任务队列。
参阅图8所示,为本申请一实施例提供的后台线程的示意图。在本申请的一实施例中,通过Runnable接口、Callable接口或Future接口创建后台线程。将待清理的文字数据块设置为未使用状态的操作为对共享指针的重置操作,用于对共享指针进行重置,将待清理的文字数据块设置为未使用状态,使得文字数据块可以被清理。
S1063,运行后台线程,将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间。
在本申请的一实施例中,运行后台线程,执行后台线程的任务队列中的任务,首先执行对共享指针的重置操作,对共享指针进行重置,从而将待清理的文字数据块设置为未使用状态。然后执行释放待清理的文字数据块占用的内存空间的操作,将待清理的文字数据块从缓存空间删除,从而释放待清理的文字数据块占用的内存空间。
具体地,待清理的文字数据块对应的数据单元的描述符和指向该文字数据块的共享指针的键值对记录删除后,将指向该文字数据块的共享指针重置。将该共享指针重置后,该共享指针指向的文字数据块处于未被引用的状态,即,处于未被使用的状态,因此,该文字数据块的占用内存可以被释放。
在本申请的一实施例中,在将共享指针的重置操作和释放待清理的文字数据块占用内存空间的操作加入后台线程的任务队列后的预设时间之后,运行后台线程,释放待清理的文字数据块占用的内存空间。其中,预设时间为1秒。在其他实施例中,预设时间也可以根据需求设置为其他合适的时间。
在本申请的另一实施例中,还可以通过处理器的小核对后台线程进行处理,以减少设备功耗,实现缓存清理的多核调度。
在本申请的另一实施例中,缓存管理方法还包括:响应于对应用程序的预设操作,释放缓存空间中应用程序的文字数据块占用的内存空间。其中,对应用程序的预设操作可以是关闭应用程序或将应用程序设置为后台运行。
如图2所示,在原有的文字缓存清理机制中,触发文字缓存的清理操作时,从哈希表中删除与待清理的文字数据块关联的记录后,会立即释放待清理文字数据块的占用内存,如此,文字缓存的清理操作仍然会在渲染线程中执行。因此,在本申请实施例中,在确定了待清理的文字数据块后,通过共享指针将待清理的文字数据块设置为使用状态,处于使用状态的文字数据块无法被清理,如此,可以在创建后台线程,并将待清理的文字数据块设置为未使用状态的操作和释放待清理的文字数据块占用的内存空间的操作加入后台线程的任务队列后,执行后台线程的任务,从而释放待清理的文字数据块占用的内存空间。
参阅图9所示,为本申请另一实施例提供的缓存管理方法的流程图。所述方法应用于电子设备中,所述缓存管理方法包括:
S201,响应于文字渲染指令,获取待渲染文字对应的文字数据块。
S202,判断当前的文字缓存是否满足预设的缓存清理条件。若当前的文字缓存满足预设的缓存清理条件,流程进入S203;若当前的文字缓存不满足预设的缓存清理条件,流程返回S201。
S203,确定待清理文字数据块的占用内存。
S204,从缓存空间中获取待清理的一文字数据块。
在本申请的所述另一实施例中,从缓存空间中获取待清理的一文字数据块包括:从缓存空间中获取写入时间最早且处于未使用状态的文字数据块。
S205,将待清理的文字数据块设置为使用状态。
S206,创建后台线程,在后台线程中将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间。
S207,判断已释放的内存空间是否达到待清理文字数据块的占用内存。若已释放的内存空间达到待清理文字数据块的占用内存,流程返回S201;若已释放的内存空间未达到待清理文字数据块的占用内存,流程返回S204。
步骤S201-S203、S205-S206的具体实施方式与步骤S101-S103、S105-S106的具体实施方式相同,在此不作赘述。
参阅图10所示,为本申请另一实施例提供的缓存管理方法的流程图。所述方法应用于电子设备中,所述缓存管理方法包括:
S301,响应于文字渲染指令,获取待渲染文字对应的文字数据块。
S302,判断当前的文字缓存是否满足预设的缓存清理条件。若当前的文字缓存满足预设的缓存清理条件,流程进入S303;若当前的文字缓存不满足预设的缓存清理条件,流程返回S301。
在本申请的所述另一实施例中,判断当前的文字缓存是否满足预设的缓存清理条件包括:当在缓存空间中查找到待渲染文字对应的文字数据块时,或当创建得到待渲染文字对应的文字数据块,将创建的文字数据块写入缓存空间后,判断当前的缓存空间中文字数据块的占用内存是否大于或等于内存阈值,以及判断当前的缓存空间中文字数据块的数量是否大于或等于数量阈值,若当前的缓存空间中文字数据块的占用内存大于或等于内存阈值,及/或当前的缓存空间中文字数据块的数量大于或等于数量阈值,确定当前的文字缓存满足预设的缓存清理条件;若当前的缓存空间中文字数据块的占用内存小于内存阈值,且当前的缓存空间中文字数据块的数量小于数量阈值,确定当前的文字缓存不满足预设的缓存清理条件。
若当前的文字缓存不满足预设的缓存清理条件,可确定电子设备系统当前的缓存空间充足,无需执行文字缓存的清理,流程返回至S301,继续侦测文字渲染指令。
S303,确定待清理文字数据块的占用内存及/或数量。
在本申请的所述另一实施例中,确定待清理文字数据块的占用内存及/或数量包括:若当前的缓存空间中文字数据块的占用内存大于或等于内存阈值,确定当前的缓存空间中文字数据块的占用内存与内存阈值之间的内存差值,即,确定当前的缓存空间中文字数据块的占用内存超出内存阈值的部分,判断内存差值是否大于预设的文字缓存内存空间,若内存差值大于预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为内存差值;若内存差值小于或等于预设的文字缓存内存空间,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间。其中,预设的文字缓存内存空间为当前缓存空间中文字数据块占用内存的四分之一。在其他实施例中,预设的文字缓存内存空间也可以根据需求设置为其他合适的数值。
在本申请的所述另一实施例中,确定待清理文字数据块的占用内存及/或数量还包括:若当前的缓存空间中文字数据块的数量大于或等于数量阈值,确定当前的缓存空间中文字数据块的数量与数量阈值之间的数量差值,即,确定当前的缓存空间中超出数量阈值的文字数据块数量,判断数量差值是否大于预设的文字数据块数量,若数量差值大于预设的文字数据块数量,确定待清理的文字数据块数量至少为数量差值;若数量差值小于或等于预设的文字数据块数量,确定待清理的文字数据块数量至少为预设的文字数据块数量。其中,预设的文字数据块数量为当前缓存空间中文字数据块总数量的四分之一。在其他实施例中,预设的文字数据块数量也可以根据需求设置为其他合适的数值。
在本申请的所述另一实施例中,确定待清理文字数据块的占用内存及/或文字数据块数量还包括:若当前的缓存空间中文字数据块的占用内存大于或等于内存阈值,且当前的缓存空间中文字数据块的数量大于或等于数量阈值,确定当前的缓存空间中文字数据块的占用内存与内存阈值之间的内存差值,即,确定当前的缓存空间中文字数据块的占用内存超出内存阈值的部分;确定当前的缓存空间中文字数据块的数量与数量阈值之间的数量差值,即,确定当前的缓存空间中超出数量阈值的文字数据块数量;判断内存差值是否大于预设的文字缓存内存空间,以及判断数量差值是否大于预设的文字数据块数量;若内存差值大于预设的文字缓存内存空间,且数量差值大于预设的文字数据块数量,确定待清理文字数据块的占用内存至少为内存差值,及确定待清理的文字数据块数量至少为数量差值;若内存差值大于预设的文字缓存内存空间,且数量差值小于或等于预设的文字数据块数量,确定待清理文字数据块的占用内存至少为内存差值,及确定待清理的文字数据块数量至少为预设的文字数据块数量;若内存差值小于或等于预设的文字缓存内存空间,且数量差值大于预设的文字数据块数量,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间,及确定待清理的文字数据块数量至少为数量差值;若内存差值小于或等于预设的文字缓存内存空间,且数量差值小于或等于预设的文字数据块数量,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间,及确定待清理的文字数据块数量至少为预设的文字数据块数量。
在本申请的所述另一实施例中,当确定待清理文字数据块的占用内存至少为内存差值,及确定待清理文字数据块的数量至少为数量差值时,若内存差值大于或等于数量差值对应数量的待清理文字数据块的占用内存,则待清理文字数据块的数量大于数量差值,以满足清理的文字数据块的占用内存至少为内存差值;若数量差值大于或等于内存差值的占用内存对应的待清理文字数据块的数量,则待清理文字数据块的占用内存大于内存差值,以满足清理的文字数据块的数量至少为数量差值。也就是说,实际清理的文字数据块需同时满足占用内存的清理条件和数量的清理条件。
例如,数量阈值为2048,内存阈值为16777216B,在初始状态下,缓存空间中文字缓存占用内存为16777000B,文字缓存的数量为293。创建了1个占用内存为300B的文字数据块后,若将创建的文字数据块写入缓存空间,文字缓存占用内存为16777300B,文字缓存的数量为294。此时,内存占用超出84B(即文字缓存占用内存相较于内存阈值超出了84B),当前已占用内存的四分之一为4194325B,显然,超出的内存小于预设的文字缓存内存空间,因此,确定待清理文字数据块的占用内存至少为预设的文字缓存内存空间,即,释放文字缓存占用内存中4194325B的内存空间。最终释放了132个文字缓存,这132个文字缓存对应4416193B的空间,释放后,文字缓存占用内存为12361107B,文字缓存的数量为162。
再例如,数量阈值为2048,内存阈值为16777216B,在初始状态下,缓存空间中文字缓存占用内存为16000000B,文字缓存的数量为293。给某些文字数据块添加了图像后,占用内存增长为25000000B,文字缓存的数量仍为293。查找得到文字缓存后确定内存占用超出8222784B(即文字缓存占用内存相较于内存阈值超出了8222784B),当前已占用内存的四分之一为6250000B,显然,超出的内存大于预设的文字缓存内存空间,因此,确定待清理文字数据块的占用内存至少为超出的文字缓存内存空间,即,释放文字缓存占用内存中8222784B的内存空间。最终释放了250个文字缓存,这250个文字缓存对应8230000B的空间,释放后,文字缓存占用内存为16770000B,文字缓存的数量为43。
根据以上举例,本申请实施例的缓存清理机制为当缓存空间中文字数据块的占用内存超出上限时,至少释放文字数据块占用内存的四分之一的内存空间,当缓存空间中文字数据块的数量超出上限时,至少释放四分之一数量的文字数据块占用的内存空间,可以确保创建的或查找到的文字数据块可以返回给绘制渲染服务,并且避免缓存空间溢出。
S304,基于待清理文字数据块的占用内存及/或数量从缓存空间中获取待清理的文字数据块。
在本申请的所述另一实施例中,从缓存空间中获取待清理的文字数据块包括:从缓存空间中逐一获取写入时间最早且未处于使用状态的文字数据块,作为待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存,及/或获取的所有待清理的文字数据块数量大于或等于确定的待清理的文字数据块的数量。
在本申请的其他实施例中,从缓存空间中获取待清理的文字数据块包括:从缓存空间中逐一获取空闲时间最长的文字数据块,作为待清理的文字数据块,直至获取的所有待清理的文字数据块占用内存大于或等于确定的待清理文字数据块的占用内存,及/或获取的所有待清理的文字数据块数量大于或等于确定的待清理的文字数据块数量。其中,空闲时间最长的文字数据块为持续未被使用的时间最长的文字数据块。
S305,将待清理的文字数据块设置为使用状态。
S306,创建后台线程,在后台线程中将待清理的文字数据块设置为未使用状态,并释放待清理的文字数据块占用的内存空间。
步骤S301、S305-S306的具体实施方式与步骤S101、S105-S106的具体实施方式相同,在此不作赘述。
参阅图11所示,为本申请另一实施例提供的缓存管理方法的流程图。所述方法应用于电子设备中,所述缓存管理方法包括:
S401,创建或查找文字数据块。
S402,判断当前的字体缓存占用的内存和数量是否已达上限。若当前的字体缓存占用的内存或数量已达上限,流程进入S403;若当前的字体缓存占用的内存和数量未达上限,流程返回S401。
S403,计算需要释放的字体缓存的数量和内存空间。
S404,从尾部开始,获取可以被释放的文字数据块。
S405,资源释放,释放文字数据块占用的内存空间。
在本申请的所述另一实施例中,释放文字数据块占用的内存空间的细化流程如图12所示,具体包括:
S4051,首次触发字体缓存清理操作。
S4052,新增共享指针指向待清理的字体数据块。
S4053,从哈希表中删除待清理的字体数据块。
S4054,创建后台线程,将共享指针的重置操作加入后台线程的队列中。
S4055,执行后台线程。
S4056,将文字数据块占用的内存空间批量释放。
在本申请的所述另一实施例中,当再次触发字体缓存清理操作时,重复执行S4051-S4052。
S406,判断释放的内存空间和字体缓存数量是否满足条件。若释放的内存空间和字体缓存数量满足条件,流程进入S407;若释放的内存空间和字体缓存数量不满足条件,流程返回S404。
S407,基于创建或查找的文字数据块对文字进行渲染。
在本申请实施例中,每次创建或查找文字数据块时,都会检查当前字体缓存的数目和占用的内存空间是否已经达到上限,如果已经达到上限则会触发字体缓存清理操作,清理时从尾部文字数据块开始释放,直至释放的内存空间和数目均满足要求。当字体缓存的数目和占用的内存空间达到上限时,理论上仍然可以继续创建文字数据块,但为了避免字体缓存过大影响查找效率和整机内存,在清理操作完成后才返回创建或查找得到的文字数据块。
为了避免清理操作耗时过长影响整个渲染线程,将文字数据块资源的释放放在后台线程中进行,如此一来,图2流程中的“资源释放”变为了“将资源释放任务加入后台线程”,即清理动作变为了任务入队动作,避免了清理动作对渲染线程耗时的影响。所以,在图12的流程中,无需等待资源被释放,只需要等待从哈希表中删除要舍弃的文字数据块关联的记录,将释放文字数据块占用的内存空间的操作加入后台线程之后,就可以申请缓存资源进行新的文字数据块的绘制和渲染。同时,为了避免后台线程的资源释放动作过于频繁,采用了让工作队列等待1秒后进行批量释放的方法。
为解决由于缓存清理任务的处理增加渲染线程的耗时而导致应用程序界面无法及时更新显示的问题,本申请实施例还提供一种电子设备。参阅图13所示,电子设备100可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(Ultra-mobile Personal Computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(Personal Digital Assistant,PDA)、增强现实(Augmented Reality,AR)设备、虚拟现实(Virtual Reality,VR)设备、人工智能(Artificial Intelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备100的具体类型不作特殊限制。
电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(Universal Serial Bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(Subscriber Identification Module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(Application Processor,AP),调制解调处理器,图形处理器(Graphics ProcessingUnit,GPU),图像信号处理器(Image Signal Processor,ISP),控制器,视频编解码器,数字信号处理器(Digital Signal Processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(Inter-integrated Circuit,I2C)接口,集成电路内置音频(Inter-integrated CircuitSound,I2S)接口,脉冲编码调制(Pulse Code Modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(Mobile Industry Processor Interface,MIPI),通用输入输出(General-PurposeInput/Output,GPIO)接口,用户标识模块(Subscriber Identity Module,SIM)接口,和/或通用串行总线(Universal Serial Bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(Serial Data Line,SDA)和一根串行时钟线(Derail Clock Line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。
I2S接口可以用于音频通信。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(Camera Serial Interface,CSI),显示屏串行接口(DisplaySerial Interface,DSI)等。在一些实施例中,处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD),有机发光二极管(Organic Light-EmittingDiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode的,AMOLED),柔性发光二极管(Flex Light-EmittingDiode,FLED),Miniled,Microled,Micro-OLED,量子点发光二极管(Quantum Dot LightEmitting Diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
内部存储器121可以包括一个或多个随机存取存储器(Random Access Memory,RAM)和一个或多个非易失性存储器(Non-Volatile Memory,NVM)。
随机存取存储器可以包括静态随机存储器(Static Random-Access Memory,SRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)、同步动态随机存储器(Synchronous Dynamic Random Access Memory,SDRAM)、双倍资料率同步动态随机存取存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3DNAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(Single-Level Cell,SLC)、多阶存储单元(Multi-Level Cell,MLC)、三阶储存单元(Triple-Level Cell,TLC)、四阶储存单元(Quad-Level Cell,QLC)等,按照存储规范划分可以包括通用闪存存储(Universal FlashStorage,UFS)、嵌入式多媒体存储卡(embedded Multi Media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备100的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
内部存储器121或外部存储器接口120用于存储一个或多个计算机程序。一个或多个计算机程序被配置为被该处理器110执行。该一个或多个计算机程序包括多个指令,多个指令被处理器110执行时,可实现上述实施例中在电子设备100上执行的缓存管理方法,以实现电子设备100的手写输入显示功能。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。电子设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,电子设备100根据压力传感器180A检测所述触摸操作强度。电子设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,与显示屏194所处的位置不同。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备100上运行时,使得电子设备100执行上述相关方法步骤实现上述实施例中的缓存管理方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的缓存管理方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的缓存管理方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是,以上实施例仅用以说明本申请的技术方案而非限制,尽管参照较佳实施例对本申请进行了详细说明,本领域的普通技术人员应当理解,可以对本申请的技术方案进行修改或等同替换,而不脱离本申请技术方案的精神和范围。
Claims (17)
1.一种缓存管理方法,其特征在于,所述方法包括:
响应于文字渲染指令,获取待渲染文字对应的文字数据块;
判断当前的文字缓存是否满足预设的缓存清理条件;
若当前的所述文字缓存满足所述预设的缓存清理条件,确定待清理的文字数据块的占用内存;
基于所述待清理的文字数据块的占用内存从缓存空间中获取待清理的文字数据块;
通过设置共享指针以指向所述待清理的文字数据块的存储地址,使得所述共享指针引用所述待清理的文字数据块,将所述待清理的文字数据块设置为使用状态;
创建后台线程,在所述后台线程中将所述待清理的文字数据块设置为未使用状态,并释放所述待清理的文字数据块占用的内存空间,包括:将所述待清理的文字数据块设置为未使用状态的操作和释放所述待清理文字的数据块占用的内存空间的操作加入所述后台线程的任务队列;运行所述后台线程,将所述待清理的文字数据块设置为未使用状态,并释放所述待清理的文字数据块占用的内存空间。
2.如权利要求1所述的缓存管理方法,其特征在于,所述将所述待清理的文字数据块设置为未使用状态的操作为对所述共享指针的重置操作。
3.如权利要求1所述的缓存管理方法,其特征在于,所述方法还包括:
将获取的所述文字数据块对应的数据单元的描述符作为键,指向所述文字数据块的所述共享指针作为值记录在哈希表中,其中,所述数据单元与所述文字数据块一一对应,用于记录所述文字数据块的属性。
4.如权利要求3所述的缓存管理方法,其特征在于,所述方法还包括:
在所述哈希表中删除与所述待清理的文字数据块关联的记录。
5.如权利要求4所述的缓存管理方法,其特征在于,所述在所述哈希表中删除与所述待清理的文字数据块关联的记录包括:
确定所述待清理的文字数据块对应的数据单元的描述符,在所述哈希表中识别以所述描述符作为键的键值对记录,将所述描述符对应的键值对记录删除。
6.如权利要求1所述的缓存管理方法,其特征在于,所述响应于文字渲染指令,获取待渲染文字对应的文字数据块包括:
响应于显示界面的变化,产生渲染指令;
响应于所述渲染指令,判断待渲染的显示界面是否包含文字;
若所述待渲染的显示界面包含文字,产生所述文字渲染指令,并响应于所述文字渲染指令,创建或查找所述待渲染文字对应的文字数据块。
7.如权利要求6所述的缓存管理方法,其特征在于,所述响应于所述渲染指令,判断待渲染的显示界面是否包含文字包括:
响应于所述渲染指令,获取所述待渲染的显示界面中每个窗口的内容,识别每个窗口的内容是否包含文字;
若任一窗口的内容包含文字,确定所述待渲染的显示界面包含文字;或
若所有窗口的内容都不包含文字,确定所述待渲染的显示界面不包含文字。
8.如权利要求6所述的缓存管理方法,其特征在于,所述创建或查找所述待渲染文字对应的文字数据块包括:
获取所述待渲染的显示界面中的至少一个文字,查找所述缓存空间是否包含所述至少一个文字所对应的文字数据块;
若查找到所述缓存空间包含所述至少一个文字所对应的文字数据块,从所述缓存空间获取所述至少一个文字所对应的文字数据块;或
若未查找到所述缓存空间包含任一文字所对应的文字数据块,基于待渲染的所述任一文字的属性,创建所述任一文字对应的文字数据块。
9.如权利要求1所述的缓存管理方法,其特征在于,所述判断当前的文字缓存是否满足预设的缓存清理条件包括:
当在所述缓存空间中查找到所述待渲染文字对应的文字数据块时,或当创建得到所述待渲染文字对应的文字数据块,将创建的文字数据块写入缓存空间后,判断当前的所述缓存空间中文字数据块的占用内存是否大于或等于内存阈值;
若当前的所述缓存空间中文字数据块的占用内存大于或等于所述内存阈值,确定当前的文字缓存满足所述预设的缓存清理条件;或
若当前的所述缓存空间中文字数据块的占用内存小于所述内存阈值,确定当前的文字缓存不满足所述预设的缓存清理条件。
10.如权利要求9所述的缓存管理方法,其特征在于,所述确定待清理的文字数据块的占用内存包括:
若当前的所述缓存空间中文字数据块的占用内存大于或等于所述内存阈值,确定当前的所述缓存空间中文字数据块的占用内存与所述内存阈值之间的内存差值;
判断所述内存差值是否大于预设的文字缓存内存空间;
若所述内存差值大于所述预设的文字缓存内存空间,确定所述待清理的文字数据块的占用内存至少为所述内存差值;或
若所述内存差值小于或等于所述预设的文字缓存内存空间,确定所述待清理的文字数据块的占用内存至少为所述预设的文字缓存内存空间。
11.如权利要求1所述的缓存管理方法,其特征在于,所述基于所述待清理的文字数据块的占用内存从缓存空间中获取待清理的文字数据块包括:
从所述缓存空间中逐一获取写入时间最早且处于未使用状态的文字数据块,作为所述待清理的文字数据块,直至获取的所有待清理的文字数据块的占用内存大于或等于确定的所述待清理的文字数据块的占用内存。
12.如权利要求1所述的缓存管理方法,其特征在于,所述基于所述待清理的文字数据块的占用内存从缓存空间中获取待清理的文字数据块包括:
从所述缓存空间中逐一获取空闲时间最长的文字数据块,作为所述待清理的文字数据块,直至获取的所有待清理的文字数据块的占用内存大于或等于确定的所述待清理的文字数据块的占用内存。
13.如权利要求1所述的缓存管理方法,其特征在于,所述方法还包括:
响应于对应用程序的预设操作,释放所述缓存空间中所述应用程序的文字数据块占用的内存空间。
14.如权利要求1至13中任一项所述的缓存管理方法,其特征在于,所述文字数据块用于记录所述待渲染文字的属性。
15.一种电子设备,其特征在于,所述电子设备包括存储器和处理器:
其中,所述存储器,用于存储程序指令;
所述处理器,用于读取并执行所述存储器中存储的所述程序指令,当所述程序指令被所述处理器执行时,使得所述电子设备执行如权利要求1至14中任一项所述的缓存管理方法。
16.一种芯片,与电子设备中的存储器耦合,其特征在于,所述芯片用于控制所述电子设备执行权利要求1至14中任一项所述的缓存管理方法。
17.一种计算机存储介质,其特征在于,所述计算机存储介质存储有程序指令,当所述程序指令在电子设备上运行时,使得所述电子设备执行如权利要求1至14中任一项所述的缓存管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468890.XA CN116662222B (zh) | 2022-11-22 | 2022-11-22 | 缓存管理方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211468890.XA CN116662222B (zh) | 2022-11-22 | 2022-11-22 | 缓存管理方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116662222A CN116662222A (zh) | 2023-08-29 |
CN116662222B true CN116662222B (zh) | 2024-10-18 |
Family
ID=87712379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211468890.XA Active CN116662222B (zh) | 2022-11-22 | 2022-11-22 | 缓存管理方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116662222B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186919A (zh) * | 2011-12-28 | 2013-07-03 | 腾讯科技(深圳)有限公司 | 一种文字渲染方法及装置 |
CN111651277A (zh) * | 2020-06-11 | 2020-09-11 | 深圳创维-Rgb电子有限公司 | 一种内存的清理方法、智能终端及可读存储介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6341342B1 (en) * | 1997-11-04 | 2002-01-22 | Compaq Information Technologies Group, L.P. | Method and apparatus for zeroing a transfer buffer memory as a background task |
CN105659216B (zh) * | 2014-09-29 | 2019-03-19 | 华为技术有限公司 | 多核处理器系统的缓存目录处理方法和目录控制器 |
CN104679669B (zh) * | 2014-11-27 | 2018-04-27 | 华为技术有限公司 | 高速缓存cache存储器系统及访问缓存行cache line的方法 |
CN105260319A (zh) * | 2015-09-11 | 2016-01-20 | 上海卓易科技股份有限公司 | 移动终端的清理方法及系统 |
CN105824702A (zh) * | 2016-03-22 | 2016-08-03 | 乐视云计算有限公司 | 一种管理程序内存占用量的方法和终端 |
CN107526690B (zh) * | 2016-06-21 | 2022-12-02 | 中兴通讯股份有限公司 | 清除缓存的方法及装置 |
CN106445838A (zh) * | 2016-09-09 | 2017-02-22 | 南京南瑞继保电气有限公司 | 一种基于共享指针池的报文零拷贝处理方法 |
GB2566469B (en) * | 2017-09-13 | 2021-03-24 | Advanced Risc Mach Ltd | Cache line statuses |
CN110110262B (zh) * | 2019-05-07 | 2021-06-29 | 海信电子科技(深圳)有限公司 | 浏览器内存管理方法、装置和设备 |
CN111596903B (zh) * | 2020-03-27 | 2024-01-05 | 完美世界(北京)软件科技发展有限公司 | 一种渲染引擎中的数据处理方法和装置 |
CN112433964B (zh) * | 2020-04-17 | 2022-06-14 | 上海哔哩哔哩科技有限公司 | 一种清理缓存脏数据的方法及设备 |
CN114637946A (zh) * | 2022-03-04 | 2022-06-17 | 深圳绿米联创科技有限公司 | 资源数据的处理方法、装置及电子设备 |
CN115098449B (zh) * | 2022-08-26 | 2023-07-07 | 荣耀终端有限公司 | 一种文件清理方法及电子设备 |
-
2022
- 2022-11-22 CN CN202211468890.XA patent/CN116662222B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103186919A (zh) * | 2011-12-28 | 2013-07-03 | 腾讯科技(深圳)有限公司 | 一种文字渲染方法及装置 |
CN111651277A (zh) * | 2020-06-11 | 2020-09-11 | 深圳创维-Rgb电子有限公司 | 一种内存的清理方法、智能终端及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116662222A (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113805743B (zh) | 切换显示窗口的方法和电子设备 | |
CN113590501B (zh) | 一种数据存储方法及相关设备 | |
CN118276722A (zh) | 窗口的显示方法和电子设备 | |
CN114816167A (zh) | 应用图标的显示方法、电子设备及可读存储介质 | |
WO2023070462A1 (zh) | 一种文件去重方法、装置和设备 | |
CN116048828B (zh) | 绘制消息处理方法、电子设备及存储介质 | |
CN114706633B (zh) | 预加载方法、电子设备及存储介质 | |
CN116560555A (zh) | 手写输入显示方法、电子设备及存储介质 | |
CN117707716B (zh) | 线程调度方法、电子设备及计算机可读存储介质 | |
CN116662222B (zh) | 缓存管理方法及相关设备 | |
CN116541180B (zh) | 内存分配方法、电子设备及存储介质 | |
CN116048317B (zh) | 一种显示方法及装置 | |
CN114490442B (zh) | 文件片段调整方法及电子设备 | |
CN117707721A (zh) | 任务提交方法、电子设备及存储介质 | |
WO2023198103A1 (zh) | 进程间通信方法和电子设备 | |
CN116704927B (zh) | 显示屏亮度调整方法、电子设备及存储介质 | |
CN115576477B (zh) | 手写输入显示方法、电子设备及存储介质 | |
CN107463567B (zh) | 数据缓存加载方法和装置以及便携式终端设备 | |
CN116049021B (zh) | 存储空间管理方法、电子设备及计算机可读存储介质 | |
US20250080637A1 (en) | Call service bootstrapping method, electronic device, and storage medium | |
WO2024109220A1 (zh) | 显示卡片的方法、电子设备及可读存储介质 | |
CN115016714B (zh) | 电子设备控制方法、系统、电子设备及存储介质 | |
WO2024222054A1 (zh) | 手写输入方法及电子设备 | |
CN117708070A (zh) | 一种文件压缩方法及电子设备 | |
CN117131241A (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 | ||
CP03 | Change of name, title or address |
Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Patentee after: Honor Terminal Co.,Ltd. Country or region after: China Address before: 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong Patentee before: Honor Device Co.,Ltd. Country or region before: China |
|
CP03 | Change of name, title or address |