CN115373998A - 应用程序优化方法、装置、设备及介质 - Google Patents
应用程序优化方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115373998A CN115373998A CN202211033352.8A CN202211033352A CN115373998A CN 115373998 A CN115373998 A CN 115373998A CN 202211033352 A CN202211033352 A CN 202211033352A CN 115373998 A CN115373998 A CN 115373998A
- Authority
- CN
- China
- Prior art keywords
- data set
- target data
- target
- memory
- proxy function
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3628—Software debugging of optimised code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5016—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation 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/5022—Mechanisms to release resources
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
本公开实施例涉及一种应用程序优化方法、装置、设备及介质,其中该方法包括:对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集;响应于控制指令,调用与目标数据集对应的目标代理函数;通过目标代理函数调用***函数,***函数进行内存占用处理;目标代理函数根据处理结果更新目标数据集的内存占用情况;根据内存占用情况对应用程序进行优化。采用上述技术方案,能够细化到监控目标数据集的内存占用情况以及基于目标数据集的内存占用情况进行应用程序优化,相较于现有技术,可以实现细化到的监控应用程序具体功能的内存占用情况,最终细化到对提供具体功能的应用程序进行针对性的优化。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序优化方法、装置、设备及介质。
背景技术
近年来,各类应用程序的功能越来越多样化和复杂化,应用程序占用的内存越来越大。例如,应用程序是视频类应用程序,视频类应用程序提供越来越多的特效功能,导致应用程序占用的内存越来越大。
为了方便用户对应用程序进行优化,需要监控应用程序的内存占用情况。然而,相关技术只能监控整个应用程序的内存占用情况,整个应用程序的内存占用情况只能笼统的表征应用程序的整体占用,无法细化到应用程序的不同功能的内存占用情况,因此无法细化到基于不同功能的内存占用情况进行应用程序优化。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种应用程序优化方法、装置、设备及介质。
本公开实施例提供了一种应用程序优化方法,所述方法包括:
对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集;
响应于所述控制指令,调用与所述目标数据集对应的目标代理函数;
通过所述目标代理函数调用***函数,所述***函数进行内存占用处理;
所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况;
根据所述内存占用情况对所述应用程序进行优化。
本公开实施例还提供了一种应用程序优化装置,所述装置包括:
控制指令发出模块,用于对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集;
控制指令响应模块,用于响应于所述控制指令,调用与所述目标数据集对应的目标代理函数;
内存占用处理模块,用于通过所述目标代理函数调用***函数,所述***函数进行内存占用处理;
更新模块,用于目标代理函数根据处理结果更新所述目标数据集的内存占用情况;
应用程序优化模块,用于根据所述内存占用情况对所述应用程序进行优化。
本公开实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行如本公开实施例提供的应用程序优化方法。
本公开实施例还提供了一种终端设备,所述终端设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现如本公开实施例提供的应用程序优化方法。
本公开实施例还提供了计算机程序产品,昂昂计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如本公开实施例提供的应用程序优化方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:本公开实施例提供的应用程序优化方案,对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集;响应于控制指令,调用与目标数据集对应的目标代理函数;通过目标代理函数调用***函数,***函数进行内存占用处理;目标代理函数根据处理结果更新目标数据集的内存占用情况;根据内存占用情况对应用程序进行优化。采用上述技术方案,能够细化到监控目标数据集的内存占用情况以及基于目标数据集的内存占用情况进行应用程序优化,相较于现有技术,可以实现细化到的监控应用程序具体功能的内存占用情况,最终细化到对提供具体功能的应用程序进行针对性的优化。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种应用程序优化方法的流程示意图;
图2为本公开实施例提供的另一种应用程序优化方法的流程示意图;
图3为本公开实施例提供的又一种应用程序优化方法的流程示意图;
图4为本公开实施例提供的数据集和代理函数之间的映射关系的示意图;
图5为本公开实施例提供的再一种应用程序优化方法的流程示意图;
图6为本公开实施例提供的一种应用程序优化装置的结构示意图;
图7为本公开实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
应用程序可以提供不同的功能,每个功能占用的内存不同,使得启动应用程序的不同功能时,应用程序实际占用的内存并不相同。例如,应用程序是视频类应用程序,视频类应用程序提供特效功能,不同的特效功能对应不同的道具,由于不同的特效功能对应的道具模板、清晰度以及道具颜色数据不同,使得开启应用程序不同的道具时实际占用的内存不相同,需要细化到监控具体道具的内存占用情况,以及细化到对提供具体道具的应用程序进行针对性的优化。
为了解决上述问题,本公开实施例提供了一种应用程序优化方法,下面结合具体的实施例对该方法进行介绍。
图1为本公开实施例提供的一种应用程序优化方法的流程示意图,该方法可以应用程序优化装置执行,其中该装置可以采用软件和/或硬件实现,一般可集成在终端设备中。如图1所示,该方法包括:
步骤101、对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集。
在本实施例中,当需要进行应用程序优化时,手机、电脑、平板等终端设备预先加载应用程序的多个数据集,终端设备从多个数据集中确定部分数据集,作为目标数据集,并且针对目标数据集发出控制指令。
其中,控制指令是指用于指示监控目标数据集的内存占用情况的代码。
其中,多个数据集中的每个数据集与应用程序上的一个功能对应,如果要监控应用程序上其中一个或多个功能的内存占用情况,需要对提供其中一个或多个功能对应的目标数据集发出控制指令,使得基于该指令执行监控其中一个或多个功能的内存占用情况的操作。
其中,多个数据集可以是应用程序上多个功能对应的本地(Native)库。Native库具有提供其对应功能的能力,详细的解释为,Native库相当于接口,能够调用该功能对应的底层资源包,使得应用程序能够提供该功能。
继续以应用程序是视频类应用程序为例,视频类应用程序提供不同的特效功能,不同的特效功能对应不同的道具,每个道具对应一个Native库,则通过这个Native库可以调用其对应的底层资源包,使得视频类应用程序能够提供该特效功能。
再次以应用程序是视频类应用程序为例,视频类应用程序提供美颜功能,美颜功能细化为脸型优化、皱纹淡化、眼睛优化、鼻梁优化、嘴唇优化等,每个美颜功能对应一个Native库,则通过这个Native库可以调用其对应的底层资源包,使得视频类应用程序能够提供美颜能力。
可选的,不同的Native库可以表示为a.so、b.so、c.so…x.so。
其中,目标数据集是指应用程序上需要监控的具体功能对应的一个或多个Native库。
步骤102、响应于控制指令,调用与目标数据集对应的目标代理函数。
在本实施例中,多个数据集中的每个数据集均对应代理函数,为了实现对应用程序的目标数据集的内存占用情况进行监控,基于上述对应关系,确定目标数据集对应的目标代理函数并调用目标代理函数。
其中,代理函数能够用于拦截函数调用的过程,并且能够返回本地库对应的进行内存占用处理的参数。
步骤103、通过目标代理函数调用***函数,所述***函数进行内存占用处理。
在本实施例中,终端设备在运行目标代理函数时,通过目标代理函数调用***函数,并运行***函数使得***函数进行内存占用处理。
其中,***函数是指实际执行内存占用处理的函数。
具体的,终端设备调用目标代理函数时,目标代理函数能够返回本地库对应的进行内存占用处理的参数,并根据目标代理函数返回的进行内存占用处理的参数和目标代理函数响应的控制指令的类别,进行内存分配处理,其目的是为目标数据集分配内存,或者,根据目标代理函数返回的进行内存占用处理的参数和目标代理函数响应的控制指令的类别,进行内存释放处理,其目的是将目标数据集对应的内存释放。
步骤104、所述目标代理函数根据处理结果更新目标数据集的内存占用情况。
在本实施例中,通过***函数进行内存占用处理之后,继续利用目标代理函数根据内存处理结果,更新目标数据集的内存占用情况,并监控目标数据集对应的最新内存占用情况。
其中,内存占用情况是指目标数据集对应的实际占用内存。实际占用内存可以是具体的字节数,也可以是内存占用百分比。
其中,内存处理结果是指内存处理的完成情况。
在本公开的一个实施例中,若内存处理过程已完成,则将目标数据集对应的原始内存大小与内存分配大小相加,得到目标数据集对应的最新内存占用情况。
在本公开的另一个实施例中,若内存处理过程已完成,则将目标数据集对应的原始内存大小减去内存释放大小,得到目标数据集对应的最新内存占用情况。
可以理解的是,对于目标数据集来说,能够通过上述步骤得到内存占用情况,从而监控到多个数据集中的每个数据集的内存占用情况,使得用户掌握每个数据集实际占用的内存。
继续以应用程序是视频类应用程序为例,终端设备监控视频类应用程序中的A特效功能对应的数据集A’所占用的内存,得到A特效功能对应的数据集A’的内存占用情况,例如,该内存占用情况是A特效功能对应的目标数据集占用的内存较大。
步骤105、根据内存占用情况对应用程序进行优化。
在本实施例中,若终端设备根据目标数据集的内存占用情况确定出目标数据集占用的内存较大,则确定目标数据集对应的底层资源包较大,需要压缩目标数据集对应的底层资源包。
在其他实施例中,还可以通过实时监控目标数据集的内存占用情况,进行内存泄露检测,从而准确的定位出目标数据集是否存在内存泄露,以及定位目标数据集发生内存泄露的原因。
再次以应用程序是视频类应用程序为例,终端设备监控到视频类应用程序中的B美颜功能的内存占用情况,并进行内存泄露检测,确定B美颜功能对应的数据集存在内存泄露,进一步发生内存泄露的原因。
本公开实施例提供的应用程序优化方案,对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集;响应于控制指令,调用与目标数据集对应的目标代理函数;通过目标代理函数调用***函数,***函数进行内存占用处理;目标代理函数根据处理结果更新目标数据集的内存占用情况;根据内存占用情况对应用程序进行优化。采用上述技术方案,能够细化到监控目标数据集的内存占用情况以及基于目标数据集的内存占用情况进行应用程序优化,相较于现有技术,可以实现细化到的监控应用程序具体功能的内存占用情况,最终细化到对提供具体功能的应用程序进行针对性的优化。
在本公开另一种实施方式中,可以预先为目标数据集配置对应的代理函数,并建立数据集标识和代理函数之间的映射关系,该映射关系可以是一对一的关系,也可以是多对一的关系,进一步基于该映射关系调用目标代理函数。
图2为本公开实施例提供的另一种应用程序优化方法的流程示意图,本实施例在上述实施例的基础上,进一步优化了上述应用程序优化方法。如图2所示,该方法包括:
步骤201、为目标数据集配置对应的代理函数,并建立数据集标识和代理函数之间的映射关系。
在本实施例中,在进行应用程序之前,运行预先配置好的应用程序优化逻辑代码,应用程序优化逻辑代码包括映射关系配置代码,基于该映射关系配置代码为目标数据集配置对应的代理函数,并建立数据集标识和代理函数之间的映射关系。
其中,应用监控逻辑代码可以基于预设的操作***的框架下编译以及运行。可选的,预设的操作***的框架可以是Hook框架,其相当于钩子,用来拦截函数调用的过程。
其中,映射关系配置代码包括目标数据集对应的数据集标识、代理函数以及数据集标识和代理函数之间的映射关系。
具体的,预设的操作***的框架能够预留出代理函数池,该代理函数池包括每个数据集对应的代理函数。
在本公开一些实施例中,代理函数池可以包括多个代理函数,相应的,映射关系包括:每个数据集标识唯一对应一个代理函数的第一映射关系。
在本公开另一些实施例中,代理函数池只包括一个代理函数,相应的,映射关系包括:多个数据集标识对应一个代理函数的第二映射关系。
其中,数据集标识是指用于标识数据集的符号或者字母。
为了方便统计代理函数返回的进行内存占用处理的参数,可以在代理函数中插桩,并建立数据集与插桩之间的映射关系。其中,代理函数对应的插桩能够记录其对应数据块进行内存占用处理的参数,从而方便统计代理函数返回的进行内存占用处理的参数。
步骤202、对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集。
其中,步骤202与步骤101相似,在此不做赘述。
步骤203、响应于控制指令,根据目标数据集的目标数据集标识查询第一映射关系,调用与目标数据集标识对应的目标代理函数。
在实施例中,每个数据集标识唯一对应一个代理函数的第一映射关系,则直接调用与目标数据集标识对应的目标代理函数,使得目标代理函数返回需要进行内存处理的参数,便于后续基于该参数进行内存占用处理。
步骤204、响应于控制指令,根据目标数据集的目标数据集标识查询第二映射关系,调用与目标数据集标识对应的目标代理函数,并为目标代理函数标注目标数据集标识和对应的时间标识。
在本实施例中,多个数据集可以对应一个代理函数,针对目标数据集,可以基于第二映射关系,调用其对应的代理函数,目标代理函数返回需要进行内存处理的参数,使得后续基于该参数进行内存占用处理,并且需要为目标代理函数标注目标数据集标识和对应的时间标识,使得基于时间标识和目标数据集标识,确定目标数据集对应的被拦截时间。
在本公开一些实施例中,若目标数据集的数量是多个,可以基于堆栈回溯原理调用同一个代理函数,并且针对每个堆栈回溯过程,为目标代理函数标注目标数据集标识和对应的时间标识。
在本公开另一些实施例中,若目标数据集的数量是多个,可以从第一个目标数据集开始,针对第一个目标数据集,调用一次目标代理函数,目标代理函数返回第一个目标数据集对应的进行内存处理的参数之后,对于下一个目标数据集,继续调用一次目标代理函数,目标代理函数返回所述下一个目标数据集对应的进行内存处理的参数,直至针对所有需要监控的目标数据集都调用目标代理函数。具体的,每次调用目标代理函数时,需要为目标代理函数标注目标数据集标识和对应的时间标识。
步骤205、通过目标代理函数调用***函数,***函数进行内存占用处理。
步骤206、目标代理函数根据处理结果更新目标数据集的内存占用情况。
步骤207、根据内存占用情况对应用程序进行优化。
其中,步骤205~步骤207的实现方式可以参见上述实施例的描述,在此不做赘述。
本实施例提供的技术方案,可以对每个数据集和代理函数建立一对一的映射关系,也可以对多个数据集和代理函数建立多对一的映射关系,并基于映射关系,准确的调用目标数据集对应的映射函数。
在本公开又一种实施方式中,内存占用处理方式可以包括申请内存分配和申请内存释放,使得记录目标数据集增加的内存分配大小和记录目标数据集减少的内存释放大小。
图3为本公开实施例提供的又一种应用程序优化方法的流程示意图,本实施例在上述实施例的基础上,进一步优化了上述应用程序优化方法。如图3所示,该方法包括:
步骤301、对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集。
其中,步骤301具体实现方式参见上述实施例的描述。
步骤302、在控制指令为开启指令的情况下,响应于开启指令,调用与目标数据集对应的目标代理函数中的第一代理函数。
在本实施例中,可以基于数据集标识和代理函数之间的第一映射关系或者第二映射关系,调用与目标数据集对应的目标代理函数中的第一代理函数。
其中,开启指令可以理解为对目标数据集进行内存分配的指令信息。
其中,第一代理函数是指能够调用进行内存分配的第一***函数的代理函数。
进一步在本实施例中,调用第一代理函数之后,通过第一代理函数可以调用第一***函数申请内存分配。
具体的,第一***函数具有申请内存分配的逻辑,可以基于该逻辑向堆内存申请内存分配,使得为目标数据集分配适当的内存空间。
其中,第一***函数是指执行内存分配操作的***函数。
其中,堆内存是一种内存区域,其允许在应用程序的运行过程中动态的申请不同大小的内存空间。
步骤303、根据第一***函数的内存分配结果,第一代理函数记录内存分配地址和内存分配大小。
其中,内存分配结果可以是内存分配的完成情况,若第一***函数已完成内存分配,则第一***记录内存分配地址和内存分配大小。
其中,内存分配地址是指目标数据集对应的虚拟地址。
其中,内存分配大小是指为目标数据集分配的内存空间的大小。
步骤304、通过第一代理函数的第一参数记录目标数据集增加的内存分配大小,更新目标数据集的内存占用情况。
其中,第一参数可以理解为第一代理函数返回的用于进行内存处理的参数。
其中,目标数据集增加的内存分配大小等于第一参数对应的数值。
其中,更新后的目标数据集的内存占用情况为更新前的内存占用大小与内存分配大小的和。
步骤305、在控制指令为关闭指令的情况下,响应于关闭指令,调用与目标数据集对应的目标代理函数中的第二代理函数。
在本实施例中,可以基于数据集标识和代理函数之间的第一映射关系或者第二映射关系,调用与目标数据集对应的目标代理函数中的第二代理函数。
其中,关闭指令可以理解为对目标数据集进行内存释放的指令信息。
其中,第二代理函数是指能够调用内存分配的第一***函数的代理函数。
进一步在本实施例中,调用第二代理函数之后,通过第二代理函数可以调用第二***函数申请内存释放。
具体的,第二***函数具有申请内存释放的逻辑,可以基于该逻辑向堆内存申请内存释放,使得对目标数据集对应的内存空间进行释放。
其中,第二***函数是指执行内存释放操作的***函数。
步骤306、根据第二***函数的内存释放结果,第二代理函数记录内存释放地址和内存释放大小。
其中,内存释放结果可以是内存释放的完成情况,若第二***函数已完成内存释放,则第二***记录内存释放地址和内存释放大小。
其中,内存释放地址是指目标数据集对应的虚拟地址。
其中,内存释放大小是指目标数据集减少的内存空间的大小。
步骤307、通过第二代理函数的第二参数记录所述目标数据集减少的内存释放大小,更新目标数据集的内存占用情况。
其中,第二参数可以理解为第二代理函数返回的用于进行内存处理的参数。
其中,目标数据集减少的内存分配大小等于第二参数对应的数值。
其中,更新后的目标数据集的内存占用情况为更新前的内存占用大小与内存分配大小的差。
为了便于理解数据集和代理函数之间的映射关系,如图4所示,多个数据集包括数据集a.so、b.so…x.so,第一代理函数包括F1_a/F2_a/F3_a、F1_b/F2_b/F3_b…F1_x/F2_x/F3_x,第二代理函数包括E1_a/E2_a/E3_a、E1_b/E2_b/E3_b…E1_x/E2_x/E3_x,第一***函数包括M1/N1/P1,第二***函数包括M2/N2/P2。其中,数据集a.so与第一代理函数F1_a/F2_a/F3_a和第二代理函数E1_a/E2_a/E3_a建立映射关系,数据集b.so与第一代理函数F1_b/F2_b/F3_b和第二代理函数E1_b/E2_b/E3_b建立映射关系…数据集x.so与第一代理函数F1_x/F2_x/F3_x和第二代理函数E1_x/E2_x/E3_x建立映射关系。另外,多个第一代理函数对应第一***函数M1/N1/P1,多个第二代理函数对应第二***函数M2/N2/P2。
以目标数据集是a.so为例,当需要对a.so进行内存分配时,响应于对a.so的开启指令,调用a.so对应的第一代理函数F1_a/F2_a/F3_a,然后,通过第一代理函数F1_a/F2_a/F3_a调用第一***函数M1/N1/P1申请内存分配,并根据第一***函数M1/N1/P1的内存分配结果,记录内存分配地址和内存分配大小,并通过第一代理函数的第一参数记录a.so增加的内存分配大小,更新目标数据集的内存占用情况。
当需要对a.so进行内存释放时,响应于对a.so的关闭指令,调用a.so对应的第二代理函数E1_a/E2_a/E3_a,然后,通过第二代理函数E1_b/E2_b/E3_b调用第二***函数M2/N2/P2申请内存释放,并根据第一***函数M2/N2/P2的内存释放结果,记录内存释放地址和内存释放大小,并通过第二代理函数的第二参数记录a.so增加的内存释放大小,更新目标数据集的内存占用情况。
步骤308、根据内存占用情况对应用程序进行优化。
其中,步骤308具体实现方式参见上述实施例的描述。
本实施例提供的技术方案,内存占用处理方式可以包括申请内存分配和申请内存释放,使得记录目标数据集增加的内存分配大小和记录目标数据集减少的内存释放大小。通过上述方式,可以方便快速定位到目标数据集的内存占用情况,进一步基于内存占用情况优化应用程序以及进行内存泄露分析。
在本公开再一种实施方式中,能够根据目标数据集当前的内存占用数量和阈值,进行安全提示或者对定位到细化的功能并优化。
图5为本公开实施例提供的再一种应用程序优化方法的流程示意图,本实施例在上述实施例的基础上,进一步优化了上述应用程序优化方法。如图5所示,该方法包括:
步骤501、对目标数据集发出控制指令,目标数据集是应用程序中多个数据集中的部分数据集。
步骤502、响应于控制指令,调用与目标数据集对应的目标代理函数。
步骤503、通过目标代理函数调用***函数,***函数进行内存占用处理。
步骤504、目标代理函数根据处理结果更新目标数据集的内存占用情况。
其中,步骤501~步骤504的具体实现方式参见前述实施例的描述。
步骤505、检测目标数据集当前的内存占用数量是否大于预设的第一阈值。
其中,目标数据集当前的内存占用数量是指当前监控时间对应的内存占用大小。
其中,预设的第一阈值用于判断是否进行安全提示的内存占用数量。
具体的,可以通过检测目标数据集对应的代理函数中的插桩,确定目标数据集当前的内存占用数量是否大于预设的第一阈值,若目标数据集当前的内存占用数量大于预设的第一阈值,则执行步骤506,否则,执行步骤507。
步骤506、发送目标数据集的安全提示信息。
其中,安全提示信息用于提示用户堆内存占用量很大,使得用户基于安全提示信息分析原因。
步骤507、检测目标数据集当前的内存占用数量是否大于预设的第二阈值,其中,第二阈值小于所述第一阈值。
其中,预设的第二阈值用于判断是否进行资源数据替换,即用于判断是否压缩资源数据。
具体的,若目标数据集当前的内存占用数量大于预设的第二阈值,则执行步骤508,否则,结束。
步骤508、确定当前的应用操作,获取与应用操作关联的原始资源数据。
其中,应用操作是指针对应用程序上使用某个数据集提供的功能的操作信息。
其中,原始资源数据可以是应用操作关联的数据集调取的最大底层资源包,并且,基于应用操作关联的原始资源数据,能够提供最优功能。
继续以应用程序是视频类应用程序为例,终端设备监控到视频类应用程序中的A特效功能对应的目标数据集当前的内存占用数量大于预设的第二阈值,则需要获取该应用操作关联的原始资源数据,即获取A特效功能对应的最大底层资源包,并且,基于A特效功能对应的最大底层资源包,视频类应用程序中提供的A特效功能清晰度最高。
步骤509、将原始资源数据替换为目标资源数据,其中,目标资源数据的容量小于原始资源数据的容量。
其中,目标资源数据可以是应用操作关联的数据集调取的非最大底层资源包,并且,基于应用操作关联的目标资源数据,提供的功能非最优。
继续以应用程序是视频类应用程序为例,终端设备监控到视频类应用程序中的A特效功能对应的目标数据集当前的内存占用数量大于预设的第二阈值,则将获取的应用操作关联的原始资源数据替换为目标资源数据,使得视频类应用程序中提供的A特效功能的清晰度略低。
在本实施例中,根据应用程序运行的终端设备的性能参数确定第一阈值和第二阈值。
其中,终端设备的性能参数用于表征终端设备的运行能力强弱。可选的,性能参数可以包括中央处理器、核心数、总线、高速缓存以及内存等参数。
本公开实施例提供的技术方案,能够根据目标数据集当前的内存占用数量和阈值,进行安全提示或者对定位到细化功能进行优化。
图6为本公开实施例提供的一种应用程序优化装置的结构示意图,该装置可由软件和/或硬件实现,一般可集成在终端设备中的应用程序优化装置。如图6所示,该应用程序优化装置600包括:
控制指令发出模块601,用于对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集;
控制指令响应模块602,用于响应于所述控制指令,调用与所述目标数据集对应的目标代理函数;
内存占用处理模块603,用于通过所述目标代理函数调用***函数,所述***函数进行内存占用处理;
更新模块604,用于所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况;
应用程序优化模块605,用于根据所述内存占用情况对所述应用程序进行优化。
在一些可选的实施例中,该装置还包括:
代理函数配置模块,用于为所述目标数据集配置对应的代理函数,并建立数据集标识和代理函数之间的映射关系。
在一些可选的实施例中,映射关系包括:每个数据集标识唯一对应一个代理函数的第一映射关系,则,
控制指令响应模块602具体用于,根据所述目标数据集的目标数据集标识查询所述第一映射关系,调用与所述目标数据集标识对应的目标代理函数。
在一些可选的实施例中,映射关系包括:多个数据集标识对应一个代理函数的第二映射关系,则,
控制指令响应模块602具体用于,根据所述目标数据集的目标数据集标识查询所述第二映射关系,调用与所述目标数据集标识对应的目标代理函数,并为所述目标代理函数标注所述目标数据集标识和对应的时间标识。
在一些可选的实施例中,控制指令响应模块602具体用于,在所述控制指令为开启指令的情况下,响应于所述开启指令,调用与所述目标数据集对应的目标代理函数中的第一代理函数;
相应的,内存占用处理模块603具体用于,根据第一***函数的内存分配结果,第一代理函数记录内存分配地址和内存分配大小;
相应的,更新模块604,用于通过所述第一代理函数的第一参数记录所述目标数据集增加的所述内存分配大小,更新所述目标数据集的内存占用情况。
在一些可选的实施例中,控制指令响应模块602具体用于,在所述控制指令为关闭指令的情况下,响应于所述关闭指令,调用与所述目标数据集对应的目标代理函数中的第二代理函数;
相应的,内存占用处理模块603具体用于,根据第二***函数的内存释放结果,第二代理函数记录内存释放地址和内存释放大小;
相应的,更新模块604,用于通过所述第二代理函数的第二参数记录所述目标数据集减少的所述内存释放大小,更新所述目标数据集的内存占用情况。
在一些可选的实施例中,应用程序优化模块605,包括:
第一检测单元,用于检测所述目标数据集当前的内存占用数量是否大于预设的第一阈值;
安全提示信息发送单元,用于如果大于或等于所述第一阈值,则发送所述目标数据集的安全提示信息。
在一些可选的实施例中,应用程序优化模块605还包括:
第二检测单元,用于如果小于所述第一阈值,检测所述目标数据集当前的内存占用数量是否大于预设的第二阈值,其中,所述第二阈值小于所述第一阈值;
当前的应用操作确定单元,用于如果大于或等于所述第二阈值,则确定当前的应用操作;
原始资源数据获取单元,用于获取与所述应用操作关联的原始资源数据;
资源数据替换单元,用于将所述原始资源数据替换为目标资源数据,其中,所述目标资源数据的容量小于所述原始资源数据的容量。
在一些可选的实施例中,该装置还包括:
阈值确定模块,用于根据所述应用程序运行的终端设备的性能参数确定所述第一阈值和所述第二阈值。
本公开实施例所提供的应用程序优化装置可执行本公开任意实施例所提供的应用程序优化方法,具备执行方法相应的功能模块和有益效果。
为了实现上述实施例,本公开还提出一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述实施例中的应用程序优化方法。
图7为本公开实施例提供的一种终端设备的结构示意图。
下面具体参考图7,其示出了适于用来实现本公开实施例中的终端设备的结构示意图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图7示出的终端设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示,终端设备可以包括处理装置(例如中央处理器、图形处理器等)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储装置708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有终端设备操作所需的各种程序和数据。处理装置701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
通常,以下装置可以连接至I/O接口705:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置706;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置707;包括例如磁带、硬盘等的存储装置708;以及通信装置709。通信装置709可以允许终端设备与其他设备进行无线或有线通信以交换数据。虽然图7示出了具有各种装置的终端设备,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置709从网络上被下载和安装,或者从存储装置708被安装,或者从ROM 702被安装。在该计算机程序被处理装置701执行时,执行本公开实施例的程序优化方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述终端设备中所包含的;也可以是单独存在,而未装配入该终端设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备:获取会议音视频的会议文本;将会议文本输入待办识别模型中,确定初始待办语句;将初始待办语句输入时态判断模型中,确定时态结果;基于时态结果确定初始待办语句中的会议待办语句。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上***(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (13)
1.一种应用程序优化方法,其特征在于,包括:
对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集;
响应于所述控制指令,调用与所述目标数据集对应的目标代理函数;
通过所述目标代理函数调用***函数,所述***函数进行内存占用处理;
所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况;
根据所述内存占用情况对所述应用程序进行优化。
2.根据权利要求1所述的方法,其特征在于,在所述对目标数据集发出控制指令之前,还包括:
为所述目标数据集配置对应的代理函数,并建立数据集标识和代理函数之间的映射关系。
3.根据权利要求2所述的方法,其特征在于,所述映射关系包括:每个数据集标识唯一对应一个代理函数的第一映射关系,则,
所述调用与所述目标数据集对应的目标代理函数,包括:
根据所述目标数据集的目标数据集标识查询所述第一映射关系,调用与所述目标数据集标识对应的目标代理函数。
4.根据权利要求2所述的方法,其特征在于,所述映射关系包括:多个数据集标识对应一个代理函数的第二映射关系,则,
所述调用与所述目标数据集对应的目标代理函数,包括:
根据所述目标数据集的目标数据集标识查询所述第二映射关系,调用与所述目标数据集标识对应的目标代理函数,并为所述目标代理函数标注所述目标数据集标识和对应的时间标识。
5.根据权利要求1所述的方法,其特征在于,所述响应于所述控制指令,调用与所述目标数据集对应的目标代理函数,包括:
在所述控制指令为开启指令的情况下,响应于所述开启指令,调用与所述目标数据集对应的目标代理函数中的第一代理函数;
所述通过所述目标代理函数调用***函数,所述***函数进行内存占用处理,包括:
根据第一***函数的内存分配结果,第一代理函数记录内存分配地址和内存分配大小;
所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况,包括:
通过所述第一代理函数的第一参数记录所述目标数据集增加的所述内存分配大小,更新所述目标数据集的内存占用情况。
6.根据权利要求1所述的方法,其特征在于,所述响应于所述控制指令,调用与所述目标数据集对应的目标代理函数,包括:
在所述控制指令为关闭指令的情况下,响应于所述关闭指令,调用与所述目标数据集对应的目标代理函数中的第二代理函数;
所述通过所述目标代理函数调用***函数,所述***函数进行内存占用处理,包括:
根据第二***函数的内存释放结果,第二代理函数记录内存释放地址和内存释放大小;
所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况,包括:
通过所述第二代理函数的第二参数记录所述目标数据集减少的所述内存释放大小,更新所述目标数据集的内存占用情况。
7.根据权利要求1-6任一所述的方法,其特征在于,所述根据所述内存占用情况对所述应用程序进行优化,包括:
检测所述目标数据集当前的内存占用数量是否大于预设的第一阈值;
如果大于或等于所述第一阈值,则发送所述目标数据集的安全提示信息。
8.根据权利要求7所述的方法,其特征在于,还包括:
如果小于所述第一阈值,检测所述目标数据集当前的内存占用数量是否大于预设的第二阈值,其中,所述第二阈值小于所述第一阈值;
如果大于或等于所述第二阈值,则确定当前的应用操作;
获取与所述应用操作关联的原始资源数据;
将所述原始资源数据替换为目标资源数据,其中,所述目标资源数据的容量小于所述原始资源数据的容量。
9.根据权利要求8所述的方法,其特征在于,还包括:
根据所述应用程序运行的终端设备的性能参数确定所述第一阈值和所述第二阈值。
10.一种应用程序优化装置,其特征在于,包括:
控制指令发出模块,用于对目标数据集发出控制指令,所述目标数据集是应用程序中多个数据集中的部分数据集;
控制指令响应模块,用于响应于所述控制指令,调用与所述目标数据集对应的目标代理函数;
内存占用处理模块,用于通过所述目标代理函数调用***函数,所述***函数进行内存占用处理;
更新模块,用于所述目标代理函数根据处理结果更新所述目标数据集的内存占用情况;
应用程序优化模块,用于根据所述内存占用情况对所述应用程序进行优化。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备实现如权利要求1-9任一项所述的方法。
12.一种设备,其特征在于,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-9任一项所述的方法。
13.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序/指令,所述计算机程序/指令被处理器执行时实现如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211033352.8A CN115373998A (zh) | 2022-08-26 | 2022-08-26 | 应用程序优化方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211033352.8A CN115373998A (zh) | 2022-08-26 | 2022-08-26 | 应用程序优化方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115373998A true CN115373998A (zh) | 2022-11-22 |
Family
ID=84068143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211033352.8A Pending CN115373998A (zh) | 2022-08-26 | 2022-08-26 | 应用程序优化方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115373998A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707920A (zh) * | 2023-08-31 | 2024-03-15 | 荣耀终端有限公司 | 内存泄漏定位方法、电子设备及存储介质 |
-
2022
- 2022-08-26 CN CN202211033352.8A patent/CN115373998A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707920A (zh) * | 2023-08-31 | 2024-03-15 | 荣耀终端有限公司 | 内存泄漏定位方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109213611B (zh) | 跨进程通讯方法、装置、终端及存储介质 | |
CN111897740B (zh) | 用户界面的测试方法、装置、电子设备及计算机可读介质 | |
CN110753089B (zh) | 一种管理客户端的方法、装置、介质和电子设备 | |
CN110300165B (zh) | 一种功能程序的调用方法、装置、设备及存储介质 | |
CN113835992B (zh) | 内存泄露的处理方法、装置、电子设备及计算机存储介质 | |
CN111209306A (zh) | 业务逻辑判断方法、装置、电子设备和存储介质 | |
CN111459364A (zh) | 图标更新方法、装置和电子设备 | |
CN111694629A (zh) | 信息展示方法、装置和电子设备 | |
CN115373998A (zh) | 应用程序优化方法、装置、设备及介质 | |
CN112800363A (zh) | 页面显示方法、装置、电子设备和计算机可读介质 | |
CN112306685A (zh) | 任务隔离方法、装置、电子设备及计算机可读介质 | |
CN113391860A (zh) | 服务请求处理方法、装置、电子设备及计算机存储介质 | |
CN112379967B (zh) | 模拟器检测方法、装置、设备及介质 | |
CN111538717B (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN113760631B (zh) | 页面加载时长确定方法、装置、设备和存储介质 | |
CN114296986A (zh) | 内存泄漏定位方法、装置、介质和电子设备 | |
CN112306683A (zh) | 一种函数劫持方法、装置、介质和电子设备 | |
US10516767B2 (en) | Unifying realtime and static data for presenting over a web service | |
CN111324386A (zh) | 分身应用程序的启动方法、装置、电子设备及存储介质 | |
CN110099122B (zh) | 用于发送网络请求的方法和装置 | |
CN115237892B (zh) | 数据迁移方法和装置 | |
CN113778464B (zh) | 小程序灰度发布方法和装置 | |
CN118158082B (zh) | 智能家居设备通信资源报文更新方法、装置、设备与介质 | |
CN109766246B (zh) | 用于监控应用的方法和装置 | |
CN111324888B (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 |