CN116909620A - 程序优化方法、平台、设备和存储介质 - Google Patents

程序优化方法、平台、设备和存储介质 Download PDF

Info

Publication number
CN116909620A
CN116909620A CN202311167594.0A CN202311167594A CN116909620A CN 116909620 A CN116909620 A CN 116909620A CN 202311167594 A CN202311167594 A CN 202311167594A CN 116909620 A CN116909620 A CN 116909620A
Authority
CN
China
Prior art keywords
program
training
adjusted
optimization
original program
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
CN202311167594.0A
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.)
Beijing Jidu Technology Co Ltd
Original Assignee
Beijing Jidu Technology 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 Beijing Jidu Technology Co Ltd filed Critical Beijing Jidu Technology Co Ltd
Priority to CN202311167594.0A priority Critical patent/CN116909620A/zh
Publication of CN116909620A publication Critical patent/CN116909620A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • 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
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T10/00Road transport of goods or passengers
    • Y02T10/10Internal combustion engine [ICE] based vehicles
    • Y02T10/40Engine management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明实施例提供一种程序优化方法、平台、设备和存储介质,该方法包括:获取原始程序。然后,将原始程序段的初始性能指标输入动作预测模型,以由该模型输出针对原始程序的预测调整动作,并通过执行该动作得到调整后程序。最终,根据预测调整动作的奖励值确定原始程序的优化是否完成,也即是根据奖励值确定执行预测调整动作后是否提升原始程序的性能。上述方法中,动作预测模型能够根据原始程序的初始性能指标输出预测调整动作,该动作可以为用户提示程序的调整方向,以提高程序优化的效率。同时还可以根据该动作的奖励值确定优化后程序段的性能是否达标。

Description

程序优化方法、平台、设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序优化方法、平台、设备和存储介质。
背景技术
软件是一系列按照特定顺序组织的计算机数据和指令的集合。一般来讲软件被划分为系统软件、应用软件和介于这两者之间的中间件。软件具体可以通过编写程序实现,并且程序具体又可以包括多个程序段。
在实际中,在开发测试阶段、实际运行阶段偶读可以不断对程序进行优化以保证软件的性能。因此,如何实现程序优化就成为一个亟待解决的问题。
发明内容
有鉴于此,本发明实施例提供一种程序优化方法、平台、设备和存储介质,用以模型输出的预测结果进行程序优化。
第一方面,本发明实施例提供一种程序优化方法,包括:
获取原始程序;
将所述原始程序的初始性能指标输入动作预测模型,以由所述动作预测模型输出针对所述原始程序的预测调整动作;
根据所述预测调整动作的奖励值,确定所述原始程序是否优化完成。
第二方面,本发明实施例提供一种程序优化平台,包括:
优化组件以及动作预测模型;
所述优化组件,用于获取待优化的原始程序;确定所述动作预测模型输出的预测调整动作的奖励值;根据所述奖励值,确定所述原始程序是否优化完成;
所述动作预测模型,用于接收所述优化组件输入的所述原始程序的初始性能指标;输出所述原始程序对应的所述预测调整动作。
第三方面,本发明实施例提供一种电子设备,包括处理器和存储器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行时实现上述第一方面中的程序优化方法。该电子设备还可以包括通信接口,用于与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种非暂时性机器可读存储介质,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器至少可以实现如第一方面所述的程序优化方法。
本发明实施例提供的程序优化方法,获取原始程序。然后,将原始程序的初始性能指标输入动作预测模型,以由该模型输出针对原始程序的预测调整动作,并根据该动作得到调整后程序。最终,根据预测调整动作的奖励值确定原始程序的优化是否完成,也即是根据奖励值确定执行预测调整动作后是否提升原始程序的性能。
上述方法中,动作预测模型可以根据原始程序的初始性能指标输出预测调整动作,该动作可以为用户提示程序的调整方向,以提高程序优化的效率。同时还可以根据该动作的奖励值确定优化后程序段的性能是否达标。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种程序优化方法的流程图;
图2为图1所示实施例中步骤S103的一种实现方式的流程图;
图3为本发明实施例提供的一种程序优化平台的结构示意图;
图4为本发明实施例提供的一种程序优化装置的结构示意图;
图5为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于识别”。类似地,取决于语境,短语“如果确定”或“如果识别(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当识别(陈述的条件或事件)时”或“响应于识别(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。
在对本发明下述各实施例提供的程序优化方法进行详细描述之前,还可以先以下概念进行解释:
强化学习:代理通过学习环境的动态模型来预测未来状态和奖励。强化学习中涉及到的元素包括:代理、状态、动作和奖励。
针对本发明下述实施例的程序优化场景,状态可以包括程序对应的性能指标。
动作可以包括修改程序的函数、表达式、语句、参数等至少一种要素,也可以包括为程序段添加注释。
代理用于根据状态预测动作。代理即为下述各实施例中的动作预测模型。
奖励值表明执行上述代理预测出的动作后程序性能改善方向,若性能提升则奖励值为正,否则为负。奖励值由奖励函数输出。
在对本发明下述各实施例提供的程序优化方法进行详细描述之前,还可以先对程序优化的背景进行描述:
在实际中,为了保证程序的正常运行,在程序的开发测试阶段,可以对该程序进行多次调整,并对调整后的程序进行性能测试。性能测试结果可以反映对程序的调整是否提高了该程序的性能,即程序是否优化成功。并且程序通常可以进行多次调整才能实现性能提升。
在实际中,实现任一功能的程序可以由多个具有不同功能标识的程序段构成,即多个程序段协同工作以实现该功能。则举例说明在开发测试阶段的优化过程:版本1.0的程序可以由版本1.0的各程序段构成,则调整1.0版本的程序具体来说就是对其中存在异常的至少一个程序段进行调整,则经过多次调整后可以先后得到版本1.1的程序、版本1.2的程序……版本1.N的程序。在没得到一个版本的程序后,都可以对该版本的程序进行性能测试。最终,可以将性能最佳的程序确定为版本2.0的程序。
为了描述清楚,可以将需要进行优化的程序统称为目标程序。完成开发测试的目标程序还可以进一步上线运行即部署到系统中,以与系统中的其他程序共同运行,实现整个系统的正常运行。但在系统的实际运行中,即使是之前通过测试的目标程序也有可能与其他程序发生运行冲突,此时,还需要再次对目标程序中的各程序段进行调整,以改善与其他程序的冲突。此时,程序段的调整通常也需要进行多次。
可选地,目标程序部署在系统后,还可以对目标程序进行定期升级或者实时升级。此阶段也可以对目标程序进行多次调整,以实现性能优化,从而实现原始程序的升级。其中,当明显感觉目标程序的性能异常时可以进行实时升级。
则无论是在开发测试阶段还是上线运行阶段、上线后的升级阶段内的程序,都可以使用本发明下述各实施例提供方法来实现程序优化,以保证原始程序的性能。
基于上述描述,下面结合附图对本发明的一些实施方式作详细说明。在各实施例之间不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
图1为本发明实施例提供的一种程序优化方法的流程图,本发明实施例提供的该程序优化方法可以由上述线上的优化平台执行。为后续描述清楚,可以将程序优化平台简称为优化平台。如图1所示,该方法包括如下步骤:
S101,获取原始程序。
用户可以将原始程序输入优化平台,以使优化平台获取此原始程序。可选地,原始程序可以是处于开发测试阶段、上线运行阶段或者升级阶段的程序。之后,优化平台可以采用不同的方式判断是否需要进一步执行下述步骤S102,也即是判断是否启动对原始程序的优化。
对于处于开发测试阶段或者上线后的升级阶段的原始程序,可选地,优化平台可以在自身部署的运行环境中直接运行原始程序,以得到该原始程序的初始性能指标。之后,优化平台可以根据此初始性能指标确定该原始程序的初始性能分数。若初始性能分数小于预设阈值,表明当前原始程序的性能较差,则优化平台可以进一步执行下述步骤S102。其中,预设阈值可以为满足上线条件性能分数。
需要说明的有,原始程序在运行环境中运行并不是原始程序的上线。
可选地,程序的性能指标可以包括程序的执行时间、CPU时间、内存、磁盘吞吐量以及响应时间等等。其中,执行时间表示程序从开始执行到运行结束的时间。CPU时间表明执行程序使用的线程占用中央处理器(Central Processing Unit,简称CPU)的时间。内存即为程序运行时占用的内存空间。磁盘吞吐量表明程序运行时输入/输出(Input/Output,简称I/O)的使用情况。响应时间表明开始执行程序到给出响应结果所需的时间。
对于处于上线运行状态的原始程序,优化平台可以得到原始程序在系统中运行的过程中产生的日志数据。可选地,优化平台可以通过对日志数据进行分析,确定出原始程序中是否存在异常函数。若存在异常函数,则优化平台再在原始程序中确定与异常函数存在调用关系的上下文代码。此上下文代码以及异常函数可以共同构成原始程序中的待优化程序段。则优化平台可以进一步执行下述步骤S102,通过优化上述待优化程序段以实现整个原始程序的优化。
可选地,日志数据可以记录有原始程序中函数的运行状态、标题、功能标识、各函数所属程序段的进程号等等。可选地,优化平台可以基于日志中记录的内容,通过堆栈跟踪等方式定位异常函数。可选地,待优化程序段中存在的异常可以包括空指针引用、内存泄漏、死锁或者安全漏洞,比如SQL注入和跨站点脚本攻击等等。
S102,将原始程序的初始性能指标输入动作预测模型,以由动作预测模型输出原始程序的预测调整动作。
优化平台在按照上述任一种方式确定启动对原始程序进行优化后,则可以进一步将原始程序的初始性能指标输入到优化平台部署的动作预测模型中,以由该模型输出原始程序对应的预测调整动作。即动作预测模型用以对原始程序的调整方式进行预测。
可选地,动作预测模型具体可以表现为神经网络模型,比如深度Q网络(Deep Q-network,简称DQN)。其中,动作预测模型的具体训练过程可以参见下述相关实施例中的描述。可选地,该预测调整动作可以包括修改程序中表达式、语句和函数中的至少一种,或者调整程序的参数,或者为程序添加注释等等,其中,程序的参数具体又可以包括常量和变量。
根据上述举例的预测调整动作来看,动作预测模型输出的动作实际上对应于不同的调整方向。具体地,修改程序的表达式、语句或者函数可以认为是从执行逻辑方向进行程序的修改;修改程序的参数可以认为是从执行灵活性方向进行程序的修改;为程序添加注释可以认为是修改程序的可读性。
S103,根据预测调整动作的奖励值,确定原始程序是否完成优化。
最终,优化平台可以得到预测调整动作的奖励值,并根据此奖励值确定原始程序是否优化完成。可选地,若奖励值为正,表明执行预测调整动作后得到的调整后程序的性能已经优于原始程序的性能,则确定完成优化,优化平台保留此调整后程序。若奖励值为负,表明调整后程序的性能并未得到提升,则原始程序的优化并未完成,优化平台可以不保留调整后程序,并重新对原始程序进行下一次调整,直至得到性能更优的程序。
对于奖励值的获取,一种可选地方式,优化平台可以直接比对调整后程序的调整后性能指标与原始程序的初始性能指标,以确定调整后程序的性能是否提升。若调整后性能指标优于初始性能指标,则奖励值为正,否则奖励值为负。
另一种可选地方式,优化平台可以将调整后程序的调整后性能指标和预测调整动作输入奖励函数,以由奖励函数直接输出预测调整动作的奖励值。其中,奖励函数可以通过训练的方式得到。具体训练过程可以参见下述相关实施例中的描述。
又一种可选地确定方式,优化平台可以根据调整后性能指标确定调整后程序的调整后性能分数。优化平台可以将调整后性能分数和原始程序的初始性能分数之差确定为预测整动作的奖励值。其中,性能分数根据性能指标计算得到。
又一种可选地方式,优化平台可以将调整后性能分数与预设分数之差确定为预测调整动作的奖励值。其中,该预设分数可以为程序的性能达到本次优化的性能要求时所应具有的性能分数。
在上述得到奖励值的不同方式中均使用到了调整后程序的调整后性能指标。则对于调整后性能指标的获取,可选地,可以在优化平台自身提供的运行环境中运行调整后程序,以得到调整后性能指标。可选地,优化平台还可以将调整后程序输入自身部署的指标预测模型,以由指标预测模型输出调整后性能指标。其中,指标预测模型的训练过程可以参见后续相关实施例中的描述。
本实施例中,优化平台获取原始程序。然后,将原始程序的初始性能指标输入动作预测模型,以由该模型输出针对原始程序的预测调整动作,并根据该动作得到调整后程序。最终,根据预测调整动作的奖励值确定原始程序的优化是否完成,也即是根据奖励值确定执行预测调整动作后是否提升原始程序的性能。上述方法中,动作预测模型可以根据原始程序的初始性能指标输出预测调整动作,该动作可以为用户提示程序的调整方向,以提高程序优化的效率。同时还可以根据该动作的奖励值确定优化后程序段的性能是否达标。
可选地,对于处于上线运行阶段的原始程序,为了更准确地得到待优化程序段,还可以对日志数据进行预处理。该预处理过程具体可以包括数据清洗、数据转换、数据标准化中的至少一种。其中,数据清洗即为删除或纠正不完整、不准确或者不相关的数据。数据转换即为将数据转换为适合分析的格式。数据标准化即为将数据转换为统一的度量衡标准。
可选地,本发明上述和下述各实施例中提及的、待优化的原始程序可以作为消息中间件,该消息中间件具体可以应用在车联网场景中。消息中间件具体可以是基于面向服务(Service-Oriented Architecture ,简称SOA)架构创建的中间件。
在该场景中,消息中间件具体用于转发车辆的运行数据和/或服务器对车辆的控制指令。其中,车辆的运行数据可以由一智能车辆发送至服务器或者发送至其他智能车辆,控制指令可以由服务器发送至智能车辆。可选地,控制指令具体可以是在启动自动驾驶功能后产生的运行状态控制指令、车内环境控制指令等等。
另外,上述实施例中已经说明上述优化方法可以对于处于开发测试阶段、上线运行阶段或者升级阶段的程序进行优化。则对处于上线运行阶段的程序的具体优化过程可以描述为:
1、原始程序在系统中上线运行,并且在运行过程中产生日志数据以及该原始程序的初始性能指标。
2、优化平台获取此日志数据,并在日志数据中确定是否存在异常函数。
3、若存在异常函数,则优化平台可以在原始程序中确定与异常函数存在调用关系的上下文代码,其中,异常函数和上下文代码共同构成原始程序中的待优化程序段。
4、同时,若存在异常函数,则优化平台可以将原始程序的初始性能指标输入自身内部署的动作预测模型,以由该模型输出针对原始程序中待优化程序段的预测调整动作。
5、优化平台可以按照预测调整动作对待优化程序段进行优化,以得到调整后程序。
6、优化平台可以进一步在自身的运行环境中运行调整后程序,以得到调整后性能指标,并根据此性能指标确定预测调整动作的奖励值。
7、优化平台根据此奖励值的正负确定是否完成对原始程序的优化。
本实施例中各步骤的具体执行过程以及所能实现的技术效果可以参见上述各实施例中的相关描述。
在使用上述各实施例提供的程序优化方法中,先后使用到了动作预测模型、指标预测模型以及奖励函数。三者都可以通过训练得到。并且可选地,上述三者的训练过程可以由优化平台进行也可以由单独的训练平台执行。当训练由训练平台执行时,训练平台训练好的模型以及函数可以进一步部署到优化平台中。下面可以分别说明训练平台对模型以及函数的训练过程。
对于动作预测模型的训练过程可以描述为:
训练平台可以获取第一训练样本集,其中,第一训练样本集中的任一条训练样本可以包括训练程序的性能指标、训练程序对应的参考调整动作以及此参考调整动作的参考奖励值。其中,训练程序及其性能指标的获取过程可以与原始程序的获取过程相同,可以参见图1所示实施例中的相关描述,在此不再赘述。训练平台可以将训练样本的性能指标作为训练数据,可以换将根据参考调整动作以及参考奖励值作为引导信息,训练动作预测模型。其中,参考奖励值越大,表明该条训练样本中的参考调整动作越准确。
上述的训练过程中,借助训练样本中参考调整动作以及参考奖励值之间的关系,可以使动作预测模型学习到对于不同性能指标的程序应该给出何种调整动作是合理的。
可选地,还可以对训练样本集中的训练样本采用有放回的方式对动作预测模型进行多轮训练。
本实施例中,通过强化学习的方式进行动作预测模型的训练,以保证代理能够输出准确的调整动作,以更准确地实现程序的优化。
可选地,随着程序的不断调整优化,动作预测模型也需要适时地进行更新训练。为了保证优化平台的正常使用,动作预测模型的后续更新训练可以在训练平台上进行。即训练平台可以对优化平台上正在使用的动作预测模型进行备份,以得到模型副本。并对此模型副本进行离线训练,以得到目标模型。最终,训练平台可以将该目标模型部署到优化平台中,该目标模型也即是上述各实施例中使用的预测动作模型。也即是优化平台上模型的更新频率可以小于训练平台上模型副本的更新频率。
本实施例中,通过离线训练能够在保证优化平台正常使用的情况下,对动作预测模型进行实时更新。
对于奖励函数的训练过程可以描述为:
训练平台可以获取第二训练样本集,此第二训练样本集中的任一条训练样本可以包括训练程序的参考调整动作,对训练程序执行参考调整动作后得到的调整后训练程序的调整后参考性能指标,以及此参考调整动作的参考奖励值。然后,将调整后参考性能指标和参考调整动作作为输入,将参考奖励值作为监督信息,训练奖励函数。
具体地,将调整后参考性能指标和参考调整动作输入奖励函数,以由该奖励函数输出一个预测奖励值,并对此预测奖励值和训练样本中的参考奖励值进行损失计算,根据计算出的损失值训练奖励函数,以使其收敛。
本实施例中,通过有监督的方式训练奖励函数,以保证奖励函数输出的奖励值更加准确。
与奖励函数类似的,对于指标预测模型的训练过程可以描述为:
获取第三训练样本集,第三训练样本集中的任一条训练样本可以包括训练程序以及训练程序的参考性能指标。然后,将训练程序作为输入,将参考性能指标作为监督信息,训练指标预测模型。
具体地,将训练程序输入指标预测模型,以由该指标预测模型输出一个预测性能指标,并对此预测性能指标和训练样本中的参考性能指标进行损失计算,根据计算出的损失值训练指标预测函数,以使其收敛。
本实施例中,通过有监督的方式训练指标预测模型,以保证模型能够输出准确的性能指标。
可选地,上述第一训练集~第三训练集中的训练程序可以是相同或者不同的。
上述各实施例已经介绍了优化平台对原始程序进行优化的整体过程。在此基础上还可以进一步详细说明优化平台如何根据奖励值确定原始程序是否优化完成,以及原始程序、优化过程中产生的调整后程序的后续处理方式。也即是步骤S103的一种具体执行方式,如图2所示,可以包括以下步骤:
S1031,若奖励值为正,则确定原始程序优化完成,并保留调整后程序。
若奖励值为正,表明调整后程序的性能指标优于原始程序的性能指标,表明经过执行预测调整动作已经提高了原始程序的性能,表明动作预测模型输出的预测调整动作对应的调整方向是准确的。此时,优化平台可以保留此调整后程序,并进一步在系统中运行此调整后程序。
S1032,若奖励值为负,则确定原始程序未优化完成,不保留调整后程序段。
若奖励值为负,表明调整后程序的性能指标低于原始程序段的性能指标,表明经过调整程序段的性能反而出现了下降,表明动作预测模型输出的预测调整动作对应的调整方向是不准确的,此时,可以不保留调整后程序,并重新对原始程序段进行调整。
需要说明的有上述步骤是两种并列的情况,并不具有先后执行顺序。
本实施例中,优化平台可以根据模型输出的预测调整动作的奖励值确定原始程序是否优化完成,并进一步确定执行预测调整动作得到的调整后程序的处理方式。另外,本实施例中未详细描述的内容也可以参见上述各实施例中的相关内容,在此不再赘述。
可选地,当对程序的性能要求较为严格时,通常还可以设置优化要求,以使调整后程序的性能满足此优化要求。在此种情况下,可选地,优化平台可以综合考虑奖励值和调整后程序的性能来判断是否满足优化要求。可选地,调整后程序的性能可以具体表现为性能指标或者性能分数。
当性能具体表现为性能指标时,则步骤S1031还可以进一步细化为:
若奖励值为正值并且调整后性能指标满足优化要求对应的目标性能指标,表明调整后程序的性能不仅优于原始程序并且已经达到优化要求,则确定原始程序优化完成,并保留此调整后程序。
若奖励值为正值并且调整后性能指标不满足目标性能指标,表明调整后程序的性能虽然优于原始程序但性能还未达到优化要求,则确定原始程序优化未完成,优化平台在调整后程序的基础上继续调整。
步骤S1032还可以进一步细化为:
若奖励值为负并且调整后性能指标满足目标性能指标,表明原始程序性能优于调整后程序,调整后程序和原始程序的性能都满足优化要求,则优化平台可以不保留调整后程序段,保留原始程序段。优化平台可以不继续对原始程序进行优化。
若奖励值为负并且调整后性能分数不满足目标性能指标,表明原始程序的性能优于调整后程序,并且调整后程序未到达优化要求,则优化平台可以不保留调整后程序并重新调整原始程序。
当性能具体表现为性能分数时,则步骤S1031还可以进一步细化为:
若奖励值为正并且调整后性能分数大于预设分数,表明调整后程序的性能不仅优于原始程序并且已经达到优化要求,则优化平台可以原始程序完成优化并保留此调整后程序段。
若奖励值为正并且调整性能分数小于预设分数,表明调整后程序的性能虽然优于原始程序但性能还未达到优化要求,可以认为程序优化还未完成,则优化平台继续调整此调整后程序。
步骤S1032还可以进一步细化为:
若奖励值为负并且调整后性能分数不小于预设分数,则不保留调整后程序段并且保留原始程序,也不对原始程序进行优化。
若奖励值为负并且调整性能分数小于预设分数,表明原始程序段性能优于调整后程序段,并且调整后程序段的性能未达到要求,则优化平台可以不保留调整后程序段并重新调整原始程序。
本实施例中综合考虑奖励值以及程序的性能要求确定是否完成原始程序的优化。性能指标或者性能分数的比较实际上就是确定调整后程序的性能是否满足优化要求的过程。
可选地,当对性能要求不严格时,也可以不设置优化要求即不设置目标性能指标或者预设分数。此种情况下,可以综合考虑奖励值以及历史性能指标或者历史分数来确定原始程序是否优化完成。其中,历史性能分数可以是在历史优化过程中,程序所达到的最优性能;类似的,历史分数可以是历史优化过程中,程序所到达的最优分数。
当性能具体表现为性能指标时,则步骤S1031还可以进一步细化为:
若奖励值为正值并且调整后性能指标满足历史性能指标,表明调整后程序段的性能不仅优于原始程序段并且已经达到历史最优指标,则确定原始程序优化完成,并保留此调整后程序段。
若奖励值为正值并且调整后性能指标不满足历史性能指标,表明调整后程序段的性能虽然优于原始程序段但性能还未达到历史最优指标,则确定原始程序优化未完成,优化平台继续调整此调整后程序段。
步骤S1032还可以进一步细化为:
若奖励值为负并且调整后性能指标满足历史性能指标,表明原始程序性能优于调整后程序的性能,调整后程序和原始程序的性能都到达历史最优指标,则优化平台可以不保留调整后程序段,保留原始程序段。优化平台也可以不继续对原始程序进行优化。
若奖励值为负并且调整后性能分数不满足历史性能指标,表明原始程序的性能优于调整后程序,并且调整后程序未到达历史最优指标,则优化平台可以不保留调整后程序并重新调整原始程序。
当性能具体表现为性能分数时,则步骤S1031还可以进一步细化为:
若奖励值为正并且调整后性能分数大于历史分数,表明调整后程序的性能不仅优于原始程序段并且已经历史最优,则优化平台可以原始程序完成优化并保留此调整后程序。
若奖励值为正并且调整性能分数小于历史分数,表明调整后程序的性能虽然优于原始程序段但性能还未达到历史最优,可以认为程序优化还未完成,则优化平台继续调整此调整后程序段。
当性能具体表现为性能分数时,则步骤S1032还可以进一步细化为:
若奖励值为负并且调整后性能分数不小于历史分数,则不保留调整后程序并且保留原始程序,也不对原始程序进行优化。
若奖励值为负并且调整性能分数小于历史分数,则优化平台可以不保留调整后程序并重新调整原始程序。
本实施例中综合考虑奖励值以及程序的历史性能来确定是否完成原始程序的优化。
上述各实施例流程角度对程序优化过程进行描述,基于上述描述,还可以从优化平台的角度描述程序优化的过程。则图3为本发明实施例提供的一种程序优化平台的结构示意图。该平台包括:优化组件以及动作预测模型。
所述优化组件,用于获取待优化的原始程序;确定动作预测模型输出的预测调整动作的奖励值;根据奖励值,确定原始程序是否优化完成。
动作预测模型,用于接收优化组件输入的原始程序的初始性能指标;输出原始程序对应的预测调整动作。
平台中各部分的具体工作过程可以参见上述相关实施例中的描述,在此不再赘述。
本实施例中,获取原始程序。然后,将原始程序的初始性能指标输入动作预测模型,以由该模型输出针对原始程序的预测调整动作,并根据该动作得到调整后程序。最终,根据预测调整动作的奖励值确定原始程序的优化是否完成,也即是根据奖励值确定执行预测调整动作后是否提升原始程序的性能。上述方法中,动作预测模型可以根据原始程序的初始性能指标输出预测调整动作,该动作可以为用户提示程序的调整方向,以提高程序优化的效率。同时还可以根据该动作的奖励值确定优化后程序段的性能是否达标。
另外,本实施例中未详细描述以及所能实现的技术效果可以参见上述相关实施例中的描述,在此不再赘述。
基于上述实施例下面还可以以车联网场景描述上述各实施例提供的方法和平台的工作过程。
车联网场景中的,上述的原始程序可以为实现为消息中间件功能的程序,则一种情况,对于处于开发测试阶段的消息中间件,优化平台可以将该消息中间件运行在自身部署的运行环境中,以得到该消息中间件中的初始性能指标。该初始性能指标可以输入到动作预测模型,以由该动作预测模型输出预测调整动作。按照此预测调整动作对消息中间件进行调整,以得到调整后中间件。同时优化平台也可以确定该预测调整动作的奖励值,并根据此奖励值确定消息中间件是否完成优化。
其中,初始性能指标的获取、动作预测模型以及奖励值的工作过程均可以参见上述各实施例中的相关描述。
另一种情况,对于处于上线运行阶段的消息中间件,其可以一并与车载系统中的控制软件、多媒体软件一并运行。并且在此运行过程中会产生消息中间件的日志数据。该日志数据可以被优化平台接收到。之后,优化平台可以周期性的根据日志数据分析消息中间件中是否存在待优化程序段。当存在待优化程序段,则优化平台可以进一步对整个消息中间件进行优化。其中,日志数据的分析过程以及消息中间件的优化过程均可以参见上述相关实施例中的描述。
又一种情况,在消息中间件部署到车载系统并运行的过程中,可选地,车主可以主动发觉消息中间件出现故障,比如自动驾驶或者车内环境的控制指令无法接收到,此时车主可以主动进行反馈,以使优化平台主动进行消息中间件的优化。此时也可以按照上述各实施例提供的方式对消息中间件中的各程序段进行调整,并确定通过调整是否实现性能优化。
又一种情况,在消息中间件在部署到车载系统后,该消息中间件也可以定期升级,在升级过程中优化平台可以按照上述各实施例中的方式对程序段进行调整,并进一步确定调整后程序段的性能是否得到优化。
以下将详细描述本发明的一个或多个实施例的装置。本领域技术人员可以理解,这些车载系统均可使用市售的硬件组件通过本方案所教导的步骤进行配置来构成。
图4为本发明实施例提供的一种程序优化装置的结构示意图,如图4所示,该装置包括:程序段获取模块11、输入模块12、处理方式确定模块13。
程序获取模块11,用于获取原始程序。
输入模块12,用于将所述原始程序的初始性能指标输入动作预测模型,以由所述动作预测模型输出针对所述原始程序的预测调整动作。
确定模块13,用于根据所述预测调整动作的奖励值,确定所述原始程序是否优化完成。
其中,所述原始程序用作消息中间件,所述消息中间件用于转发车辆的运行数据和/或服务器对所述车辆的控制指令;
所述预测调整动作包括:调整所述原始程序中的函数、表达式和语句中的至少一种,或者调整所述原始程序的参数,或者为所述原始程序添加注释。
可选地,所述输入模块12,用于获取所述原始程序在系统中运行后产生的日志数据;若所述日志数据反映所述原始程序存在异常,则将所述原始程序的初始性能指标输入动作预测模型。
可选地,所述方法还包括:程序调整模块14,用于在所述日志数据中定位异常函数;在所述原始程序中确定与所述异常函数存在调用关系的待优化程序段;按照所述预测调整动作调整所述待优化程序段。
可选地,所述输入模块12,用于运行所述原始程序,以获取初始性能指标根据所述初始性能指标,确定所述原始程序的性能分数;若所述性能分数小于预设阈值,则将所述初始性能指标输入所述动作预测模型。
可选地,所述确定模块13,用于获取调整后程序的调整后性能指标,其中,对所述原始程序执行所述预测调整动作后得到所述调整后程序;将所述调整后性能指标和所述预测调整动作输入奖励函数,以由所述奖励函数确定所述预测调整动作的奖励值;若所述奖励值为正值并且所述调整后性能指标满足目标性能指标,则确定所述原始程序优化完成。
可选地,所述确定模块13,用于运行所述调整后程序,以得到所述调整后性能指标;或者,将所述调整后程序输入指标预测模型,以由所述指标预测模型输出所述调整后性能指标。
可选地,所述装置还包括:部署模块15,用于将由训练平台训练出的所述动作预测模型部署到所述优化平台中。
其中,所述训练平台训练所述动作预测模型的过程包括:
获取第一训练样本集,所述第一训练样本集中的任一条训练样本包括训练程序的性能指标、所述训练程序对应的参考调整动作以及所述参考调整动作的参考奖励值;将所述任一条训练样本的性能指标作为训练数据,将根据所述参考调整动作和所述参考奖励值作为引导信息,训练所述动作预测模型。
可选地,所述部署模块15,用于将由训练平台训练出的所述奖励函数部署到所述程序优化平台中。
其中,所述训练平台训练所述奖励函数的过程包括:
获取第二训练样本集,所述第二训练样本集中的任一条训练样本包括训练程序的参考调整动作,对所述训练程序执行参考调整动作后得到的调整后训练程序的调整后参考性能指标,以及所述参考调整动作的参考奖励值;将所述调整后参考性能指标和所述参考调整动作作为输入,将所述参考奖励值作为监督信息,训练所述奖励函数。
可选地,所述部署模块15,用于将由训练平台训练出的所述指标预测模型部署到所述程序优化平台中。
所述训练平台训练所述指标预测模型的过程包括:
获取第三训练样本集,所述第三训练样本集中的任一条训练样本包括训练程序以及所述训练程序的参考性能指标;将所述训练程序作为输入,将所述参考性能指标作为监督信息,训练所述指标预测模型。
可选地,所述装置还包括:性能分数确定模块,用于
图4所示装置可以执行图1至图3所示实施例的方法,本实施例未详细描述的部分,可参考对图1至图3所示实施例的相关说明。该技术方案的执行过程和技术效果参见图1至图3所示实施例中的描述,在此不再赘述。
在一个可能的设计中,上述程序优化方法可以运行于一电子设备中,如图5所示,该电子设备可以包括:处理器21和存储器22。其中,所述存储器22用于存储支持该电子设备执行上述图1至图3所示实施例中提供的程序优化方法的程序,所述处理器21被配置为用于执行所述存储器22中存储的程序。
所述程序包括一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器21执行时能够实现如下步骤:
获取原始程序;
将所述原始程序的初始性能指标输入动作预测模型,以由所述动作预测模型输出针对所述原始程序的预测调整动作;
根据所述预测调整动作的奖励值,确定所述原始程序是否优化完成。
可选地,所述处理器21还用于执行前述图1至图3所示实施例中的全部或部分步骤。
其中,所述电子设备的结构中还可以包括通信接口23,用于该电子设备与其他设备或通信网络通信。
另外,本发明实施例提供了一种计算机存储介质,用于储存上述电子设备所用的计算机软件指令,其包含用于执行上述图1至图3所示方法实施例中程序优化方法所涉及的程序。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (13)

1.一种程序优化方法,其特征在于,所述方法包括:
获取原始程序;
将所述原始程序的初始性能指标输入动作预测模型,以由所述动作预测模型输出针对所述原始程序的预测调整动作;
根据所述预测调整动作的奖励值,确定所述原始程序是否优化完成。
2.根据权利要求1所述的方法,其特征在于,所述将所述原始程序的初始性指标数输入动作预测模型,包括:
获取所述原始程序在系统中运行后产生的日志数据;
若所述日志数据反映所述原始程序存在异常,则将所述原始程序的初始性能指标输入动作预测模型。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在所述日志数据中定位异常函数;
在所述原始程序中确定与所述异常函数存在调用关系的待优化程序段;
按照所述预测调整动作调整所述待优化程序段。
4.根据权利要求1所述的方法,其特征在于,所述将所述原始程序的初始性能指标输入动作预测模型,包括:
运行所述原始程序,以获取初始性能指标;
根据所述初始性能指标,确定所述原始程序的性能分数;
若所述性能分数小于预设阈值,则将所述初始性能指标输入所述动作预测模型。
5.根据权利要求1所述的方法,其特征在于,所述根据所述预测调整动作的奖励值,确定所述原始程序是否优化完成,包括:
获取调整后程序的调整后性能指标,其中,对所述原始程序执行所述预测调整动作后得到所述调整后程序;
将所述调整后性能指标和所述预测调整动作输入奖励函数,以由所述奖励函数确定所述预测调整动作的奖励值;
若所述奖励值为正值并且所述调整后性能指标满足目标性能指标,则确定所述原始程序优化完成。
6.根据权利要求5所述的方法,其特征在于,所述获取调整后程序的调整后性能指标,包括:
运行所述调整后程序,以得到所述调整后性能指标;
或者,
将所述调整后程序输入指标预测模型,以由所述指标预测模型输出所述调整后性能指标。
7.根据权利要求1所述的方法,其特征在于,所述程序优化方法应用在优化平台中;所述方法还包括:
将由训练平台训练出的所述动作预测模型部署到所述优化平台中;
其中,所述训练平台训练所述动作预测模型的过程包括:
获取第一训练样本集,所述第一训练样本集中的任一条训练样本包括训练程序的性能指标、所述训练程序对应的参考调整动作以及所述参考调整动作的参考奖励值;将所述任一条训练样本的性能指标作为训练数据,将根据所述参考调整动作和所述参考奖励值作为引导信息,训练所述动作预测模型。
8.根据权利要求5所述的方法,其特征在于,所述程序优化方法应用在程序优化平台中;所述方法还包括:
将由训练平台训练出的所述奖励函数部署到所述程序优化平台中;
所述训练平台训练所述奖励函数的过程包括:
获取第二训练样本集,所述第二训练样本集中的任一条训练样本包括训练程序的参考调整动作,对所述训练程序执行参考调整动作后得到的调整后训练程序的调整后参考性能指标,以及所述参考调整动作的参考奖励值;将所述调整后参考性能指标和所述参考调整动作作为输入,将所述参考奖励值作为监督信息,训练所述奖励函数。
9.根据权利要求6所述的方法,其特征在于,所述程序优化方法应用在程序优化平台中;所述方法还包括:
将由训练平台训练出的所述指标预测模型部署到所述程序优化平台中;
所述训练平台训练所述指标预测模型的过程包括:
获取第三训练样本集,所述第三训练样本集中的任一条训练样本包括训练程序以及所述训练程序的参考性能指标;将所述训练程序作为输入,将所述参考性能指标作为监督信息,训练所述指标预测模型。
10.根据权利要求1至9中任一项所述的方法,其特征在于,所述原始程序用作消息中间件,所述消息中间件用于转发车辆的运行数据和/或服务器对所述车辆的控制指令;
所述预测调整动作包括:调整所述原始程序中的函数、表达式和语句中的至少一种,或者调整所述原始程序的参数,或者为所述原始程序添加注释。
11.一种程序优化平台,其特征在于,包括:优化组件以及动作预测模型;
所述优化组件,用于获取待优化的原始程序;确定所述动作预测模型输出的预测调整动作的奖励值;根据所述奖励值,确定所述原始程序是否优化完成;
所述动作预测模型,用于接收所述优化组件输入的所述原始程序的初始性能指标;输出所述原始程序对应的所述预测调整动作。
12.一种电子设备,其特征在于,包括:存储器、处理器;其中,所述存储器上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的程序优化方法。
13.一种非暂时性机器可读存储介质,其特征在于,所述非暂时性机器可读存储介质上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的程序优化方法。
CN202311167594.0A 2023-09-11 2023-09-11 程序优化方法、平台、设备和存储介质 Pending CN116909620A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311167594.0A CN116909620A (zh) 2023-09-11 2023-09-11 程序优化方法、平台、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311167594.0A CN116909620A (zh) 2023-09-11 2023-09-11 程序优化方法、平台、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116909620A true CN116909620A (zh) 2023-10-20

Family

ID=88367183

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311167594.0A Pending CN116909620A (zh) 2023-09-11 2023-09-11 程序优化方法、平台、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116909620A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071831A1 (en) * 2003-09-26 2005-03-31 International Business Machines Corporation Method for computer program optimization in a dynamic compilation environment
CN110727437A (zh) * 2019-09-10 2020-01-24 平安普惠企业管理有限公司 代码优化项获取方法、装置、存储介质及电子设备
CN114594954A (zh) * 2020-12-07 2022-06-07 华为技术有限公司 一种代码优化方法、装置、计算设备及计算机存储介质
CN116560661A (zh) * 2023-04-17 2023-08-08 中国工商银行股份有限公司 代码优化方法、装置、设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050071831A1 (en) * 2003-09-26 2005-03-31 International Business Machines Corporation Method for computer program optimization in a dynamic compilation environment
CN110727437A (zh) * 2019-09-10 2020-01-24 平安普惠企业管理有限公司 代码优化项获取方法、装置、存储介质及电子设备
CN114594954A (zh) * 2020-12-07 2022-06-07 华为技术有限公司 一种代码优化方法、装置、计算设备及计算机存储介质
CN116560661A (zh) * 2023-04-17 2023-08-08 中国工商银行股份有限公司 代码优化方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11249887B2 (en) Deep Q-network reinforcement learning for testing case selection and prioritization
US11544625B2 (en) Computing system for training, deploying, executing, and updating machine learning models
Williams et al. Partially observable Markov decision processes with continuous observations for dialogue management
US11074161B2 (en) Optimized test case selection for quality assurance testing of video games
CN111143226B (zh) 自动化测试方法及装置、计算机可读存储介质、电子设备
KR20200014510A (ko) 기계 학습 기반의 예측 서비스 제공 방법 및 그 장치
CN113031983B (zh) 一种基于深度强化学习的软件智能升级方法及装置
CN112148570A (zh) 改进在异构系统上执行的软件的运行时性能的方法和设备
CN109871315B (zh) 基于机器学习的系统升级失败的诊断方法及装置
CN109102030B (zh) 控制在线模型更新的方法及装置
CN101339562A (zh) 引入兴趣模型反馈更新机制的门户个性化推荐服务系统
WO2023125851A1 (zh) 远程诊断方法及装置、电子设备和存储介质
US20200167660A1 (en) Automated heuristic deep learning-based modelling
CN114692169B (zh) 应用大数据和ai分析的页面漏洞处理方法及页面服务系统
CN116047934B (zh) 一种无人机集群的实时仿真方法、系统以及电子设备
CN115203282A (zh) 结合深度学习的智慧企服用户数据处理方法及系统
EP3798931A1 (en) Machine learning training resource management
CN116909620A (zh) 程序优化方法、平台、设备和存储介质
CN112990461B (zh) 构建神经网络模型的方法、装置、计算机设备和存储介质
CN111737417A (zh) 修正自然语言生成结果的方法和装置
Gerostathopoulos et al. Automated trainability evaluation for smart software functions
Zeng et al. Approximating behavioral equivalence of models using top-k policy paths.
KR20220037839A (ko) 마이크로서비스 기반의 자가성장형 소프트웨어 운영 시스템 및 방법
CN113759869B (zh) 智能家电测试方法及装置
US20230376801A1 (en) Monitoring machine learning models in resource constrained settings

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