代码调试方法和装置、存储介质及电子设备与流程

文档序号:31869878发布日期:2022-10-21 18:41阅读:30来源:国知局
1.本发明涉及计算机领域,具体而言,涉及一种代码调试方法和装置、存储介质及电子设备。
背景技术
::2.目前的相关技术中,一般要求用户理解一些计算平台的运行机制的运行机制、各种参数的意义,才能实现代码调试过程中的性能调优,而且部分性能调优的方式仅仅只能够针对某一种性能问题而提出,具有局限性,通过针对固定参数例如内存大小、cpu核数等进行自动调参,而不能针对代码问题提出优化建议,例如,在spark计算平台的计算过程中,由于spark计算平台的性能调优是由多方面组成的,需要人为获知全部代码的具体含义,并手动进行代码优化。例如,在编写的代码中会出现这样的情况,将每一次的操作结果都赋值给新的rdd,造成重复创建的rdd,这样就需要人为的了解spark计算平台的特效,理解和发现上述赋值代码,才能对上述代码进行手动优化,这样大大降低了代码优化的效率,增加了代码优化的时长。3.针对上述的问题,目前尚未提出有效的解决方案。技术实现要素:4.本发明实施例提供了一种代码调试方法和装置、存储介质及电子设备,以至少解决相关技术中存在的代码优化的效率较低的技术问题。5.根据本发明实施例的一个方面,提供了一种代码调试方法,包括:获取待运行的第一代码集合;对所述第一代码集合进行扫描,得到目标扫描结果,其中,所述目标扫描结果用于表示所述第一代码集合中是否存在待优化的第一代码子集;在所述目标扫描结果表示所述第一代码集合中存在待优化的所述第一代码子集的情况下,将所述第一代码集合中的所述第一代码子集替换成目标代码子集,得到第二代码集合,其中,所述第二代码集合包括所述目标代码子集以及所述第一代码集合中除所述第一代码子集之外的代码,所述第一代码子集和所述目标代码子集具有相同的功能,运行所述目标代码子集所需的运行资源少于运行所述第一代码子集所需的运行资源;在目标计算平台中运行所述第二代码集合。6.根据本发明实施例的另一方面,还提供了一种代码调试装置,包括:获取模块,用于获取待运行的第一代码集合;扫描模块,用于对所述第一代码集合进行扫描,得到目标扫描结果,其中,所述目标扫描结果用于表示所述第一代码集合中是否存在待优化的第一代码子集;优化模块,用于在所述目标扫描结果表示所述第一代码集合中存在待优化的所述第一代码子集的情况下,将所述第一代码集合中的所述第一代码子集替换成目标代码子集,得到第二代码集合,其中,所述第二代码集合包括所述目标代码子集以及所述第一代码集合中除所述第一代码子集之外的代码,所述第一代码子集和所述目标代码子集具有相同的功能,运行所述目标代码子集所需的运行资源少于运行所述第一代码子集所需的运行资源;运行模块,用于在目标计算平台中运行所述第二代码集合。7.可选地,所述扫描模块包括:第一扫描模块,用于在所述第一代码集合中存在第一代码子集和第二代码子集的情况下,生成所述目标扫描结果,其中,所述目标扫描结果用于表示所述第一代码集合中存在待优化的所述第一代码子集,所述第一代码子集用于加载目标数据到创建的第一数据集中,所述第二代码子集用于加载所述目标数据到创建的第二数据集中,在所述第一代码集合中所述第二代码子集早于所述第一代码子集被运行。8.可选地,所述优化模块包括:第一优化单元,用于在所述第一代码子集包括第一代码和第二代码的情况下,在所述第一代码子集中删除所述第一代码,并将所述第二代码修改为第一目标代码,其中,所述第一代码用于加载所述目标数据到所述第一数据集中,所述第二代码用于对所述第一数据集中的所述目标数据执行目标操作,所述第一目标代码用于对所述第二数据集中的所述目标数据执行所述目标操作。9.可选地,所述扫描模块包括:第二扫描模块,用于在所述第一代码集合中存在第一代码子集和第二代码子集的情况下,生成所述目标扫描结果,其中,所述目标扫描结果用于表示所述第一代码集合中存在待优化的所述第一代码子集,所述第一代码子集用于依次执行第一组运算操作,所述第二代码子集用于依次执行第二组运算操作,所述第一组运算操作中的第一部分运算操作和所述第二组运算操作中的第二部分运算操作相同,在所述第一代码集合中所述第二代码子集早于所述第一代码子集被运行;其中,所述第一部分运算操作包括从所述第一组运算操作中的第一个运算操作开始的连续多个运算操作,所述第二部分运算操作包括从所述第二组运算操作中的第一个运算操作开始的连续多个运算操作;或者,所述第一部分运算操作包括所述第一组运算操作中的第一个运算操作,所述第二部分运算操作包括所述第二组运算操作中的第一个运算操作。10.可选地,所述优化模块包括:第二优化单元,用于在所述第一代码子集中删除所述第一部分运算操作对应的代码,并将所述第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,其中,所述第二目标代码用于获取所述第二组运算操作的运算结果,并对获取到的所述运算结果执行所述下一个运算操作。11.可选地,所述优化模块包括:第三优化单元,用于在所述第二代码子集中增加第三目标代码,并将所述第二部分运算操作的下一个运算操作对应的代码修改为第四目标代码,其中,所述第三目标代码被设置为在所述第二部分运算操作对应的代码之后执行、并在所述第四目标代码之前执行,所述第三目标代码用于将所述第二组运算操作的运算结果存入目标缓存中,所述第四目标代码用于从所述目标缓存中获取所述第二组运算操作的运算结果,并对获取到的所述第二组运算操作的运算结果执行所述第二部分运算操作的下一个运算操作,所述第二目标代码用于从所述目标缓存中获取所述第二组运算操作的运算结果,并对获取到的所述运算结果执行所述第一部分运算操作的下一个运算操作。12.可选地,所述扫描模块包括:第三扫描模块,用于在所述第一代码集合中存在第一代码子集的情况下,生成所述目标扫描结果,其中,所述目标扫描结果用于表示所述第一代码集合中存在待优化的所述第一代码子集,所述第一代码子集用于将第一数据分组中的数据传输给目标数据处理节点,所述第一数据分组中允许包括多条相同的数据。13.可选地,所述优化模块包括:第四优化单元,用于在所述第一代码集合中将所述第一代码子集替换成所述目标代码子集,所述目标代码子集用于在所述第一数据分组包括多条相同的数据时,将所述第一数据分组中的所述多条相同的数据聚合成一条数据,得到第二数据分组,并将所述第二数据分组传送给所述目标节点。14.可选地,所述装置还包括以下至少之一:第一提示模块,用于在所述目标扫描结果表示所述第一代码集合中存在待优化的第一代码子集的情况下,生成第一提示信息,其中,所述第一提示信息用于提示所述第一代码子集在所述第一代码集合中的位置;第二提示模块,用于在所述目标扫描结果表示所述第一代码集合中存在待优化的第一代码子集的情况下,生成第二提示信息,其中,所述第二提示信息用于提示是否需要将所述第一代码子集替换成所述目标代码子集。15.可选地,所述优化模块包括:生成单元,用于在所述目标扫描结果表示所述第一代码集合中存在待优化的第一代码子集的情况下,生成目标优化方案,其中,所述目标优化方案用于将所述第一代码子集替换成所述第二代码子集;获取单元,用于获取目标执行指令,其中,所述目标执行指令用于指示执行所述目标优化方案;执行单元,用于响应于所述目标执行指令,执行所述目标优化方案,以将所述第一代码集合中的所述第一代码子集替换成所述第二代码子集,得到所述第二代码集合。16.可选地,所述装置还用于:在目标计算平台中运行所述第二代码集合之后,在所述第二代码集合在所述目标计算平台运行完成的情况下,生成所述第二代码集合的运行日志,其中,所述运行日志记录了以下至少之一:在所述目标计算平台中运行所述第二代码集合的过程中所述目标计算平台的运行参数,以及在所述目标计算平台中运行所述第二代码集合的过程中所述第二代码集合所操作的目标数据的交互参数。17.可选地,在生成所述第二代码集合的运行日志之后,所述装置还包括以下至少之一:第一处理模块,用于在所述运行参数表示的加载时长大于或等于预设的时长阈值的情况下,在所述第二代码集合中增加第一段代码,其中,所述加载时长是所述目标计算平台运行所述第二代码集合时加载所述目标数据的时长,所述第一段代码用于增加所述目标计算平台的分区集合中的各分区的容量,或者,用于增加所述目标计算平台的分区集合中的各分区的容量,并减少所述分区集合中的分区的数量,所述目标计算平台用于从所述分区集合中加载所述目标数据;第二处理模块,用于在所述运行参数表示的内存占用参数的取值大于或等于预设的占用阈值的情况下,在所述第二代码集合中增加第二段代码,其中,所述内存占用参数的取值用于表示所述目标计算平台运行所述第二代码集合处理所述目标数据时所占用的内存,所述第二段代码用于增加所述目标计算平台允许使用的内存;第三处理模块,用于在所述第二代码集合包括用于对所述目标数据中的部分或全部数据进行传输操作或收集操作的代码的情况下,在所述第二代码集合中增加第三段代码,其中,所述第三段代码用于增加所述目标计算平台允许使用的内存。18.可选地,所述装置还用于:在所述运行参数指示所述第二代码集合的运行过程中出现数据倾斜的情况下,确定所述第二代码集合是否包括用于对所述目标数据中的部分或全部数据所形成的表执行连接操作的代码;在所述第二代码集合包括所述用于对所述目标数据中的部分或全部数据所形成的表执行连接操作的代码的情况下,在所述目标数据中查找第一数据集合和第二数据集合,其中,所述第一数据集合中的数据的量级小于预设的第一数据量级、且所述第一数据集合中的数据被设置执行所述连接操作,所述第二数据集合中的数据的量级大于预设的第二数据量级、且所述第二数据集合中的数据被设置执行所述连接操作,所述第一数据量级小于所述第二数据量级;在查找到所述第一数据集合的情况下,将所述第一数据集合广播至多个数据处理节点,以通过所述多个数据处理节点并行地对所述第一数据集合中的数据所形成的表执行所述连接操作,得到第一操作结果;在查找到所述第二数据集合的情况下,将所述第二数据集合中的数据拆分为具有数据倾斜标识的第一数据子集合以及不具有数据倾斜标识的第二数据子集合;将所述第一数据子集合广播至所述多个数据处理节点,以通过所述多个数据处理节点并行地对所述第一数据子集合中的数据所形成的表执行所述连接操作,得到第二操作结果;对所述第二数据子集合中的数据所形成的表直接执行所述连接操作,得到第三操作结果;对所述第二操作结果和所述第三操作结果进行合并,得到第四操作结果。19.本发明实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述代码调试方法。20.根据本发明实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的代码调试方法。21.在本发明实施例中,在不改变代码集合的功能的前提下,在计算平台运行代码集合之前,对代码集合进行扫描,找出该代码集合中待优化的代码,并对待优化的代码进行优化。从而解决了人为优化代码所带来的代码优化效率低的问题。此外,由于优化后的代码所需要的运行资源相对于优化前的代码较低,从而节省了代码在计算平台上的运行资源,进而解决了相关技术中存在的代码优化的效率较低的技术问题。附图说明22.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:23.图1是根据本发明实施例的一种可选的代码调试方法的应用环境的示意图;24.图2是根据本发明实施例的一种可选的代码调试方法的流程示意图;25.图3是根据本发明实施例的一种可选的代码调试方法的示意图;26.图4是根据本发明实施例的又一种可选的代码调试方法的示意图;27.图5是根据本发明实施例的又一种可选的代码调试方法的示意图;28.图6是根据本发明实施例的又一种可选的代码调试方法的示意图;29.图7是根据本发明实施例的又一种可选的代码调试方法的示意图;30.图8是根据本发明实施例的又一种可选的代码调试方法的示意图;31.图9是根据本发明实施例的又一种可选的代码调试方法的示意图;32.图10是根据本发明实施例的又一种可选的代码调试方法的示意图;33.图11是根据本发明实施例的又一种可选的代码调试方法的示意图;34.图12是根据本发明实施例的又一种可选的代码调试方法的示意图;35.图13是根据本发明实施例的又一种可选的代码调试方法的示意图;36.图14是根据本发明实施例的又一种可选的代码调试方法的示意图;37.图15是根据本发明实施例的一种可选的代码调试方法装置的结构示意图;38.图16是根据本发明实施例的一种可选的电子设备的结构示意图。具体实施方式39.为了使本
技术领域
:的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。40.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。41.首先,在对本技术实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:42.rdd:resilientdistributeddataset,弹性分布式数据集。43.spark平台,一种用于大规模数据处理而设计的快速通用的计算引擎。44.shuffle:一种函数,用于将数组中的元素按随机顺序重新排列。45.下面结合实施例对本发明进行说明:46.根据本发明实施例的一个方面,提供了一种代码调试方法,可选地,在本实施例中,上述代码调试方法可以应用于如图1所示的由服务器101和终端103所构成的硬件环境中。如图1所示,服务器101通过网络与终端103进行连接,可用于为终端或终端上安装的客户端提供服务,客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端、游戏客户端等。可在服务器上或独立于服务器设置数据库105,用于为服务器101提供数据存储服务,例如,用于存储大数据的服务器,上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络,终端103可以是配置有与计算平台相连接的应用的终端,可以包括但不限于以下至少之一:手机(如android手机、ios手机等)、笔记本电脑、平板电脑、掌上电脑、mid(mobileinternetdevices,移动互联网设备)、pad、台式电脑、智能电视等计算机设备,上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器,可以包括但不限于路由或者网关,使用上述代码调试方法的应用通过客户端107进行显示,上述仅是一种示例,本实施例中对此不作任何限定。47.可选地,作为一种可选的实施方式,如图2所示,上述代码调试方法包括:48.s202,获取待运行的第一代码集合;49.s204,对第一代码集合进行扫描,得到目标扫描结果,其中,目标扫描结果用于表示第一代码集合中是否存在待优化的第一代码子集;50.s206,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源;51.s208,在目标计算平台中运行第二代码集合。52.可选地,在本实施例中,图3是根据本发明实施例的一种代码调试方法的示意图,上述代码调试方法可以包括但不限于应用于如图3所示的架构中,其中,目标计算平台302用于从数据处理节点304拉取待处理的数据,并基于客户端306发送的调试代码进行调试,结合图3所示,上述代码调试方法可以在服务器侧的客户端306通过如下步骤实现:53.在服务器侧的客户端306中获取待运行的第一代码集合;54.在服务器侧的客户端306中对第一代码集合进行扫描,得到目标扫描结果,其中,目标扫描结果用于表示第一代码集合中是否存在待优化的第一代码子集;55.在服务器侧的客户端306中在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源;56.在服务器侧的客户端306中向目标计算平台302提交上述第二代码集合,以在目标计算平台302中运行第二代码集合。57.上述仅是一种示例,本实施例不做具体的限定。58.可选地,在本实施例中,可以包括但不限于基于云技术实现。59.其中,云技术(cloudtechnology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。60.云技术(cloudtechnology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。61.云计算(cloudcomputing)是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。62.作为云计算的基础能力提供商,会建立云计算资源池(简称云平台,一般称为iaas(infrastructureasaservice,基础设施即服务)平台,在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。63.按照逻辑功能划分,在iaas(infrastructureasaservice,基础设施即服务)层上可以部署paas(platformasaservice,平台即服务)层,paas层之上再部署saas(softwareasaservice,软件即服务)层,也可以直接将saas部署在iaas上。paas为软件运行的平台,如数据库、web容器等。saas为各式各样的业务软件,如web门户网站、短信群发器等。一般来说,saas和paas相对于iaas是上层。64.云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。65.目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。66.存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundantarrayofindependentdisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。67.大数据(bigdata)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。随着云时代的来临,大数据也吸引了越来越多的关注,大数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理数据库、数据挖掘、分布式文件系统、分布式数据库、云计算平台、互联网和可扩展的存储系统。68.可选地,在本实施例中,上述代码调试方法的应用场景可以包括但不限于医疗、金融、征信、银行、政务、政府、游戏、能源、教育、安防、楼宇、游戏、交通、物联、工业等多种需要使用目标计算平台进行数据处理的应用场景,例如,上述业务场景中对应的大数据处理场景。69.以金融业务场景为例,上述第一代码集合可以包括但不限于用于在目标计算平台中执行大数据处理的代码集合,上述目标计算平台可以包括但不限于用于进行大数据处理的spark计算平台等,可以包括但不限于云计算平台。70.例如,图4是根据本发明实施例的另一种可选的代码调试方法的示意图,如图4所示,以上述代码调试方法应用于金融服务平台402为例,其中,金融服务平台402包括使用spark平台404进行数据处理的应用程序,首先,获取一段在spark平台中404待运行的代码集合(对应于前述的第一代码集合),该代码集合中存在待优化的第一代码子集,其次,对该代码集合进行扫描,在客户端406的显示界面408上显示目标扫描结果,其中,该目标扫描结果显示有上述待优化的第一代码子集在代码集合中的位置,以及自动生成的针对该代码子集的优化建议,再次,获取交互操作,实现对该第一代码子集优化,将其替换为目标代码子集,以得到第二代码集合,最后,将优化后的第二代码集合提交到spark平台中进行运行,以实现金融数据的处理,在进行金融数据处理的过程中,可以通过在spark计算平台中通过上述第二代码集合,将例如帐号信息、交易信息等金融数据进行处理,并存储在rdd数据集410中。71.例如,图5是根据本发明实施例的另一种可选的代码调试方法的示意图,如图5所示,以上述代码调试方法应用于游戏业务平台502为例,其中,游戏业务平台502包括使用spark平台504进行数据处理的应用程序,首先,获取一段在spark平台中504待运行的代码集合(对应于前述的第一代码集合),该代码集合中存在待优化的代码子集,其次,对该代码集合进行扫描,在客户端506的显示界面508上显示目标扫描结果,其中,该目标扫描结果显示有上述待优化的第一代码子集在代码集合中的位置,以及自动生成的针对待优化的第一代码子集的优化建议,再次,获取交互操作,实现对该第一代码子集优化,将其替换为目标代码子集,以得到第二代码集合,最后,将优化后的第二代码集合提交到spark平台中进行运行,以实现游戏数据的处理,在进行游戏数据处理的过程中,可以通过在spark计算平台中通过上述第二代码集合,将例如帐号信息、游戏操作数据、游戏战绩等游戏数据进行处理,并存储在rdd数据集510中。72.上述仅是一种示例,本实施例不做任何具体限定。73.可选地,在本实施例中,上述对第一代码集合进行扫描可以包括但不限于静态扫描,动态扫描等,以静态扫描为例,可以对上述第一代码集合进行静态扫描,以得到对应的静态目标扫描结果,上述目标扫描结果可以包括但不限于指示上述第一代码集合中是否存在待优化的第一代码子集。74.具体而言,可以包括但不限于表示上述第一代码集合中是否存在重复创建的数据集,还可以包括但不限于表示上述第一代码集合中的代码是否用于执行重复的算子操作,还可以包括但不限于上述第一代码集合中的代码所使用的算子是否为性能较优的算子。75.可选地,在本实施例中,上述第一代码子集表示在上述第一代码集合中存在的待优化的第一代码子集,通过将上述第一代码子集替换成目标代码子集,以实现优化第一代码集合为第二代码集合,进而,能够实现将第二代码集合提交至目标计算平台,以运行上述第二代码集合。76.以表示上述第一代码集合中是否存在重复创建的数据集为例,上述代码调试方法可以包括但不限于如下内容:77.扫描前的上述第一代码集合,需要创建多个rdd:78.valrdd1=sc.textfile("hello.txt")79.rdd1.map(...)80.valrdd2=sc.textfile("hello.txt")81.rdd2.reduce(...)82.扫描后的第二代码集合,能够复用rdd:83.valrdd1=sc.textfile("hello.txt")84.rdd1.map(...)85.rdd1.reduce(...)86.需要说明的是,上述valrdd1=sc.textfile("hello.txt")表示创建rdd1,valrdd2=sc.textfile("hello.txt")表示创建rdd2,rdd1.map(...)以及rdd2.reduce(...)均为一种运算操作,在扫描到上述第一代码集合中存在将相同的值加载至不同的rdd的情况下,将赋值给rdd的代码合并,并依次执行上述不同的运算操作,因此,由于只需要创建一次rdd,避免了rdd的重复创建,因此,运行上述目标代码子集所需的运行资源少于运行上述第一代码子集所需的运行资源。87.可选地,在本实施例中,上述第一代码子集与上述目标代码子集具有相同的功能可以包括但不限于使用相同功能的算子执行运算操作,或者,不同的代码子集所进行的运算操作的结果相同等。88.通过本实施例,采用获取待运行的第一代码集合,对第一代码集合进行扫描,得到目标扫描结果,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源,在目标计算平台中运行第二代码集合的方式,通过在不改变代码集合的功能的前提下,在计算平台运行代码集合之前,对代码集合进行扫描,找出该代码集合中待优化的代码,并对待优化的代码进行优化。从而解决了人为优化代码所带来的代码优化效率低的问题。此外,由于优化后的代码所需要的运行资源相对于优化前的代码较低,从而节省了代码在计算平台上的运行资源,进而解决了相关技术中存在的代码优化的效率较低的技术问题。89.作为一种可选的方案,对第一代码集合进行扫描,得到目标扫描结果,包括:90.在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于加载目标数据到创建的第一数据集中,第二代码子集用于加载目标数据到创建的第二数据集中,在第一代码集合中第二代码子集早于第一代码子集被运行。91.可选地,在本实施例中,图6是根据本发明实施例的另一种代码调试方法的示意图,如图6所示,具体包括但不限于如下步骤:92.s1,在客户端中显示有上述第一代码集合以及用于扫描的交互对象“扫描”;93.s2,对交互对象“扫描”执行交互操作;94.s3,响应于上述交互操作,以使用代码扫描模块扫描上述第一代码集合;95.s4,在扫描完成之后,在客户端中生成并显示上述目标扫描结果。96.其中,上述目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,上述目标扫描结果可以包括但不限于标识上述待优化的第一代码子集在上述第一代码集合中所处的位置,以及待优化的原因,例如,图6中展示的标识“重复!是否优化?”。97.例如,扫描前的上述第一代码集合,需要创建多个rdd:98.valrdd1=sc.textfile("hello.txt")对应于第二代码子集中的代码;99.rdd1.map(...)对应于第二代码子集中的代码;100.valrdd2=sc.textfile("hello.txt")对应于第一代码子集中的第一代码;101.rdd2.reduce(...)对应于第一代码子集中的第二代码;102.扫描并优化后的第二代码集合,能够复用rdd:103.valrdd1=sc.textfile("hello.txt")对应于第二代码子集中的代码;104.rdd1.map(...)对应于第二代码子集中的代码;105.rdd1.reduce(...)对应于目标代码子集中的第一目标代码。106.上述仅是一种示例,本实施例不做任何具体的限定。107.通过本实施例,采用在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果包括目标扫描结果,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于加载目标数据到创建的第一数据集中,第二代码子集用于加载目标数据到创建的第二数据集中,在第一代码集合中第二代码子集早于第一代码子集被运行的方式,在计算平台运行代码集合之前,对代码集合进行扫描,找出该代码集合中代码集合中出现重复创建rdd的代码,并对待优化的代码进行优化,避免了人为优化代码中容易重复创建rdd的问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试时间成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。108.作为一种可选的方案,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,包括:109.在第一代码子集包括第一代码和第二代码的情况下,在第一代码子集中删除第一代码,并将第二代码修改为第一目标代码,其中,第一代码用于加载目标数据到第一数据集中,第二代码用于对第一数据集中的目标数据执行目标操作,第一目标代码用于对第二数据集中的目标数据执行目标操作。110.可选地,在本实施例中,上述第一代码和上述第二代码均可以包括但不限于创建目标数据集,并将上述目标数据加载到目标数据集,以执行上述目标操作,上述第一数据集与上述第二数据集可以包括但不限于为spark平台中所使用的rdd数据集,上述目标数据为加载到rdd的数据。111.例如,在上述代码调试方法应用于金融服务的场景时,上述第一数据集与上述第二数据集用于存储待处理的金融数据,包括但不限于账户信息、交易历史数据、交易金额、交易时间等,在上述代码调试方法应用于游戏业务的场景时,上述第一数据集与上述第二数据集用于存储待处理的游戏数据,包括但不限于游戏帐号信息、游戏操作数据、游戏交易数据、游戏图像数据等。112.以图6为例,上述代码调试方法可以包括但不限于如下内容:113.s1,在客户端中显示有上述第一代码集合以及用于扫描的交互对象“优化”;114.s2,对交互对象“优化”执行交互操作;115.s3,响应于上述交互操作,在第一代码子集中删除第一代码,并将第二代码修改为第一目标代码。116.上述目标数据即为“hello.txt”,通过运行上述第一代码,可以将上述hello.txt加载到rdd1(对应于前述的第一数据集)中。117.上述仅是一种示例,本实施例不做任何具体的限定。118.通过本实施例,采用在第一代码子集包括第一代码和第二代码的情况下,在第一代码子集中删除第一代码,并将第二代码修改为第一目标代码,其中,第一代码用于加载目标数据到第一数据集中,第二代码用于对第一数据集中的目标数据执行目标操作,第一目标代码用于对第二数据集中的目标数据执行目标操作的方式,通过删除第一代码,并将第二代码修改为第一目标代码,以优化重复创建rdd的代码逻辑,便于将重复创建rdd的代码逻辑进行优化,避免了重复创建rdd的技术问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。119.作为一种可选的方案,对第一代码集合进行扫描,得到目标扫描结果,包括:120.在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于依次执行第一组运算操作,第二代码子集用于依次执行第二组运算操作,第一组运算操作中的第一部分运算操作和第二组运算操作中的第二部分运算操作相同,在第一代码集合中第二代码子集早于第一代码子集被运行;121.其中,第一部分运算操作包括从第一组运算操作中的第一个运算操作开始的连续多个运算操作,第二部分运算操作包括从第二组运算操作中的第一个运算操作开始的连续多个运算操作;或者,第一部分运算操作包括第一组运算操作中的第一个运算操作,第二部分运算操作包括第二组运算操作中的第一个运算操作。122.可选地,在本实施例中,上述第一组运算操作和上述第二组运算操作包括但不限于按照上述代码集合中代码的顺序实现,上述第一组运算操作和上述第二组运算操作中的运算操作均通过在目标计算平台中调用与代码对应的函数进行运算,在本实施例中,调用的函数统称为fun(function,函数)。123.图7是根据本发明实施例的又一种代码调试方法的示意图,如图7所示,具体包括但不限于如下步骤:124.s1,在客户端中显示有上述第一代码集合以及用于扫描的交互对象“扫描”,并且,还显示有上述第一代码子集,包括:“fun1→fun2→fun3→fun6”,,也即,上述第一组运算操作,上述目标代码子集,包括“fun1→fun2→fun3→fun4”,也即,上述第二组运算操作。125.s2,对交互对象“扫描”执行交互操作;126.s3,响应于上述交互操作,以使用代码扫描模块扫描上述第一代码集合;127.s4,在扫描完成之后,在客户端中生成并显示上述目标扫描结果。128.其中,上述目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,上述目标扫描结果可以包括但不限于标识上述待优化的第一代码子集在上述第一代码集合中所处的位置,以及待优化的原因,例如,图7中展示的标识“重复计算!是否优化?”。129.可选地,在本实施例中,上述第一部分运算操作包括从第一组运算操作中的第一个运算操作开始的连续多个运算操作,以图7为例,包括fun1→fun2→fun3,第二部分运算操作包括从第二组运算操作中的第一个运算操作开始的连续多个运算操作,以图7为例,包括fun1→fun2→fun3;或者,第一部分运算操作包括第一组运算操作中的第一个运算操作,以图6为例,第一代码子集由valrdd1=sc.textfile("hello.txt")以及rdd1.map(…),则图6中所示的第一代码子集包括fun1:valrdd1=sc.textfile("hello.txt"),fun2:rdd1.map(…),则上述第一部分运算操作包括第一组运算操作中的第一个运算操作即为包括valrdd1=sc.textfile("hello.txt"),第二部分运算操作包括第二组运算操作中的第一个运算操作,以图6为例,目标代码子集由valrdd2=sc.textfile("hello.txt")以及rdd2.reduce(…),则图6中所示的第一代码子集包括fun1:valrdd2=sc.textfile("hello.txt"),fun2:rdd2.reduce(…),则valrdd2=sc.textfile("hello.txt"),则上述第二部分运算操作包括第二组运算操作中的第一个运算操作即为包括valrdd2=sc.textfile("hello.txt")。130.可选地,在本实施例中,上述第三目标代码包括但不限于如图7所示的“缓存”代码,上述第四目标代码包括但不限于如图7所示的“fun5”代码,上述第三目标代码和上述第四目标代码共同组成上述第二目标代码。131.上述仅是一种示例,本实施例不做任何具体限定。132.通过本实施例,采用在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果包括目标扫描结果,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于依次执行第一组运算操作,第二代码子集用于依次执行第二组运算操作,第一组运算操作中的第一部分运算操作和第二组运算操作中的第二部分运算操作相同,在第一代码集合中第二代码子集早于第一代码子集被运行的方式,通过扫描第一代码子集,确定出第一代码子集与第二代码子集的部分运算操作相同,进而,确定第一代码集合中的算子存在重复执行的情况,以便于后续通过优化第一代码集合为第二代码集合,避免由于人为优化代码无法优化代码中包含算子重复执行的技术问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。133.作为一种可选的方案,将第一代码集合中的第一代码子集优化成目标代码子集,得到第二代码集合,包括:134.在第一代码子集中删除第一部分运算操作对应的代码,并将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,其中,第二目标代码用于获取第二组运算操作的运算结果,并对获取到的运算结果执行下一个运算操作。135.可选地,在本实施例中,上述在第一代码子集中删除第一部分运算操作对应的代码可以包括但不限于将第一部分运算操作从第一代码集合的代码逻辑中去除,上述将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码可以包括但不限于将上述第二目标代码配置为用于缓存上述第一部分运算操作的最后一个运算操作的数据,以便于第二组运算操作直接调用上述第一部分运算操作的最后一个运算操作的数据进行运算。136.可选地,在本实施例中,上述下一个运算操作即为上述第二组运算操作中在第二部分运算操作之后的运算操作,以图7为例,fun1→fun2→fun3即为上述第一部分运算操作,fun5即为上述第一部分运算操作的下一个运算操作,通过将fun5代码修改为第三目标代码,并在第三目标代码之后,增加fun5对应的第四目标代码,已实现将第一代码子集中的fun1→fun2→fun3→fun5修改为缓存(对应于前述的第三目标代码)→fun5(第四目标代码)。137.通过本实施例,采用在第一代码子集中删除第一部分运算操作对应的代码,并将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,其中,第二目标代码用于获取第二组运算操作的运算结果,并对获取到的运算结果执行下一个运算操作的方式,通过删除第一部分运算操作对应的代码,并将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,进而,实现第一代码子集对应的代码逻辑从fun1→fun2→fun3→fun5修改为缓存→fun5,以避免算子重复执行的技术问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。138.作为一种可选的方案,将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,包括:139.在第二代码子集中增加第三目标代码,并将第二部分运算操作的下一个运算操作对应的代码修改为第四目标代码,其中,第三目标代码被设置为在第二部分运算操作对应的代码之后执行、并在第四目标代码之前执行,第三目标代码用于将第二组运算操作的运算结果存入目标缓存中,第四目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的第二组运算操作的运算结果执行第二部分运算操作的下一个运算操作,第二目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的运算结果执行第一部分运算操作的下一个运算操作。140.可选地,在本实施例中,图8是根据本发明实施例的又一种代码调试方法的示意图,如图8所示,上述代码调试可以包括但不限于如下内容:141.图8中所示的job1即为上述第一代码集合中指示执行的一次任务,在扫描到job1和job2均存在需要加载数据至rdd1和rdd2以执行fun1和fun2操作时,在job1对应的代码子集中增加cacheblock,以缓存fun2的运算结果,上述将fun2的运算结果缓存至cacheblock即为上述第三目标代码,在job2对应的代码子集中增加cacheblock,以从缓存中提取fun2的运算结果即为上述第四目标代码。142.需要说明的是,在目标计算平台进行数据处理的过程中,上述运算过程可以包括但不限于为循环使用的,也即,在运行的代码集合确定之后,每次拉取待处理的数据,均会执行上述代码逻辑,因此,避免了fun1与fun2重复创建rdd1和rdd2的技术问题。143.上述仅是一种示例,本实施例不做任何具体的限定。144.通过本实施例,采用在第二代码子集中增加第三目标代码,并将第二部分运算操作的下一个运算操作对应的代码修改为第四目标代码,其中,第三目标代码被设置为在第二部分运算操作对应的代码之后执行、并在第四目标代码之前执行,第三目标代码用于将第二组运算操作的运算结果存入目标缓存中,第四目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的第二组运算操作的运算结果执行第二部分运算操作的下一个运算操作,第二目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的运算结果执行第一部分运算操作的下一个运算操作的方式,通过删除第一部分运算操作对应的代码,并将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,进而,实现第一代码子集第一代码子集对应的代码逻辑从fun1→fun2→fun5修改为缓存→fun5,以避免算子重复执行导致的rdd重复创建的技术问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。145.作为一种可选的方案,对第一代码集合进行扫描,得到目标扫描结果,包括:146.在第一代码集合中存在第一代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于将第一数据分组中的数据传输给目标数据处理节点,第一数据分组中允许包括多条相同的数据。147.可选地,在本实施例中,上述第一代码子集通过预定类型的算子以实现将第一数据分组中的数据传输给目标数据处理节点,可以包括但不限于配置预定类型的算子为groupbykey算子,reducebykey算子,以及aggregatebykey算子等,而上述groupbykey算子并不允许包括多条相同的数据,而是每次传输数据时,逐条进行传输数据,上述reducebykey算子,以及aggregatebykey算子则预先进行聚合操作,将相同的数据聚合为一条数据,通过一次传输即可实现将多条相同数据的第一数据分组均传输至对应的目标数据处理节点。148.可选地,在本实施例中,上述第一代码子集通过预定类型的算子以实现将第一数据分组中的数据传输给目标数据处理节点,可以包括但不限于配置预定类型的算子为foreach算子、foreachpartitions算子等,其中,foreach算子一次执行一条数据的处理,而foreachpartitions一次执行一个partition的处理(partition为用于存储待处理数据的节点)。149.可选地,在本实施例中,上述第一代码子集通过预定类型的算子以实现将第一数据分组中的数据传输给目标数据处理节点,可以包括但不限于配置预定类型的算子为map算子、mappartitions算子等,其中,map算子一次执行一条数据的处理,而mappartitions一次执行一个partition的处理(partition为用于存储待处理数据的节点)。150.可选地,在本实施例中,图9是根据本发明实施例的又一种代码调试方法的示意图,如图9所示,具体包括但不限于如下步骤:151.s1,在客户端中显示有上述第一代码集合以及用于扫描的交互对象“扫描”,并且,还显示有上述第一代码子集,包括:使用groupbykey算子进行操作的第一代码子集;152.s2,对交互对象“扫描”执行交互操作;153.s3,响应于上述交互操作,以使用第一目标代码扫描模块扫描上述第一代码集合;154.s4,在扫描完成之后,在客户端中生成并显示上述目标扫描结果。155.其中,上述目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,上述目标扫描结果可以包括但不限于标识上述待优化的第一代码子集在上述第一代码集合中所处的位置,以及待优化的原因,例如,图7中展示的标识“是否优化?”。156.通过本实施例,采用在第一代码集合中存在第一代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于将第一数据分组中的数据传输给目标数据处理节点,第一数据分组中允许包括多条相同的数的方式,通过扫描第一代码子集,扫描得到用于将第一数据分组中的数据传输给目标数据处理节点的代码所对应的算子的性能较低的代码,由于该代码仅仅只能逐条处理数据,通过修改代码逻辑实现优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。157.作为一种可选的方案,将第一代码集合中的第一代码子集优化成目标代码子集,得到第二代码集合,包括:158.在第一代码集合中将第一代码子集替换成目标代码子集,目标代码子集用于在第一数据分组包括多条相同的数据时,将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点。159.可选地,在本实施例中,以图9为例,可以包括但不限于如下内容:160.s1,在客户端中显示有上述第一代码集合以及用于扫描的交互对象“优化”;161.s2,对交互对象“优化”执行交互操作;162.s3,响应于上述交互操作,在第一代码集合中将第一代码子集替换成目标代码子集。163.通过将使用groupbykey算子进行操作的第一代码子集替换为使用reducebykey算子进行操作的目标代码子集,以实现在第一数据分组包括多条相同的数据时,将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点。164.需要说明的是,上述目标代码子集用于通过如下方式在第一数据分组包括多条相同的数据时,将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点:165.图10是根据本发明实施例的又一种代码调试方法的示意图,如图10所示,例如,在第一个数据分区中出现了两次(hello,1),则如果使用的是第一代码子集,会传输两次(hello,1),而在使用目标代码子集替换第一代码子集之后,会预先将两个(hello,1)数据聚合为一个(hello,2)数据,再传输一次(hello,2),reducebykey算子会在本地对数据相同的key进行预聚合,再进行shuffle阶段的时候,其他节点在拉取数据以传输数据时,可以减少拉取的数据量,减少网络io带来的性能消耗,而groupbykey算子没有预聚合操作,全量的数据在集群的各个节点传输分配,增加太多的网络数据传输时延,其中,shuffle即为数据交互操作,task表示代码集合所执行的任务。166.上述仅是一种示例,本实施例不做任何具体的限定。167.通过本实施例,采用在第一代码集合中将第一代码子集替换成目标代码子集,目标代码子集用于在第一数据分组包括多条相同的数据时,将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点的方式,通过将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点,以避免多次拉取或传输相同数据的技术问题,进而达到了优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。168.作为一种可选的方案,方法还包括以下至少之一:169.在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第一提示信息,其中,第一提示信息用于提示第一代码子集在第一代码集合中的位置;170.在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第二提示信息,其中,第二提示信息用于提示是否需要将第一代码子集替换成目标代码子集。171.可选地,在本实施例中,上述第一提示信息以及第二提示信息可以由工作人员预先配置,例如,以图7为例,通过将上述第一代码子集采用虚线框的形式标识出,以实现提示第一代码子集的位置,通过显示“重复!是否优化?”以提示是否需要将第一代码子集替换成目标代码子集。172.可选地,在本实施例中,还可以包括但不限于通过不同颜色标识,作为上述第一提示信息或第二提示信息。173.上述仅是一种示例,本实施例不做任何具体的限定。174.通过本实施例,采用在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第一提示信息,其中,第一提示信息用于提示第一代码子集在第一代码集合中的位置,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第二提示信息,其中,第二提示信息用于提示是否需要将第一代码子集优化为第二代码子集的方式,通过生成用于提示第一代码子集在第一代码集合中的位置,或提示是否需要将第一代码子集替换成目标代码子集,以达到优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。175.作为一种可选的方案,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集优化成目标代码子集,得到第二代码集合,包括:176.在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成目标优化方案,其中,目标优化方案用于将第一代码子集替换成第二代码子集;177.获取目标执行指令,其中,目标执行指令用于指示执行目标优化方案;178.响应于目标执行指令,执行目标优化方案,以将第一代码集合中的第一代码子集替换成第二代码子集,得到第二代码集合。179.可选地,在本实施例中,上述目标优化方案可以包括但不限于为不同种类的待优化的第一代码子集优化成目标代码子集提供优化方案,例如,上述用于避免算子重复计算的方案,上述用于避免算子性能较差的方案,上述用于避免rdd重复创建的方案等。180.可选地,在本实施例中,上述目标执行指令可以包括但不限于如图6所示的针对“优化”交互对象所执行的交互操作,例如,在图6所示的场景中,当点击“优化”按钮后,开始将第一代码集合中的第一代码子集优化成目标代码子集。181.可选地,在本实施例中,还可以包括但不限于在客户端的显示界面中显示上述第一代码子集为第一代码子集的原因,例如,上述算子性能较差,rdd重复创建等。182.上述仅是一种示例,本实施例不做任何具体的限定。183.通过本实施例,采用在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成目标优化方案,其中,目标优化方案用于将第一代码子集替换成第二代码子集;184.获取目标执行指令,其中,目标执行指令用于指示执行目标优化方案;185.响应于目标执行指令,执行目标优化方案,以将第一代码集合中的第一代码子集替换成第二代码子集,得到第二代码集合的方式,通过生成目标优化方案,并获取执行指令,以对第一代码集合中的第一代码子集进行优化,得到优化后的第二代码集合,达到优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。186.作为一种可选的方案,在目标计算平台中运行第二代码集合,包括:187.在第二代码集合在目标计算平台运行完成的情况下,生成第二代码集合的运行日志,其中,运行日志记录了以下至少之一:在目标计算平台中运行第二代码集合的过程中目标计算平台的运行参数,以及在目标计算平台中运行第二代码集合的过程中第二代码集合所操作的目标数据的交互参数。188.可选地,在本实施例中,可以包括但不限于获取提交操作指令,来实现在目标计算平台中运行上述第二代码集合,上述提交操作指令可以包括但不限于在客户端的显示界面中配置用于提交代码集合的交互对象,在获取到对上述交互对象执行的提交操作后,响应于提交操作指令,将第二代码集合提交到目标计算平台,以在目标计算平台中运行第二代码集合。189.可选地,在本实施例中,在上述目标计算平台运行第二代码集合的过程中,还能够实时获取目标计算平台的运行参数。190.图11是根据本发明实施例的又一种可选的代码调试方法的示意图,如图11所示,通过运行参数的可视化界面可以获知上述第二代码集合在目标计算平台中运行时,目标计算平台的运行参数。191.上述运行参数可以包括但不限于cpu占用率、内存占用率、计算时长以及是否出现了异常事件等。192.可选地,在本实施例中,上述运行日志中记录了如图11所示的运行参数,还可以包括但不限于记录了如图11所示的目标数据的交互参数,上述运行参数可以包括但不限于cpu占用率、内存占用率、计算时长以及是否出现了异常事件等。上述目标数据的交互参数可以包括但不限于上述目标数据的传输路径信息,例如,记录待处理的目标数据由数据处理节点获取的传输路径信息。193.上述仅是一种示例,本实施例不做任何具体的限定。194.通过本实施例,采用在第二代码集合在目标计算平台运行完成的情况下,生成第二代码集合的运行日志,其中,运行日志记录了以下至少之一:在目标计算平台中运行第二代码集合的过程中目标计算平台的运行参数,以及在目标计算平台中运行第二代码集合的过程中第二代码集合所操作的目标数据的交互参数的方式,通过实时获取目标计算平台在运行第二代码集合时的运行参数以及目标数据的交互参数,以便于后续重新调整第二代码集合,进而,能够达到进一步优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。195.作为一种可选的方案,在生成第二代码集合的运行日志之后,方法还包括以下至少之一:196.在运行参数表示的加载时长大于或等于预设的时长阈值的情况下,在第二代码集合中增加第一段代码,其中,加载时长是目标计算平台运行第二代码集合时加载目标数据的时长,第一段代码用于增加目标计算平台的分区集合中的各分区的容量,或者,用于增加目标计算平台的分区集合中的各分区的容量,并减少分区集合中的分区的数量,目标计算平台用于从分区集合中加载目标数据;197.在运行参数表示的内存占用参数的取值大于或等于预设的占用阈值的情况下,在第二代码集合中增加第二段代码,其中,内存占用参数的取值用于表示目标计算平台运行第二代码集合处理目标数据时所占用的内存,第二段代码用于增加目标计算平台允许使用的内存;198.在第二代码集合包括用于对目标数据中的部分或全部数据进行传输操作或收集操作的代码的情况下,在第二代码集合中增加第三段代码,其中,第三段代码用于增加目标计算平台允许使用的内存。199.可选地,在本实施例中,上述加载时长是目标计算平台运行第二代码集合时加载目标数据的时长,目标计算平台通过从分区集合中各个分区拉取数据,以进行数据处理,在上述加载时长出过预设的时长阈值的情况下,则认为目前加载超时,待加载的数据量过大或小文件过多,因此,采用增加目标计算平台的分区集合中的各分区的容量,或者,用于增加目标计算平台的分区集合中的各分区的容量,并减少分区集合中的分区的数量实现性能的优化,例如,当加载数据源缓慢时,则代表源数据的小文件数过多,可以通过增加partition分区(分区集合中的分区)容量,同时使用coalesce减少分区个数,从而减少小文件个数,以提高目标计算平台处理的速度,进而,缩短加载数据的时长,使得加载数据的时长能够符合业务需求。200.可选地,在本实施例中,在目标计算平台运行第二代码集合处理目标数据时所占用的内存大于或等于预设的占用阈值的情况下,在第二代码集合中增加第二段代码,以增加目标计算平台允许使用的内存。201.例如,在目标计算平台运行第二代码集合的执行过程中,出现内存溢出或者内存占用率长期100%(对应于前述的在目标计算平台运行第二代码集合处理目标数据时所占用的内存大于或等于预设的占用阈值),则需要增加executor-memory参数,以使得目标计算平台的运行效率能够满足业务需求。202.可选地,在本实施例中,在第二代码集合包括用于对目标数据中的部分或全部数据进行传输操作或收集操作的代码子集的情况下,在第二代码集合中增加用于增加目标计算平台允许使用的内存的代码子集。203.例如,在目标计算平台运行第二代码集合的执行过程中,出现broadcast(传输)和collect(收集)等操作,通过适当增加driver-memory参数,以使得目标计算平台的运行效率能够满足业务需求。204.图12是根据本发明实施例的又一种可选的代码调试方法的示意图,如图12所示,具体包括但不限于如下内容:205.客户端显示界面1202用于表示内存占用参数的取值大于或等于预设的占用阈值的情况,其中,虚线部分即为预设的占用阈值,阴影部分即为运行第二代码集合时,目标计算平台的内存占用参数,当阴影部分覆盖虚线部分时,确定上述内存占用参数的取值大于或等于预设的占用阈值。206.客户端显示界面1204用于表示加载时长超过预设时长阈值的情况,其中,假设预设的时长阈值为60分钟,在上述客户端显示界面1204显示的加载时长超过50分钟,为1小时23分钟25秒时,则确定加载时长大于或等于预设的时长阈值。207.客户端显示界面1206用于表示是否发生了异常事件,例如,查找到收集或传输操作时,用于表示异常事件的表示由空白变化为阴影部分,则确定第二代码集合包括用于对目标数据中的部分或全部数据进行传输操作或收集操作的第五代码子集。208.上述仅是一种示例,本实施例不做任何具体的限定。209.通过本实施例,采用在运行参数表示的加载时长大于或等于预设的时长阈值的情况下,在第二代码集合中增加第一段代码,其中,加载时长是目标计算平台运行第二代码集合时加载目标数据的时长,第一段代码用于增加目标计算平台的分区集合中的各分区的容量,或者,用于增加目标计算平台的分区集合中的各分区的容量,并减少分区集合中的分区的数量,目标计算平台用于从分区集合中加载目标数据,在运行参数表示的内存占用参数的取值大于或等于预设的占用阈值的情况下,在第二代码集合中增加第二段代码,其中,内存占用参数的取值用于表示目标计算平台运行第二代码集合处理目标数据时所占用的内存,第二段代码用于增加目标计算平台允许使用的内存,在第二代码集合包括用于对目标数据中的部分或全部数据进行传输操作或收集操作的代码的情况下,在第二代码集合中增加第三段代码,其中,第三段代码用于增加目标计算平台允许使用的内存的方式,通过根据运行参数输出代码调试建议,以优化上述第二代码集合,进而,能够达到进一步优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,提高了在计算平台进行代码调试的调试效率的技术效果,进而解决了相关技术中存在的代码优化的效率较低的技术问题。210.作为一种可选的方案,在生成第二代码集合的运行日志之后,方法还包括:211.在运行参数指示第二代码集合的运行过程中出现数据倾斜的情况下,确定第二代码集合是否包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码;212.在第二代码集合包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码的情况下,在目标数据中查找第一数据集合和第二数据集合,其中,第一数据集合中的数据的量级小于预设的第一数据量级、且第一数据集合中的数据被设置执行连接操作,第二数据集合中的数据的量级大于预设的第二数据量级、且第二数据集合中的数据被设置执行连接操作,第一数据量级小于第二数据量级;213.在查找到第一数据集合的情况下,将第一数据集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据集合中的数据所形成的表执行连接操作,得到第一操作结果;214.在查找到第二数据集合的情况下,将第二数据集合中的数据拆分为具有数据倾斜标识的第一数据子集合以及不具有数据倾斜标识的第二数据子集合;215.将第一数据子集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据子集合中的数据所形成的表执行连接操作,得到第二操作结果;216.对第二数据子集合中的数据所形成的表直接执行连接操作,得到第三操作结果;217.对第二操作结果和第三操作结果进行合并,得到第四操作结果。218.可选地,在本实施例中,上述数据倾斜是由于在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或者join操作。如果某个key对应的数据量特别大的话,会发生数据倾斜。比如大部分key对应的10条数据,但个别key却对应了100万条数据,那么大部分task会只分配到10条数据,而个别task可能会分配了100万数据,因此,目标计算平台的的运行进度是由运行时间最长的那个task决定的,换言之,在上述目标数据的交互参数以及运行参数中查找到大多数节点处理迅速,而个别节点处理缓慢时,则可以确定第二代码集合的运行过程中出现了数据倾斜。219.可选地,在本实施例中,上述连接操作可以包括但不限于sql中包括的join操作,按照功能大致分为如下三类:220.innerjoin(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。221.leftjoin(左连接):取得左表(table1)完全记录,无需关心右表(table2)中是否有对应匹配记录:有对应连接的记录会根据连接显示,没有响应的连接记录,补null222.rightjoin(右连接):与leftjoin相反,取得右表(table2)完全记录,即使左表(table1)并无匹配对应记录。223.上述第一数据集合可以包括但不限于上述左表。224.图13是根据本发明实施例的又一种代码调试方法的示意图,如图13所示,具体步骤如下:225.s1,检查上述第二代码集合是否有join操作,如果join操作左表的数据量级小于第一数据量级,则可以包括但不限于通过broadcast(对应于前述的广播操作)形式广播到每个executor(对应于前述的数据处理节点),再使用map方法来实现join的功能,得到上述第一操作结果。226.s2,如果左表量级大于上述第二数据量级,无法全部放置于内存中,则考虑采样拆分,将大数据拆分成有数据倾斜的key(对应于前述的第一数据子集合)和无数据倾斜的key(对应于前述的第二数据子集合),针对有数据倾斜的key则采用上述的broadcast+mapjoin方法优化),得到上述第二操作结果。227.s3,无数据倾斜的key则直接进行join,得到第三操作结果。228.s4,对拆分后执行完的结果进行unionall操作,得到上述第四操作结果。229.其中,图14是根据本发明实施例的又一种代码调试方法的示意图,如图14所示,通过对rdd_flow(量级大于第二数据量级的表)或rdd_black(量级小于第一数据量级的表)进行采样拆分,将拆分得到的正常数据,例如,rdd_flow_normal、rdd_black_normal中的数据直接进行join操作,得到包括正常数据的rdd_ret_normal,将拆分得到的不正常数据(例如,发生数据倾斜的表),例如,rdd_flow_skew执行map操作,将rdd_black_skew中的数据执行broadcast操作,得到包括不正常数据的rdd_ret_skew,最后,将rdd_ret_normal与rdd_ret_skew中的数据进行拼接(unionall),得到最终的rdd_ret。230.可选地,在本实施例中,在第二代码集合不包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码的情况下,确定为由于聚合操作导致的数据倾斜,如果是聚合操作导致的数据倾斜问题,则在数据倾斜的key前面加上随机前缀,进行预聚合,之后再去掉随机前缀,最后进行全局聚合,以解决相关技术中存在的目标计算平台在进行数据处理过程中,出现的数据倾斜的技术问题。231.通过本实施例,采用在运行参数指示第二代码集合的运行过程中出现数据倾斜的情况下,确定第二代码集合是否包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码,在第二代码集合包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码的情况下,在目标数据中查找第一数据集合和第二数据集合,其中,第一数据集合中的数据的量级小于预设的第一数据量级、且第一数据集合中的数据被设置执行连接操作,第二数据集合中的数据的量级大于预设的第二数据量级、且第二数据集合中的数据被设置执行连接操作,第一数据量级小于第二数据量级,在查找到第一数据集合的情况下,将第一数据集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据集合中的数据所形成的表执行连接操作,得到第一操作结果,在查找到第二数据集合的情况下,将第二数据集合中的数据拆分为具有数据倾斜标识的第一数据子集合以及不具有数据倾斜标识的第二数据子集合,将第一数据子集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据子集合中的数据所形成的表执行连接操作,得到第二操作结果,对第二数据子集合中的数据所形成的表直接执行连接操作,得到第三操作结果,对第二操作结果和第三操作结果进行合并,得到第四操作结果的方式,通过根据上述第二代码集合中是否包含连接操作,以及包含连接操作后不同表的数据量级,适应性执行对应的操作,能够达到进一步优化代码集合的目的,从而实现了降低在计算平台进行代码调试的调试成本,解决了相关技术中存在的目标计算平台在进行数据处理过程中,出现的数据倾斜的技术问题。232.需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。233.根据本发明实施例的另一个方面,还提供了一种用于实施上述代码调试方法的代码调试装置。如图15所示,该装置包括:234.获取模块1502,用于获取待运行的第一代码集合;235.扫描模块1504,用于对第一代码集合进行扫描,得到目标扫描结果,其中,目标扫描结果用于表示第一代码集合中是否存在待优化的第一代码子集;236.优化模块1506,用于在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源;237.运行模块1508,用于在目标计算平台中运行第二代码集合。238.作为一种可选的方案,扫描模块1504包括:239.第一扫描模块1504,用于在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于加载目标数据到创建的第一数据集中,第二代码子集用于加载目标数据到创建的第二数据集中,在第一代码集合中第二代码子集早于第一代码子集被运行。240.作为一种可选的方案,优化模块1506包括:241.第一优化单元,用于在第一代码子集包括第一代码和第二代码的情况下,在第一代码子集中删除第一代码,并将第二代码修改为第一目标代码,其中,第一代码用于加载目标数据到第一数据集中,第二代码用于对第一数据集中的目标数据执行目标操作,第一目标代码用于对第二数据集中的目标数据执行目标操作。242.作为一种可选的方案,扫描模块1504包括:243.第二扫描模块1504,用于在第一代码集合中存在第一代码子集和第二代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于依次执行第一组运算操作,第二代码子集用于依次执行第二组运算操作,第一组运算操作中的第一部分运算操作和第二组运算操作中的第二部分运算操作相同,在第一代码集合中第二代码子集早于第一代码子集被运行;其中,第一部分运算操作包括从第一组运算操作中的第一个运算操作开始的连续多个运算操作,第二部分运算操作包括从第二组运算操作中的第一个运算操作开始的连续多个运算操作;或者,第一部分运算操作包括第一组运算操作中的第一个运算操作,第二部分运算操作包括第二组运算操作中的第一个运算操作。244.作为一种可选的方案,优化模块1506包括:245.第二优化单元,用于在第一代码子集中删除第一部分运算操作对应的代码,并将第一部分运算操作的下一个运算操作对应的代码修改为第二目标代码,其中,第二目标代码用于获取第二组运算操作的运算结果,并对获取到的运算结果执行下一个运算操作。246.作为一种可选的方案,优化模块1506包括:247.第三优化单元,用于在第二代码子集中增加第三目标代码,并将第二部分运算操作的下一个运算操作对应的代码修改为第四目标代码,其中,第三目标代码被设置为在第二部分运算操作对应的代码之后执行、并在第四目标代码之前执行,第三目标代码用于将第二组运算操作的运算结果存入目标缓存中,第四目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的第二组运算操作的运算结果执行第二部分运算操作的下一个运算操作,第二目标代码用于从目标缓存中获取第二组运算操作的运算结果,并对获取到的运算结果执行第一部分运算操作的下一个运算操作。248.作为一种可选的方案,扫描模块1504包括:249.第三扫描模块1504,用于在第一代码集合中存在第一代码子集的情况下,生成目标扫描结果,其中,目标扫描结果用于表示第一代码集合中存在待优化的第一代码子集,第一代码子集用于将第一数据分组中的数据传输给目标数据处理节点,第一数据分组中允许包括多条相同的数据。250.作为一种可选的方案,优化模块1506包括:251.第四优化单元,用于在第一代码集合中将第一代码子集替换成目标代码子集,目标代码子集用于在第一数据分组包括多条相同的数据时,将第一数据分组中的多条相同的数据聚合成一条数据,得到第二数据分组,并将第二数据分组传送给目标节点。252.作为一种可选的方案,装置还包括以下至少之一:253.第一提示模块,用于在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第一提示信息,其中,第一提示信息用于提示第一代码子集在第一代码集合中的位置;254.第二提示模块,用于在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成第二提示信息,其中,第二提示信息用于提示是否需要将第一代码子集替换成目标代码子集。255.作为一种可选的方案,优化模块1506包括:256.生成单元,用于在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,生成目标优化方案,其中,目标优化方案用于将第一代码子集替换成第二代码子集;257.获取单元,用于获取目标执行指令,其中,目标执行指令用于指示执行目标优化方案;258.执行单元,用于响应于目标执行指令,执行目标优化方案,以将第一代码集合中的第一代码子集替换成第二代码子集,得到第二代码集合。259.作为一种可选的方案,装置还用于:260.在目标计算平台中运行第二代码集合之后,在第二代码集合在目标计算平台运行完成的情况下,生成第二代码集合的运行日志,其中,运行日志记录了以下至少之一:在目标计算平台中运行第二代码集合的过程中目标计算平台的运行参数,以及在目标计算平台中运行第二代码集合的过程中第二代码集合所操作的目标数据的交互参数。261.作为一种可选的方案,在生成第二代码集合的运行日志之后,装置还包括以下至少之一:262.第一处理模块,用于在运行参数表示的加载时长大于或等于预设的时长阈值的情况下,在第二代码集合中增加第一段代码,其中,加载时长是目标计算平台运行第二代码集合时加载目标数据的时长,第一段代码用于增加目标计算平台的分区集合中的各分区的容量,或者,用于增加目标计算平台的分区集合中的各分区的容量,并减少分区集合中的分区的数量,目标计算平台用于从分区集合中加载目标数据;263.第二处理模块,用于在运行参数表示的内存占用参数的取值大于或等于预设的占用阈值的情况下,在第二代码集合中增加第二段代码,其中,内存占用参数的取值用于表示目标计算平台运行第二代码集合处理目标数据时所占用的内存,第二段代码用于增加目标计算平台允许使用的内存;264.第三处理模块,用于在第二代码集合包括用于对目标数据中的部分或全部数据进行传输操作或收集操作的代码的情况下,在第二代码集合中增加第三段代码,其中,第三段代码用于增加目标计算平台允许使用的内存。265.作为一种可选的方案,装置还用于:266.在运行参数指示第二代码集合的运行过程中出现数据倾斜的情况下,确定第二代码集合是否包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码;267.在第二代码集合包括用于对目标数据中的部分或全部数据所形成的表执行连接操作的代码的情况下,在目标数据中查找第一数据集合和第二数据集合,其中,第一数据集合中的数据的量级小于预设的第一数据量级、且第一数据集合中的数据被设置执行连接操作,第二数据集合中的数据的量级大于预设的第二数据量级、且第二数据集合中的数据被设置执行连接操作,第一数据量级小于第二数据量级;268.在查找到第一数据集合的情况下,将第一数据集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据集合中的数据所形成的表执行连接操作,得到第一操作结果;269.在查找到第二数据集合的情况下,将第二数据集合中的数据拆分为具有数据倾斜标识的第一数据子集合以及不具有数据倾斜标识的第二数据子集合;270.将第一数据子集合广播至多个数据处理节点,以通过多个数据处理节点并行地对第一数据子集合中的数据所形成的表执行连接操作,得到第二操作结果;271.对第二数据子集合中的数据所形成的表直接执行连接操作,得到第三操作结果;272.对第二操作结果和第三操作结果进行合并,得到第四操作结果。273.根据本发明实施例的又一个方面,还提供了一种用于实施上述代码调试方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图16所示,该电子设备包括存储器1602和处理器1604,该存储器1602中存储有计算机程序,该处理器1604被设置为通过计算机程序执行上述任一项方法实施例中的步骤。274.可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。275.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:276.s1,获取待运行的第一代码集合;277.s2,对第一代码集合进行扫描,得到目标扫描结果,其中,目标扫描结果用于表示第一代码集合中是否存在待优化的第一代码子集;278.s3,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源;279.s4,在目标计算平台中运行第二代码集合。280.可选地,本领域普通技术人员可以理解,图16所示的结构仅为示意,电子装置电子设备也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图16其并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图16中所示更多或者更少的组件(如网络接口等),或者具有与图16所示不同的配置。281.其中,存储器1602可用于存储软件程序以及模块,如本发明实施例中的代码调试方法和装置对应的程序指令/模块,处理器1604通过运行存储在存储器1602内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的代码调试方法。存储器1602可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1602可进一步包括相对于处理器1604远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器1602具体可以但不限于用于目标数据或代码集合等信息。作为一种示例,如图16所示,上述存储器1602中可以但不限于包括上述代码调试方法装置中的获取模块1502、扫描模块1504、优化模块1506以及运行模块1508此外,还可以包括但不限于上述代码调试方法装置中的其他模块单元,本示例中不再赘述。282.可选地,上述的传输装置1606用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置1606包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置1606为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。283.此外,上述电子设备还包括:显示器1608,用于显示上述提示信息或优化方案;和连接总线1610,用于连接上述电子设备中的各个模块部件。284.在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peertopeer)网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。285.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述代码调试方法方面的各种可选实现方式中提供的方法。其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。286.可选地,在本实施例中,上述计算机可读的存储介质可以被设置为存储用于执行以下步骤的计算机程序:287.s1,获取待运行的第一代码集合;288.s2,对第一代码集合进行扫描,得到目标扫描结果,其中,目标扫描结果用于表示第一代码集合中是否存在待优化的第一代码子集;289.s3,在目标扫描结果表示第一代码集合中存在待优化的第一代码子集的情况下,将第一代码集合中的第一代码子集替换成目标代码子集,得到第二代码集合,其中,第二代码集合包括目标代码子集以及第一代码集合中除第一代码子集之外的代码,第一代码子集和目标代码子集具有相同的功能,运行目标代码子集所需的运行资源少于运行第一代码子集所需的运行资源;290.s4,在目标计算平台中运行第二代码集合。291.可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。292.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。293.上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。294.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。295.在本技术所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。296.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。297.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。298.以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
:的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1