CN117519768A - 程序端性能优化方法、装置、存储介质以及终端 - Google Patents
程序端性能优化方法、装置、存储介质以及终端 Download PDFInfo
- Publication number
- CN117519768A CN117519768A CN202311441204.4A CN202311441204A CN117519768A CN 117519768 A CN117519768 A CN 117519768A CN 202311441204 A CN202311441204 A CN 202311441204A CN 117519768 A CN117519768 A CN 117519768A
- Authority
- CN
- China
- Prior art keywords
- performance
- terminal
- program
- target program
- 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
Links
- 238000005457 optimization Methods 0.000 title claims abstract description 87
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000000694 effects Effects 0.000 claims abstract description 63
- 238000011056 performance test Methods 0.000 claims abstract description 25
- 238000012360 testing method Methods 0.000 claims description 17
- 238000013468 resource allocation Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005516 engineering process Methods 0.000 description 21
- 230000002452 interceptive effect Effects 0.000 description 18
- 230000003993 interaction Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 11
- 238000011161 development Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000011835 investigation Methods 0.000 description 4
- 230000002411 adverse Effects 0.000 description 3
- 230000003190 augmentative effect Effects 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
- 238000000275 quality assurance Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000012502 risk assessment Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (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为本说明书实施例提供的一种终端的结构示意图。
具体实施方式
为使得本说明书实施例的特征和优点能够更加的明显和易懂,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而非全部实施例。基于本说明书中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书实施例保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书实施例相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书实施例的一些方面相一致的装置和方法的例子。
随着计算机以及互联网技术的发展,在一些现场活动中,为了提升活动的丰富性和趣味性,会在活动过程中增加用户可参加的互动环节,特别是如今随着移动终端的开发,用户可以使用移动终端参与进互动环节。通常在互动过程中,用户使用移动终端扫描二维码、搜索关键词等方式进入活动,在活动页面中会显示互动内容,用户即可通过移动终端完成自身与现场的互动。
而在大型活动中,例如在大型体育馆举行的演唱会、大型晚会等活动,这类大型活动的现场往往存在大量的数以万计的观众,这些观众往往会在活动过程中并发参加互动,那么此时现场交互活动的程序就需要具有可容纳多人并发交互的程序性能,以保证用户获得有趣的交互体验。随着活动内容的复杂化、新颖化,为了追求更好的显示效果、更真实的互动体验,互动内容的开发体量、复杂度都呈上升趋势,那么程序在开发过程中面临的端性能风险和挑战就越多,要支持需要实现科技化、影视级效果的交互程序的技术栈对客户端性能会带来非常大的挑战,程序运行时会影响用户终端的稳定性、程序内容的实际效果、用户的使用体验等,端性能风险若不及时排查、处理,则可能导致程序上线后在实际使用场景中出现问题,无法体现出应有的效果来满足用户交互需求,从而直接导致大量用户的交互体验变差。
因此本说明书实施例提供一种程序端性能优化方法,根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;生成每个性能风险因素各自对应的端性能优化方案;对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序,以解决上述程序端性能差、无法实现应有的程序效果技术问题。
请参阅图1,图1为本说明书实施例提供的一种程序端性能优化方法的示例性系统架构图。
如图1所示,系统架构可以包括终端101、网络102和服务器103。网络102用于在终端101和服务器103之间提供通信链路的介质。网络102可以包括各种类型的有线通信链路或无线通信链路,例如:有线通信链路包括光纤、双绞线或同轴电缆的,无线通信链路包括蓝牙通信链路、无线保真(Wireless-Fidelity,Wi-Fi)通信链路或微波通信链路等。
终端101可以通过网络102与服务器103交互,以接收来自服务器103的消息或向服务器103发送消息,或者终端101可以通过网络102与服务器103交互,进而接收其他用户向服务器103发送的消息或者数据。终端101可以是硬件,也可以是软件。当终端101为硬件时,可以是各种电子设备,包括但不限于智能手表、智能手机、平板电脑、膝上型便携式计算机和台式计算机等。当终端101为软件时,可以是安装在上述所列举的电子设备中,其可以实现呈多个软件或软件模块(例如:用来提供分布式服务),也可以实现成单个软件或软件模块,在此不作具体限定。
在本说明书实施例中,终端101首先根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;然后,终端101生成每个性能风险因素各自对应的端性能优化方案;此时,终端101可以对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。
服务器103可以是提供各种服务的业务服务器。需要说明的是,服务器103可以是硬件,也可以是软件。当服务器103为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器103为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。
或者,该系统架构还可以不包括服务器103,换言之,服务器103可以为本说明书实施例中可选的设备,即本说明书实施例提供的方法可以应用于仅包括终端101的系统结构中,本说明书实施例对此不做限定。
应理解,图1中的终端、网络以及服务器的数目仅是示意性的,根据实现需要,可以是任意数量的终端、网络以及服务器。
请参阅图2,图2为本说明书实施例提供的一种程序端性能优化方法的流程示意图。本说明书实施例的执行主体可以是执行程序端性能优化的终端,也可以是执行程序端性能优化方法的终端中的处理器,还可以是执行程序端性能优化方法的终端中的程序端性能优化服务。为方便描述,下面以执行主体是终端中的处理器为例,介绍程序端性能优化方法的具体执行过程。
如图2所示,程序端性能优化方法至少可以包括:
S202、根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素。
可选地,目前在虚拟现实领域中,增强现实(Augmented Reality,AR)技术成为一种备受关注的技术,增强现实技术是一种将虚拟信息与真实世界巧妙融合的技术,广泛运用了多媒体、三维建模、实时跟踪及注册、智能交互、传感等多种技术手段,将计算机生成的文字、图像、三维模型、音乐、视频等虚拟信息模拟仿真后,应用到真实世界中,两种信息互为补充,从而实现对真实世界的“增强”。随着如今人工智能(AI)技术和增强现实技术的快速发展,在一些大型活动的互动环节中,为了向现场用户提供有趣、真实、具有科技感的互动体验,会基于AI和AR来开发互动内容,使得用户与现场的互动具有科技感、真实感。
可选地,对于面向大体量并发用户的交互程序来说,程序端性能的质量往往会影响用户终端的稳定性、程序内容的实际效果、用户的使用体验等。为了保证现场数以万计的观众的互动体验,带有AR技术的程序上线到应用环境之前,需要对程序中可能存在的性能风险进行全面排查并且对风险因素都做出质量保障,避免风险在实际使用场景中爆发,导致最终互动活动的呈现效果差,无法满足现场的互动需求。并且风险的排查难度随着程序的复杂度上升而增加,特别是对大型活动中需要面对大量并发访问量的程序,就更需要全面、准确的风险排查。
可选地,目前对程序的性能测试,主要是通过一些既定的软件测试方法,测试程序中的代码是否能够成功运行以及验证代码运行后能否实现目标效果,难以涉及到程序在实际使用环境中的测试,而程序在实际使用中的表现才能够说明用户真实的使用体验,进一步说,实际场景中可能存在多种不同的运行环境,例如多次重复进入退出程序、多次重复切换程序的页面、多次打开关闭程序所在的应用软件,而程序在开发时可能并不能考虑到所有可能的运行场景,那么在开发好后,程序代码可能会使得程序在各种场景下的具体运行情况不同。因此既定的测试方案,无法适用于大体量用户同时与现场进行互动的程序的端性能风险排查。
可选地,为了实现对程序端性能的风险排查和优化,可以先在各种可能的场景下运行目标程序,通过目标程序在各种运行场景下的运行数据,来观察目标程序在不同场景的表现,也即在本说明书实施例中,根据目标程序的运行数据对目标程序进行性能测试,在性能测试过程中能够获知目标程序在各种运行场景下存在的性能风险因素。
具体地,目标程序的越复杂时对终端和客户端的性能挑战也就越高,而目标程序在终端中运行时,也会影响到终端的内存、显示效果,例如性能较差的终端通常内存空间较小、对算法的支持能力较差,那么当其中运行复杂的目标程序时,非常容易造成终端的卡顿现象,甚至闪退现象,这样不仅影响用户的使用体验,还可能对终端设备造成伤害。那么通常为了保证目标程序的顺利运行,会规定目标程序的预设性能需求,预设性能需求中规定了目标程序若要实现效果需求而应该具有的性能,基于此,进行性能测试时,就可以进一步确定目标程序在预设性能需求上存在的至少一个性能风险因素,这样性能风险因素就可以体现出目标程序中可能导致无法实现预设性能需求的风险信息。
进一步地,通常软件、程序在终端中运行时,会已缓存数据的形式占据终端的内存空间,而当资源使用完毕,会让终端释放这部分缓存的数据,已达到释放内存空间的效果,然而一些释放不及时时,会导致无效数据堆积造成内存泄漏,用户多次使用该资源就会导致内存被占据的越来越多,进而影响到终端的使用,因此为了控制目标程序对终端的内存影响,预设性能需求可以包括对内存释放性能的需求项。另一方面,目标程序在运行时,由于目标程序自身的内容也会对终端的内存能力、性能有一定要求和影响,然而不是所有用户都使用性能符合目标程序的高要求的终端,还存在部分使用性能相对较差的终端的用户,那么当所有用户都运行相同性能需求的目标程序,则在超过终端运行能力时,可能出现闪退等会情况,不仅影响用户的使用体验,还可能对终端设备造成伤害,因此为了实现目标程序在终端上的目标显示效果,预设性能需求可以包括对内容效果显示性能的需求项。
S204、生成每个性能风险因素各自对应的端性能优化方案。
可选地,在不同的性能需求方面的性能风险因素,表明了目标程序在不同方面可能出现的端性能问题,这些端性能问题可能是目标程序中不同代码、配置而导致的,那么就需要对不同方面的性能风险决策出针对性的端性能优化方案,也即在本说明书实施例中,生成每个性能风险因素各自对应的端性能优化方案。这样使用针对性的端性能优化方案来保证目标程序在不同终端场景中的最终呈现效果,可以使得目标程序能够在实际使用场景中平稳运行。
S206、对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。
可选地,在生成每个性能风险因素各自对应的端性能优化方案之后,可以针对各性能风险因素执行每个性能风险因素各自对应的端性能优化方案,也即对目标程序执行所有端性能优化方案,由于端性能优化方案是按照预设性能需求对应的性能风险生成的,那么根据端性能优化方案对目标程序进行更新优化,这样得到符合预设性能需求的端性能优化程序,就可以完成对目标程序的性能风险检出和处理,使得目标程序能够在实际使用场景中平稳运行,提升用户的使用交互体验。
在本说明书实施例中,提供一种程序端性能优化方法,根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;生成每个性能风险因素各自对应的端性能优化方案;对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。由于目标程序的性能会影响目标程序的运行效果,那么从目标程序的运行情况也能反映出程序的性能状况,基于此,可以根据目标程序的运行数据进行性能测试,此时就可以获知目标程序的性能风险因素,对每个风险因素生成对应的端性能优化方案,使用端性能优化方案来对目标程序的性能进行优化,使得目标程序能够在实际使用场景中平稳运行,提升用户的使用交互体验。
请参阅图3,图3为本说明书实施例提供的一种程序端性能优化方法的流程示意图。
如图3所示,程序端性能优化方法至少可以包括:
S302、解析目标程序的所有技术栈,在各技术栈对应的运行场景下运行目标程序,得到目标程序的运行数据。
可选地,目标程序的性能决定了目标程序最终的内容呈现效果,特别是当目标程序的内容为了实现科技化、影视级别的效果,程序内部结构就会更加复杂化,那么目标程序在运行时,也会对终端的内存能力、端性能有一定要求和影响,为了保证目标程序运行时的端性能稳定,不会对终端造成不良影响,就需要对程序端性能进行风险评估,并对可能存在影响的风险因素进行处理。
可选地,当对大型活动现场开发用于提供互动渠道的目标程序时,目标程序中一般会集成多个内容、玩法等,支持每个内容、玩法的技术栈都是的独立开发的,技术栈(TechStack)是指在软件开发过程中所使用的各种技术和工具的集合,包括编程语言、开发框架、数据库、操作系统、云服务等等。技术栈也就是目标程序中具体内容的实现基础,不同的应用场景和项目需求会对技术栈的选择产生不同的影响,因此选择适合的技术栈是保证项目开发顺利进行的重要因素之一。在实际应用中,一个团队或者公司所使用的技术栈通常是多样化的,根据具体的开发需求和开发场景来选择不同的技术栈,在本说明书实施例中,开发目标程序时,根据程序中各玩法的原理、目标效果不同,其使用的技术栈中包括的技术体系也会不同,例如对于涉及AR技术的玩法一,其为了实现用户与现场显示屏幕之间的互动,可能会同时采用实景识别的AR技术、3dof技术、以及多个视频的同时播放,来实现最终体现在终端中的效果。
可选地,由于程序的最终表现与其使用的技术栈息息相关,那么在对目标程序进行性能测试时,需要先解析目标程序的所有技术栈,然后关注使用各技术栈的运行场景,来验证目标程序的运行情况,也即在各技术栈对应的运行场景下运行所述目标程序,得到所述目标程序的运行数据,这样可以从不同的技术栈角度出发,验证目标程序中的具体内容、玩法在实际使用场景中的运行效果。
S304、根据目标程序的运行数据对目标程序进行性能测试。
可选地,得到目标程序在各技术栈对应的运行场景下的运行数据之后,根据运行数据可以进行对目标程序的性能测试。具体的,可以对目标程序进行mperf性能测试,mperf是一个微架构层次的算子性能调优工具箱,主要面向移动/嵌入式平台的CPU/GPU多种性能核心指标,目标是“为构建一个更接近闭环的算子调优反馈回路”提供系列基础工具,mperf工具能够自动解析待测程序的技术栈架构然后对技术栈中的各种算子在各种情况下进行测试,那么通过mperf工具就可以有利于在性能测试中尤其关注技术栈性能瓶颈点在多种类型的终端中的程序运行情况,能够体现出终端内运行目标程序时CPU、GPU、内存、FPS等多种端性能指标的走势情况。
S306、预设性能需求包括内存释放性能时,确定目标程序的内存泄漏风险因素。
可选地,通过上述实施例的介绍可以知道,预设性能需求可以包括对内存释放性能的需求项,那么性能测试时可以对内存泄漏风险进行针对性的测试,确定目标程序的内存泄漏风险因素。目标程序的形式多样,可以开发为独立的应用软件,那么用户使用时需要下载目标程序对应的目标软件才能使用服务;而为了便于用户使用,目标程序可以以小程序的形式直接开发在已被大量用户下载的应用软件中,那么内存泄漏风险排查时,不仅需要测试目标程序内部的内存泄漏,也即内部资源是否为释放,还需要测试目标程序所在的应用软件(客户端)是否发生了内存泄漏,也即每次目标程序使用结束,应用软件是否释放了目标程序的无用资源。
进一步地,对于端内存泄漏因素,可以通过多次进入、退出目标程序,查看应用软件所占内存是否保持稳定;对于目标程序内部的内存泄漏因素,可以通过在程序内部不断的切换不同内容页面、玩法等方式,来查看过程中程序内部技术点是否进行内存释放。
S308、定位内存泄漏风险因素对应的内存泄漏代码段,对内存泄漏代码段生成内存释放方案。
可选地,通过上述性能测试和内存泄漏风险的排查后,若测试结果体现出目标程序的内部存在内存泄漏,那么可以定位内存泄漏风险因素对应的内存泄漏代码段,内存泄漏代码段就可以说明导致内存泄漏发生的原因,例如是由于存在某段代码指向的资源没有被配置为释放等原因,基于此可以直接对内存泄漏代码段生成内存释放方案,内存释放方案是根据内存泄漏代码段的具体情况制定对应的优化策略。
可选地,另一方面,若测试结果体现出目标程序运行时应用软件客户端会存在内存泄漏,此时定位内存泄漏风险因素对应的内存泄漏代码段,也就可以定位应用软件客户端中具体导致内存泄漏的代码堆栈,由于应用软件客户端中会存在多个程序,那么可能是目标程序导致的端内存泄漏,也可能是其他程序导致的端内存泄漏。对于两种不同的可能,若是目标程序导致的端内存泄漏,则可以生成针对目标程序进行优化的内存释放方案;若是其他与目标程序无关的程序的堆栈导致的端内存泄漏,考虑到程序的优化工作量和工作时间的紧迫,则可以生成将该程序关闭的内存释放方案,不需要对无关程序进行紧急优化,而是可以选择在后续应用软件客户端的版本迭代中,对泄漏堆栈进行优化。
S310、预设性能需求包括内容效果显示性能时,确定目标程序在至少一类目标终端中的显示效果风险因素。
可选地,通过上述实施例的介绍可以知道,预设性能需求可以包括对内容效果显示性能的需求项,那么为了保证目标程序在各种终端中运行时的性能稳定,避免对终端造成不良影响,在性能测试时可以对显示效果风险进行针对性的测试,确定目标程序在至少一类目标终端中的显示效果风险因素,显示效果风险因素可以说明目标程序在不同终端中运行时会呈现的显示效果。
S312、按照终端类型和操作系统类型对所有目标终端进行终端分级,分别对不同终端级别生成各终端级别对应的资源配置方案。
可选地,显示效果风险因素的分析结果说明了各类终端对程序内容的显示效果的体现能力和支持能力,那么考虑到终端类型和操作系统是可以说明终端的性能条件的,那么可以按照终端类型和操作系统类型对所有目标终端进行终端分级,将市面上存在的所有类型的终端分为不同的级别,分别对不同终端级别生成各终端级别对应的资源配置方案,资源配置方案中可以规定目标程序在不同级别的终端中可以实现的配置,比如在高端机中,就可以实现高要求的显示效果,那么目标程序就进行高配置;在低端机中,只能实现较低要求的显示效果,那么目标程序就进行低配置,这样达到效果目标的同时,解除了高性能压力带来的端性能稳定风险。
S314、根据资源配置方案生成目标程序在各终端级别对应的程序资源包,以使得每个目标终端在使用目标程序时按照自身对应的终端级别拉取到对应的程序资源包。
可选地,资源配置方案是对不同的终端级别进行不同的程序配置,以使得各终端最终以自身的性能能够承担自己拉取的目标程序的运行,那么在终端需要使用目标程序时,需要按照自身对应的终端级别拉取到对应的程序资源包,因此本说明书实施例中,对目标程序执行所有端性能优化方案时,不仅需要针对上述存在的内存泄漏风险对目标程序本身进行优化更新,还需要在程序本身更新好之后,根据资源配置方案生成目标程序在各终端级别对应的程序资源包,以使得每个目标终端在使用目标程序时按照自身对应的终端级别拉取到对应的程序资源包。
在本说明书实施例中,提供一种程序端性能优化方法,解析目标程序的所有技术栈,在各技术栈对应的运行场景下运行目标程序,得到目标程序的运行数据,这样可以从不同的技术栈角度出发,验证目标程序中的具体内容、玩法在实际使用场景中的运行效果;根据目标程序的运行数据进行性能测试,确定目标程序的内存泄漏风险因素,定位内存泄漏风险因素对应的内存泄漏代码段,对内存泄漏代码段生成内存释放方案,根据不同的内存泄漏情况,进行对应的处理,可以使得终端能够及时释放应该释放的内存空间,不影响用户对终端的使用。另一方面,性能测试时,确定目标程序在至少一类目标终端中的显示效果风险因素,按照终端类型和操作系统类型对所有目标终端进行终端分级,分别对不同终端级别生成各终端级别对应的资源配置方案,这样达到效果目标的同时,解除了高性能压力带来的端性能稳定风险,避免目标程序对终端造成不良影响。
请参阅图4,图4为本说明书实施例提供的一种程序端性能优化装置的结构框图。如图4所示,程序端性能优化装置400包括:
程序性能测试模块410,用于根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;
优化方案决策模块420,用于生成每个性能风险因素各自对应的端性能优化方案;
性能质量保障模块430,用于对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。
可选地,程序端性能优化装置400还包括:测试场景搭建模块,用于解析目标程序的所有技术栈,在各技术栈对应的运行场景下运行目标程序,得到目标程序的运行数据。
可选地,预设性能需求包括内存释放性能、内容效果显示性能中的至少一项。
可选地,预设性能需求包括内存释放性能时,程序性能测试模块410,还用于确定目标程序的内存泄漏风险因素;优化方案决策模块420,还用于定位内存泄漏风险因素对应的内存泄漏代码段,对内存泄漏代码段生成内存释放方案。
可选地,预设性能需求包括内容效果显示性能时,程序性能测试模块410,还用于确定目标程序在至少一类目标终端中的显示效果风险因素;优化方案决策模块420,还用于按照终端类型和操作系统类型对所有目标终端进行终端分级,分别对不同终端级别生成各终端级别对应的资源配置方案。
可选地,性能质量保障模块430,还用于根据资源配置方案生成目标程序在各终端级别对应的程序资源包,以使得每个目标终端在使用目标程序时按照自身对应的终端级别拉取到对应的程序资源包。
在本说明书实施例中,提供一种程序端性能优化装置,其中,程序性能测试模块,用于根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;优化方案决策模块,用于生成每个性能风险因素各自对应的端性能优化方案;性能质量保障模块,用于对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。由于目标程序的性能会影响目标程序的运行效果,那么从目标程序的运行情况也能反映出程序的性能状况,基于此,可以根据目标程序的运行数据进行性能测试,此时就可以获知目标程序的性能风险因素,对每个风险因素生成对应的端性能优化方案,使用端性能优化方案来对目标程序的性能进行优化,使得目标程序能够在实际使用场景中平稳运行,提升用户的使用交互体验。
本说明书实施例提供一种包含指令的计算机程序产品,当计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中任一项的方法的步骤。
本说明书实施例还提供了一种计算机存储介质,计算机存储介质可以存储有多条指令,指令适于由处理器加载并执行如上述实施例中的任一项的方法的步骤。
请参见图5,图5为本说明书实施例提供的一种终端的结构示意图。如图5所示,终端500可以包括:至少一个终端处理器501,至少一个网络接口504,用户接口503,存储器505,至少一个通信总线502。
其中,通信总线502用于实现这些组件之间的连接通信。
其中,用户接口503可以包括显示屏(Display)、摄像头(Camera),可选用户接口503还可以包括标准的有线接口、无线接口。
其中,网络接口504可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。
其中,终端处理器501可以包括一个或者多个处理核心。终端处理器501利用各种接口和线路连接整个终端500内的各个部分,通过运行或执行存储在存储器505内的指令、程序、代码集或指令集,以及调用存储在存储器505内的数据,执行终端500的各种功能和处理数据。可选的,终端处理器501可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。终端处理器501可集成中央处理器(Central Processing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到终端处理器501中,单独通过一块芯片进行实现。
其中,存储器505可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory,ROM)。可选的,该存储器505包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器505可用于存储指令、程序、代码、代码集或指令集。存储器505可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等;存储数据区可存储上面各个方法实施例中涉及到的数据等。存储器505可选的还可以是至少一个位于远离前述终端处理器501的存储装置。如图5所示,作为一种计算机存储介质的存储器505中可以包括操作系统、网络通信模块、用户接口模块以及程序端性能优化程序。
在图5所示的终端500中,用户接口503主要用于为用户提供输入的接口,获取用户输入的数据;而终端处理器501可以用于调用存储器505中存储的程序端性能优化程序,并具体执行以下操作:
根据目标程序的运行数据对目标程序进行性能测试,确定目标程序在预设性能需求上存在的至少一个性能风险因素;
生成每个性能风险因素各自对应的端性能优化方案;
对目标程序执行所有端性能优化方案,得到符合预设性能需求的端性能优化程序。
在一些实施例中,终端处理器501在执行根据目标程序的运行数据对目标程序进行性能测试之前,还具体执行以下步骤:解析目标程序的所有技术栈,在各技术栈对应的运行场景下运行目标程序,得到目标程序的运行数据。
在一些实施例中,预设性能需求包括内存释放性能、内容效果显示性能中的至少一项。
在一些实施例中,预设性能需求包括内存释放性能时,终端处理器501在执行确定目标程序在预设性能需求上存在的至少一个性能风险因素时,具体执行以下步骤:确定目标程序的内存泄漏风险因素;终端处理器501在执行生成每个性能风险因素各自对应的端性能优化方案时,具体执行以下步骤:定位内存泄漏风险因素对应的内存泄漏代码段,对内存泄漏代码段生成内存释放方案。
在一些实施例中,预设性能需求包括内容效果显示性能时,终端处理器501在执行确定目标程序在预设性能需求上存在的至少一个性能风险因素时,具体执行以下步骤:确定目标程序在至少一类目标终端中的显示效果风险因素;终端处理器501在执行生成每个性能风险因素各自对应的端性能优化方案时,具体执行以下步骤:按照终端类型和操作系统类型对所有目标终端进行终端分级,分别对不同终端级别生成各终端级别对应的资源配置方案。
在一些实施例中,终端处理器501在执行对目标程序执行所有端性能优化方案时,具体执行以下步骤:根据资源配置方案生成目标程序在各终端级别对应的程序资源包,以使得每个目标终端在使用目标程序时按照自身对应的终端级别拉取到对应的程序资源包。
在本说明书所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DigitalSubscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(DigitalVersatile Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书实施例并不受所描述的动作顺序的限制,因为依据本说明书实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书实施例所必须的。
另外,还需要说明的是,本说明书实施例所涉及的信息(包括但不限于用户设备信息、用户个人信息等)、数据(包括但不限于用于分析的数据、存储的数据、展示的数据等)以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上为对本说明书实施例所提供的一种程序端性能优化方法、装置、存储介质以及终端的描述,对于本领域的技术人员,依据本说明书实施例的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本说明书实施例的限制。
Claims (10)
1.一种程序端性能优化方法,所述方法包括:
根据目标程序的运行数据对所述目标程序进行性能测试,确定所述目标程序在预设性能需求上存在的至少一个性能风险因素;
生成每个性能风险因素各自对应的端性能优化方案;
对所述目标程序执行所有端性能优化方案,得到符合所述预设性能需求的端性能优化程序。
2.根据权利要求1所述的方法,所述根据目标程序的运行数据对所述目标程序进行性能测试之前,还包括:
解析目标程序的所有技术栈,在各技术栈对应的运行场景下运行所述目标程序,得到所述目标程序的运行数据。
3.根据权利要求1所述的方法,所述预设性能需求包括内存释放性能、内容效果显示性能中的至少一项。
4.根据权利要求3所述的方法,所述预设性能需求包括所述内存释放性能时,所述确定所述目标程序在预设性能需求上存在的至少一个性能风险因素,包括:
确定所述目标程序的内存泄漏风险因素;
所述生成每个性能风险因素各自对应的端性能优化方案,包括:
定位所述内存泄漏风险因素对应的内存泄漏代码段,对所述内存泄漏代码段生成内存释放方案。
5.根据权利要求3所述的方法,所述预设性能需求包括所述内容效果显示性能时,所述确定所述目标程序在预设性能需求上存在的至少一个性能风险因素,包括:
确定所述目标程序在至少一类目标终端中的显示效果风险因素;
所述生成每个性能风险因素各自对应的端性能优化方案,包括:
按照终端类型和操作系统类型对所有目标终端进行终端分级,分别对不同终端级别生成各终端级别对应的资源配置方案。
6.根据权利要求5所述的方法,所述对所述目标程序执行所有端性能优化方案,包括:
根据所述资源配置方案生成所述目标程序在各终端级别对应的程序资源包,以使得每个目标终端在使用所述目标程序时按照自身对应的终端级别拉取到对应的程序资源包。
7.一种程序端性能优化装置,所述装置包括:
程序性能测试模块,用于根据目标程序的运行数据对所述目标程序进行性能测试,确定所述目标程序在预设性能需求上存在的至少一个性能风险因素;
优化方案决策模块,用于生成每个性能风险因素各自对应的端性能优化方案;
性能质量保障模块,用于对所述目标程序执行所有端性能优化方案,得到符合所述预设性能需求的端性能优化程序。
8.一种包含指令的计算机程序产品,当所述计算机程序产品在计算机或处理器上运行时,使得所述计算机或所述处理器执行如权利要求1至6任意一项所述方法的步骤。
9.一种计算机存储介质,所述计算机存储介质存储有多条指令,所述指令适于由处理器加载并执行如权利要求1~6任意一项的所述方法的步骤。
10.一种终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311441204.4A CN117519768A (zh) | 2023-10-31 | 2023-10-31 | 程序端性能优化方法、装置、存储介质以及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311441204.4A CN117519768A (zh) | 2023-10-31 | 2023-10-31 | 程序端性能优化方法、装置、存储介质以及终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117519768A true CN117519768A (zh) | 2024-02-06 |
Family
ID=89761709
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311441204.4A Pending CN117519768A (zh) | 2023-10-31 | 2023-10-31 | 程序端性能优化方法、装置、存储介质以及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117519768A (zh) |
-
2023
- 2023-10-31 CN CN202311441204.4A patent/CN117519768A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8605613B2 (en) | Mobile hardware and network environment simulation | |
CN113190314B (zh) | 互动内容生成方法、装置、存储介质及电子设备 | |
CN106649084A (zh) | 函数调用信息的获取方法及装置、测试设备 | |
CN110716853A (zh) | 一种测试脚本录制方法、应用程序测试方法和相关装置 | |
CN112187585A (zh) | 网络协议测试方法及装置 | |
CN109739762A (zh) | 一种应用程序的性能测试方法与装置 | |
CN111045653B (zh) | 系统生成方法、装置、计算机可读介质及电子设备 | |
US11095957B2 (en) | Method and apparatus for publishing information, and method and apparatus for processing information | |
CN112882930B (zh) | 自动化测试方法、装置、存储介质及电子设备 | |
CN111330280A (zh) | 游戏中的数据处理方法、装置、存储介质与电子设备 | |
CN110096420A (zh) | 一种数据处理方法、系统和装置 | |
EP4110484A1 (en) | Management of provisioning of video game during game preview | |
Tuovenen et al. | MAuto: Automatic mobile game testing tool using image-matching based approach | |
US20230316946A1 (en) | System and method for vr training | |
CN108829595B (zh) | 测试方法、装置、存储介质及电子设备 | |
US20120100912A1 (en) | Method of reusing physics simulation results and game service apparatus using the same | |
Corno et al. | XDN: cross-device framework for custom notifications management | |
CN117519768A (zh) | 程序端性能优化方法、装置、存储介质以及终端 | |
CN115858556A (zh) | 一种数据处理方法、装置、存储介质及电子设备 | |
CN117519773A (zh) | 程序质量保障方法、装置、存储介质以及终端 | |
CN112286808A (zh) | 应用程序的测试方法、装置、电子设备及介质 | |
CN113656268B (zh) | 业务服务的性能测试方法、装置、电子设备和存储介质 | |
CN107885659A (zh) | 对客户端的请求模拟响应的方法及装置、设备 | |
CN115509671B (zh) | 互动课件播放方法、装置、设备和存储介质 | |
CN114003206A (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 |