System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书一个或多个实施例涉及软件程序领域,尤其涉及一种针对软件程序的功能扩展方法和装置。
技术介绍
1、对于执行计算任务的程序而言,随着执行环境或目标任务的变化,常常需要针对程序的计算功能进行扩展。例如,对于执行隐私计算的程序而言,常常需要根据计算目标或执行环境,扩展用于不同算法类型、或通过不同加速部件进行硬件加速的隐私计算功能。但是,现有的扩展软件的计算功能的方案,或者存在功能扩展后的软件代码耦合性高,因而对其维护不方便的问题;或者存在用于功能扩展的计算代价较高,因而计算性能较差的问题。
2、因此,为了提高软件功能扩展的可维护性,降低用于软件功能扩展的计算代价,需要一种新的针对软件程序的功能扩展方法。
技术实现思路
1、本说明书一个或多个实施例描述了一种针对软件程序的功能扩展方法和装置,可以自动匹配环境中可用于扩展功能的最佳代码库和硬件,自动达到执行效果最佳的功能扩展。不仅提高软件功能扩展的可维护性的,还降低用于软件功能扩展的计算代价,解决现有技术的不足。
2、根据第一方面,提供了一种针对软件程序的功能扩展方法,所述方法通过功能扩展组件执行,所述功能扩展组件中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,所述方法包括:
3、接收目标应用程序发送的第一请求,所述第一请求用于指示创建针对第一算法类别的第一算法实例,所述第一请求至少包括第一参数,所述第一参数指示第一算法实例的目
4、若所述第一请求中不包括第二参数,所述第二参数指示第一算法实例的目标算法库,则从所述多个算法库中确定出所述目标算法功能的优选算法库,基于所述优选算法库创建第一算法实例,并将所述第一算法实例返回到目标应用程序。
5、在一种可能的实施方式中,所述方法还包括:若所述第一请求中包括第二参数,确定目标算法库是否为有效算法库;若目标算法库为有效算法库,则基于所述目标算法库创建第一算法实例,并将所述第一算法实例返回到目标应用程序;若目标算法库不为有效算法库,则向目标应用程序返回算法实例创建失败消息。
6、在一种可能的实施方式中,从所述多个算法库中确定出所述目标算法功能的优选算法库,包括:
7、分别查询所述多个算法库,确定各个算法库对应的算法功能中是否包括所述目标算法功能,若所述算法库对应的算法功能中包括所述目标算法功能,则将所述算法库作为候选算法库;
8、若候选算法库的数量大于一,则从各个候选算法库中确定出优选算法库;
9、若候选算法库的数量等于一,则将所述候选算法库作为优选算法库;
10、若候选算法库的数量小于一,则确定优选算法库失败。
11、在一种可能的实施方式中,分别查询所述多个算法库,确定各个算法库对应的算法功能中是否包括所述目标算法功能,若所述算法库对应的算法功能中包括所述目标算法功能,则将所述算法库作为候选算法库,包括:
12、根据所在计算机中安装的硬件加速部件的类型,确定出所述多个算法库中的有效算法库,并确定各个有效算法库对应的算法功能中是否包括所述目标算法功能;若所述有效算法库对应的算法功能中包括所述目标算法功能,则将所述有效算法库作为候选算法库。
13、在一种可能的实施方式中,所述硬件加速部件的类型包括图形处理器gpu、现场可编程门阵列fpga和专用集成电路as i c中的一种或多种。
14、在一种可能的实施方式中,各个算法库中对于对应的各个算法功能分别标记有性能估计值;
15、所述从各个候选算法库中确定出优选算法库,包括:
16、根据各个候选算法库中所述目标算法功能标记的性能估计值,从各个候选算法库中确定出优选算法库。
17、在一种可能的实施方式中,所述从各个候选算法库中确定出优选算法库,包括:
18、运行各个候选算法库中的目标算法功能,确定各个候选算法库中的目标算法功能的运行性能,根据所述运行性能从各个候选算法库中确定出优选算法库。
19、在一种可能的实施方式中,所述多个算法库分别依据第一算法类别的细化类别,和/或,用于加速计算的硬件加速部件类型而构建。
20、在一种可能的实施方式中,所述方法还包括:
21、通过向所述功能扩展组件注册额外的算法库,将额外的算法库添加到所述多个算法库中,所述注册的引用参数至少包括额外的算法库对应的算法功能。
22、在一种可能的实施方式中,所述注册的引用参数还包括所述算法功能的性能估计值。
23、在一种可能的实施方式中,所述功能扩展组件中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,包括:
24、所述功能扩展组件中包括针对多个算法类别的预先注册的多个第一算法库,所述多个算法类别中包括第一算法类别,所述多个第一算法库中包括针对第一算法类别的多个第二算法库,所述第二算法库分别具有对应的一至多个算法功能,所述算法功能分别具有对应的一至多个第二算法库。
25、在一种可能的实施方式中,所述功能扩展组件中还包括分别针对所述多个算法类别的多个调用接口;
26、接收目标应用程序发送的第一请求,包括:
27、通过所述多个调用接口中针对所述第一算法类别的调用接口,接收目标应用程序发送的第一请求。
28、在一种可能的实施方式中,所述功能扩展组件部署于目标计算框架中,所述目标应用程序包括所述目标计算框架的外部程序或内部程序。
29、根据第二方面,提供了一种针对软件程序的功能扩展装置,所述装置部署于功能扩展组件中,所述功能扩展程序中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,所述装置包括:
30、请求接收单元,配置为,接收目标应用程序发送的第一请求,所述第一请求用于指示创建针对第一算法类别的第一算法实例,所述第一请求至少包括第一参数,所述第一参数指示第一算法实例的目标算法功能;
31、计算实例返回单元,配置为,若所述第一请求中不包括第二参数,所述第二参数指示第一算法实例的目标算法库,则从所述多个算法库中确定出所述目标算法功能的优选算法库,基于所述优选算法库创建第一算法实例,并将所述第一算法实例返回到目标应用程序。
32、根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。利用以上各个方面中的方法、装置、计算设备、存储介质中的一个或多个,可以自动匹配环境中可用于扩展功能的最佳代码库和硬件,从而自动达到执行效果最佳的功能扩展。不仅提高软件功能扩展的可维护性的,还降低用于软件功能扩展的计算代价。
本文档来自技高网...【技术保护点】
1.一种针对软件程序的功能扩展方法,所述方法通过功能扩展组件执行,所述功能扩展组件中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,所述方法包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求1所述的方法,其中,从所述多个算法库中确定出所述目标算法功能的优选算法库,包括:
4.根据权利要求3所述的方法,其中,分别查询所述多个算法库,确定各个算法库对应的算法功能中是否包括所述目标算法功能,若所述算法库对应的算法功能中包括所述目标算法功能,则将所述算法库作为候选算法库,包括:
5.根据权利要求4所述的方法,其中,所述硬件加速部件的类型包括图形处理器GPU、现场可编程门阵列FPGA和专用集成电路AS I C中的一种或多种。
6.根据权利要求3所述的方法,其中,各个算法库中对于对应的各个算法功能分别标记有性能估计值;
7.根据权利要求3所述的方法,其中,所述从各个候选算法库中确定出优选算法库,包括:
8.根据权利要求1所述
9.根据权利要求1所述的方法,还包括:
10.根据权利要求9所述的方法,其中,所述注册的引用参数还包括所述算法功能的性能估计值。
11.根据权利要求1所述的方法,其中,所述功能扩展组件中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,包括:
12.根据权利要求11所述的方法,其中,所述功能扩展组件中还包括分别针对所述多个算法类别的多个调用接口;
13.根据权利要求1所述的方法,其中,所述功能扩展组件部署于目标计算框架中,所述目标应用程序包括所述目标计算框架的外部程序或内部程序。
14.一种针对软件程序的功能扩展装置,所述装置部署于功能扩展组件中,所述功能扩展程序中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,所述装置包括:
15.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-13中任一项的所述的方法。
16.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-13中任一项所述的方法。
...【技术特征摘要】
1.一种针对软件程序的功能扩展方法,所述方法通过功能扩展组件执行,所述功能扩展组件中包括针对第一算法类别的预先注册的多个算法库,所述算法库具有对应的一至多个算法功能,所述算法功能具有对应的一至多个算法库,所述方法包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求1所述的方法,其中,从所述多个算法库中确定出所述目标算法功能的优选算法库,包括:
4.根据权利要求3所述的方法,其中,分别查询所述多个算法库,确定各个算法库对应的算法功能中是否包括所述目标算法功能,若所述算法库对应的算法功能中包括所述目标算法功能,则将所述算法库作为候选算法库,包括:
5.根据权利要求4所述的方法,其中,所述硬件加速部件的类型包括图形处理器gpu、现场可编程门阵列fpga和专用集成电路as i c中的一种或多种。
6.根据权利要求3所述的方法,其中,各个算法库中对于对应的各个算法功能分别标记有性能估计值;
7.根据权利要求3所述的方法,其中,所述从各个候选算法库中确定出优选算法库,包括:
8.根据权利要求1所述的方法,其中,所述多个算法库分别依据第一算法类别的细化类别,和/或,用于加速计算的硬件加速部件类型而构建。
9.根据权利要...
【专利技术属性】
技术研发人员:陆宇飞,
申请(专利权)人:支付宝杭州信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。