一种程序的运行加载优化算法的制作方法

文档序号:26050040发布日期:2021-07-27 15:24阅读:103来源:国知局
一种程序的运行加载优化算法的制作方法

本发明提供一种程序的运行加载优化算法,属于rpa工作流的运行加载优化领域。



背景技术:

工作流(workflow),简言之就是“业务过程的部分或整体在计算机应用环境下的自动化”。

rpa(机器人流程自动化)的核心就是工作流,包括工作流的编辑,运行等。

rpa编辑器用于工作流的编辑,而为了保证工作流能实现所有需要的功能,rpa编辑器往往会加载所有可能需要的程序集。可是rpa机器人,只承担运行工作流的任务,如果运行时加载的程序集也和rpa编辑器加载的程序集一样的话,往往会在运行时占用大量的内存,导致流程的执行效率低下。

本申请就是为了解决rpa机器人的运行效率低下的问题,提供一种工作流运行时提高效率的方法。



技术实现要素:

本发明的目的在于提供一种程序的运行加载优化算法,提供流程运行时加载优化的算法,包括如何找到流程中使用的依赖项和加载最优框架的程序集版本。

为实现上述目的,本发明提供如下技术方案:一种程序的运行加载优化算法包含以下步骤:步骤一、找到工作流用到的程序集:遍历工作流中所有的流程文件(.xaml为后缀的文件),找到流程文件中命名空间的引用,引用的程序集的namespace和assemblyname三部分和程序集相关的信息,并记录在内存里;

步骤二、记录运行时的程序集:根据第一部分中获取到的程序集信息,结合当前appdomain中加载的程序集的详细信息,得到使用的程序集的完整路径,同时工作流中维护一个runtime.json的文件,用来记录用到的程序集的完整信息,包括程序标识(id),版本,依赖项;

步骤三、运行时加载流程中使用的程序集,同时加载最优的程序集版本:通过步骤二的runtime.json,找到程序的加载目录,一个程序集通常有多个可以运行的环境,同时支持.net46,.net45,.net35,.netstandard1.0,.netstandard2.0,.netstandard1.3;需要在runtime.json里加入当前rpa机器人运行的目标框架,然后通过目标框架找到最接近当前框架的版本,并加载最合适框架的程序集。

与现有技术相比,本发明的有益效果是:本发明解决rpa机器人的运行效率低下的问题,提供一种工作流运行时提高效率的方法,rpa运行工作流时,不需要和编辑器加载一样的程序集,只需要加载当前工作流用到的程序集。

附图说明

图1为本发明获取目标元素特征属性名称流程示意图;

图2为本发明动态特征属性提取算法提取目标元素特征属性流程示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例提供一种技术方案:一种程序的运行加载优化算法包含以下步骤:步骤一、找到工作流用到的程序集:对工作流的每个流程文件找到图中的三个部分信息,然后去重记录在内存中;

xaml命名空间:

xmlns=″http://schemas.microsoft.com/netfx/2009/xaml/activities

xmlns:av=″http://schemas.microsoft.com/winfx/2006/xaml/presentation

xmlns:mc=″http://schemas.openxmlformats.org/markup-compatibility/2006

xmlns:sads=″http://schemas.microsoft.com/netfx/2010/xaml/activities/debugger

xmlns:sap=″http://schemas.microsoft.com/netfx/2009/xaml/activities/presentation

xmlns:sap2010=″http://schemas.microsoft.com/netfx/2010/xaml/activities/presentation

xmlns:scg=″clr-namespace:svstem.collections.generic;assemblv=mscorlib″

xmlns:sco=″clr-namespace:system.collections.objectmodel;assembly=mscorlih″

xmlns:x=″http://schemas.microsoft.com/winfx/2006/xaml″>

xaml导入的namespace:

xaml引用的程序集:

步骤二、记录运行时的程序集;

a.参照下面的runtime.json数据格式,新建runtime.json文件;

b.遍历步骤一中记录的所有程序集,参照附图1执行下面的步骤;

c.从appdomain加载的所有程序集中,找到对应id的程序集信息(程序集id,版本号,和加载路径);

d.判断程序集是否有依赖项,如有依赖项,遍历依赖项重复步骤c-d.

e.保存在runtime.json文件,在runtime.json的节点“projectdependencyitems“,添加程序集id,版本号,依赖项;

其中runtime.json数据格式为

步骤三、运行时加载流程中使用的程序集,同时加载最优的程序集版本(参照附图2):

a.首先获取所有使用的程序集的集合,通过runtime.json里的节点”projectdependencyitems”获得;

b.循环步骤a中的每个程序集,执行下面的步骤;

c.确认当前运行环境的目标框架;

d.从程序的加载路径可得到程序集支持的所有框架;

e.在所有支持的框架版本里找到和当前框架一致的框架版本,如有则返回,如不存在将当前框架加入所有的支持的框架版本中,并排序,找到最接近当前框架的版本,并返回。

本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

需要说明的是,在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合,本说明书系统实施例,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元提示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1