CN116775435A - 一种确定算法耗时的方法、装置、车辆及存储介质 - Google Patents
一种确定算法耗时的方法、装置、车辆及存储介质 Download PDFInfo
- Publication number
- CN116775435A CN116775435A CN202310784808.2A CN202310784808A CN116775435A CN 116775435 A CN116775435 A CN 116775435A CN 202310784808 A CN202310784808 A CN 202310784808A CN 116775435 A CN116775435 A CN 116775435A
- Authority
- CN
- China
- Prior art keywords
- time
- consuming
- target
- algorithm
- determining
- 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
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010586 diagram Methods 0.000 claims abstract description 36
- 230000006870 function Effects 0.000 claims description 66
- 238000004458 analytical method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012216 screening Methods 0.000 claims description 10
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种确定算法耗时的方法、装置、车辆及存储介质。该方法包括:利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。本发明实施例的技术方案,准确的确定出了软件算法的算法耗时,通过耗时示意图可以直观的观测到算法的耗时情况,解决了自动驾驶的软件算法的时间性能不明确的问题。
Description
技术领域
本发明涉及自动驾驶技术领域,尤其涉及一种确定算法耗时的方法、装置、设备及存储介质。
背景技术
随着信息化技术的不断发展,在近几年人工智能技术突飞猛进,高速发展,人们的生活已经越来越离不开人工智能。
自动驾驶将是未来解决交通拥堵的重要枝术,能大大提升生产效率和交通效率。一方面,随着自动驾驶的普及,交通拥堵不再是问题,人们可以接受更长的通勤距离,汽车可以是家和办公室的自然延伸。另一方面,自动驾驶汽车的运行需要配套的交通基础设施支持,利用自动驾驶汽车的传感器可以感知路面障碍,从而实现自动驾驶车辆。
然而,目前却存在对自动驾驶的软件算法的时间性能无法被准确确定的问题,如当出现软件算法变更版本等情况时,算法变动带来的耗时影响也不清楚。
发明内容
本发明提供了一种确定算法耗时的方法、装置、设备及存储介质,以解决软件算法的时间性能无法被准确确定的问题。
第一方面,本发明提供了一种确定算法耗时的方法,包括:
利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
第二方面,本发明提供了一种确定算法耗时的装置,包括:
耗时文件确定模块,用于利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
成员变量确定模块,用于利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
耗时示意图确定模块,用于利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
第三方面,本发明提供了一种车辆,该车辆包括:
至少一个处理器;
以及与至少一个处理器通信连接的存储器;
其中,存储器存储有可被至少一个处理器执行的计算机程序,该计算机程序被至少一个处理器执行,以使至少一个处理器能够执行上述第一方面的确定算法耗时的方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,计算机指令用于使处理器执行时实现上述第一方面的确定算法耗时的方法。
本发明提供的确定算法耗时的方案,利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时,利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时,利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。通过采用上述技术方案,利用时间类确定出了包含算法在不同调用场景中被调用后的算法耗时的初始耗时文件,再利用耗时单例类从初始耗时文件中筛选出目标算法的目标耗时,并生成目标耗时文件,利用该文件即可绘制出目标算法的耗时示意图,其准确的确定出了软件算法的算法耗时,通过耗时示意图可以直观的观测到算法的耗时情况,解决了自动驾驶的软件算法的时间性能不明确的问题。
应当理解,本部分所描述的内容并非旨在标识本发明的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种确定算法耗时的方法的流程图;
图2是根据本发明实施例二提供的一种确定算法耗时的方法的流程图;
图3是根据本发明实施例二提供的一种耗时直方图;
图4是根据本发明实施例二提供的一种耗时折线图;
图5是根据本发明实施例三提供的一种确定算法耗时的装置的结构示意图;
图6是根据本发明实施例四提供的一种车辆的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1为本发明实施例一提供了一种确定算法耗时的方法的流程图,本实施例可适用于确定算法耗时的情况,其可应用于智能驾驶或自动驾驶领域,该方法可以由确定算法耗时的装置来执行,该确定算法耗时的装置可以采用硬件和/或软件的形式实现,该确定算法耗时的装置可配置于车辆中,该车辆可以是两个或多个物理实体构成。
如图1所示,该本发明实施例一提供的一种确定算法耗时的方法,具体包括如下步骤:
S101、利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时。
在本实施例中,算法可以为某段代码,如某个函数代码。可以预先定义至少一个时间类,利用该时间类中的成员变量和成员函数,可以确定算法在不同调用场景下的耗时,并生成初始耗时文件。如,若时间类中的成员变量包括start_time和end_time,其可分别记录算法调用的开始时间和结束时间,成员函数为Start函数和End函数,Start函数将算法在当前调用场景下被调用的时间赋值给start_time,End函数先将该算法在当前调用场景下被结束调用的时间赋值给end_time,然后将end_time与start_time的差值赋值给成员变量elapsed_time,并将end_time赋值给start_time,即可完成对该算法在当前调用场景下被调用的耗时的统计,以此可生成对应的初始耗时文件。其中,类这种数据类型可以理解为,包含成员变量和成员函数的集合,算法的耗时可以理解为,算法被调用后至结束调用的时间,即该算法被调用后处理数据所花费的时间,调用场景可以根据算法被调用后,处理数据的过程中的特征来预先设定,如可根据算法被调用的过程中使用的数据库的不同,来划分调用场景,例如使用了a数据库的算法的应用场景可以为A,使用了b数据库的算法的应用场景可以为B。
S102、利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时。
在本实施例中,单例类可以理解为只允许创建一个对象实例的类。可以预先定义至少一个用于统计耗时的单例类,即耗时单例类。利用该耗时单例类中的成员变量和成员函数,从初始耗时文件中确定目标调用场景下的目标算法的(目标)耗时,并将目标调用场景的名称、目标算法的名称以及目标调用场景下的目标算法的目标耗时,存入该耗时单例类的成员变量中,从而得到目标结果成员变量。该耗时单例类中可以包含维护目标算法名称的成员变量、记录调用场景成员变量和记录筛选结果的成员变量,以及用于筛选目标调用场景的成员函数和筛选目标算法的成员函数。其中,目标算法可以理解为待确定耗时的算法,目标调用场景,可以理解为待确定耗时的算法的调用场景中的指定场景,初始耗时文件中可以包含多个算法分别在不同的调用场景中,被调用后的耗时。
S103、利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
在本实施例中,耗时单例类中还可以包含用于根据目标结果成员变量生成目标耗时文件的成员函数,在得到目标耗时文件后,可以根据该文件中包含的信息,绘制出目标算法在目标调用场景下的耗时情况。其中,目标耗时文件中可以包含目标调用场景的名称、目标算法的名称以及目标调用场景下的目标算法的目标耗时。
本发明实施例提供的确定算法耗时的方法,利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时,利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时,利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。本发明实施例技术方案,利用时间类确定出了包含算法在不同调用场景中被调用后的算法耗时的初始耗时文件,再利用耗时单例类从初始耗时文件中筛选出目标算法的目标耗时,并生成目标耗时文件,利用该文件即可绘制出目标算法的耗时示意图,其准确的确定出了软件算法的算法耗时,通过耗时示意图可以直观的观测到算法的耗时情况,解决了自动驾驶的软件算法的时间性能不明确的问题。
实施例二
图2为本发明实施例二提供的一种确定算法耗时的方法的流程图,本发明实施例的技术方案在上述各可选技术方案的基础上进一步优化,给出了确定算法耗时的具体方式。
可选的,所述利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,包括:将所述初始耗时文件中的信息赋值给所述耗时单例类的初始结果成员变量;接收输入的耗时场景名称和耗时算法名称队列,并利用所述文件加载函数从所述初始结果成员变量中,确定与所述耗时场景名称一致的目标场景名称,其中,所述耗时算法名称队列为耗时算法名称的排序队列;利用所述算法筛选函数从所述目标场景名称对应的目标调用场景下,确定与所述耗时算法名称一致的目标算法名称,并将所述目标算法名称对应的算法确定为目标算法。这样设置的好处在于,通过利用耗时单例类中的成员函数,可以从初始耗时文件中的多个调用中筛选出在目标调用场景,并在目标调用场景关联的多个算法中筛选出目标算法。
可选的,在所述利用时间类确定初始耗时文件之前,还包括:判断耗时统计宏开关是否使能,若使能,则判断类初始化宏是否使能;若是,则确定时间类使能,并判断耗时单例类宏是否使能;若所述耗时单例类宏使能,则确定耗时单例类使能。这样设置的好处在于,通过预先设置宏,实现了将宏放置在待统计算法耗时的程序的前后,即可执行对该算法的耗时的统计工作。
可选的,所述根据所述目标耗时文件绘制耗时示意图,包括:利用预设解析语言解析所述目标耗时文件,得到解析结果,其中,所述解析结果至少包括在预设时间段内的每个所述目标算法的耗时最大值、耗时最小值以及耗时平均值;根据所述解析结果绘制耗时示意图,其中,所述绘制耗时示意图的类型至少包括直方图和折线图。这样设置的好处在于,通过对目标耗时文件进行解析,可以挖掘出目标耗时文件中包含的隐含信息,并将其可视化,便于对比不同算法间的耗时差距,以及便于观测同一算法每次被调用的耗时变化。
如图2所示,本发明实施例二提供的一种确定算法耗时的方法,具体包括如下步骤:
S201、判断耗时统计宏开关是否使能,若使能,则执行步骤202,若未使能,则结束。
具体的,可以预先定义耗时统计宏开关,如可以表示为ENABLE_FUSION_PERF,该宏开关可以用来控制是否开始进行算法的耗时统计工作,若其使能,则表示可以开始进行算法的耗时统计工作。
S202、判断类初始化宏是否使能,若是,则执行步骤203,若否,则重复执行步骤202。
具体的,当耗时统计宏开关使能时,可继续判断类初始化宏(可记作FUSION_PERF_PRELOAD)是否使能,该类初始化宏可以用来控制是否开始执行对时间类和耗时单例的初始化,若其使能,可确定可以开始执行对时间类和耗时单例的初始化。
S203、判断耗时单例类宏是否使能,若是,则执行步骤204,若否,则重复执行步骤203。
具体的,当类初始化宏使能时,可继续判断耗时单例类宏是否使能,耗时单例类宏中可以包含多个宏开关,该耗时单例类宏可以用来控制耗时单例类和时间类中的成员函数是否使能,即耗时单例类和时间类是否可以调用自身的成员函数来处理数据。其中,在具体想统计的算法的程序的前后可分别加上耗时单例类宏,当该算法被调用结束后,即可得到对应的目标耗时文件。
S204、确定耗时单例类使能,并利用时间类确定初始耗时文件。
S205、将初始耗时文件中的信息赋值给耗时单例类的初始结果成员变量。
示例性的,耗时单例类中可以包含初始结果成员变量,记作result,可以先将初始耗时文件中的信息赋值给result。
S206、接收输入的耗时场景名称和耗时算法名称队列,并利用文件加载函数从初始结果成员变量中,确定与耗时场景名称一致的目标场景名称。
其中,耗时算法名称队列为耗时算法名称的排序队列,耗时单例类中包括文件加载函数和算法筛选函数。
示例性的,如上文所述,若文件加载(成员)函数记作LoadJson,则可以在接收软件开发人员等输入的耗时场景名称A和耗时算法名称队列后,将该耗时算法名称队列存入成员变量name_deque(name_deque用于维护算法名称的顺序)中,利用LoadJson函数中的指针遍历result,判断result中是否存在与A相同的场景名称,若存在,则该场景名称即为目标场景名称,若不存在,则可在result中新增场景名称为A的空值。其中,当初始耗时文件为json文件时,当有一个name_deque维护模块名称时,如何嵌套深入访问该json文件是难点,当对json文件访问时,如果一次只指明一个键值,那么返回值就无法再次通过键值去嵌套进入,一次性指明全部键值也不实际,因此通过指针指向json文件,遍历name_deque以及递归指向下一级,即可实现嵌套深入访问该json文件。
S207、利用算法筛选函数从目标场景名称对应的目标调用场景下,确定与耗时算法名称一致的目标算法名称,并将目标算法名称对应的算法确定为目标算法,以及确定目标结果成员变量。
示例性的,如上文所述,若算法筛选函数记作AddJsonItem,则可以利用AddJsonItem函数中的指针遍历目标调用场景下的算法名称,判断result的目标场景名称(即A)对应的算法名称中,是否存在与name_deque中指定位置的耗时算法名称(如name_deque中最后一个耗时算法名称)一致的算法名称,该算法名称即为目标算法名称,该目标算法名称对应的算法即为目标算法。若不存在目标算法名称,则可在result的目标场景名称中,新增算法名称为目标算法名称的空值。其中,上文所述的耗时单例类宏中可以包含,用于控制AddJsonItem函数使能和时间类的Start函数是否使能的宏开关FUSION_PERF_START。
可选的,耗时单例类中还包括耗时信息生成函数;其中,利用耗时单例类和初始耗时文件,确定目标结果成员变量,包括:利用耗时信息生成函数将目标算法对应的目标耗时写入初始结果成员变量中,得到中间结果成员变量;将耗时算法名称队列中与目标算法对应的耗时算法名称删除;若耗时算法名称队列为空,则将中间结果成员变量确定为目标结果成员变量。这样设置的好处在于,通过更新耗时算法名称队列,保证了算法耗时统计工作的准确性和有序性。
具体的,上文所述的耗时单例类宏中还可以包含,用于控制AssignTime函数是否使能的宏开关FUSION_PERF_END。
示例性的,如上文所述,若耗时信息生成函数记作AssignTime,则可以利用AssignTime函数将目标算法对应的目标耗时写入result的elapsed_time变量中,得到中间结果成员变量,并每当写入一个目标耗时后,可将耗时算法名称队列中与该目标耗时对应的目标算法对应的耗时算法名称删除,当耗时算法名称队列为空时,AssignTime函数也会将目标场景名称和目标算法名称写入result中。例如,最终得到的目标结果成员变量可以表示为:
其中,“sub_module_name1”和“sub_module_name2”均为目标算法名称,“sub_module_name1”:{“elapsed_time”:[x4,x5,x6]表示目标算法名称为sub_module_name1的算法被调用过三次,且对应的目标耗时为x4、x5以及x6。
可选的,耗时单例类中还包括耗时信息生成函数;其中,利用耗时单例类和初始耗时文件,确定目标结果成员变量,包括:利用耗时信息生成函数将目标算法对应的目标耗时和目标参数的取值,写入初始结果成员变量中,得到中间结果成员变量,其中,目标参数为影响目标算法的目标耗时的参数;将耗时算法名称队列中与目标算法对应的耗时算法名称删除;若耗时算法名称队列为空,则将中间结果成员变量确定为目标结果成员变量;其中,耗时示意图中包含目标算法的目标耗时与目标参数的取值的对应关系。这样设置的好处在于,通过将目标参数的取值写入目标结果成员变量,可以实现对目标参数与目标算法的目标耗时之间关系的可视化。
示例性的,若目标算法为与障碍物识别相关的算法,则障碍物的数量通常可以影响目标算法的耗时,如障碍物的数量越多,耗时越大,故当目标参数可以为障碍物数量时,可以将障碍物数量的取值也写入初始结果成员变量,即目标结果成员变量也包含障碍物数量,则最终得到的目标结果成员变量可以表示为:
其中,“sub_module_name1”:{“elapsed_time”:[x4,x5,x6]“obj_count”:[y4,y5,y6]表示目标算法名称为sub_module_name1的算法被调用过三次,且对应的目标耗时为x4、x5以及x6,每次被调用对应的障碍物数量为y4、y5以及y6。
S208、利用耗时单例类和目标结果成员变量确定目标耗时文件,并利用预设解析语言解析目标耗时文件,得到解析结果。
其中,解析结果至少包括在预设时间段内的每个目标算法的耗时最大值、耗时最小值以及耗时平均值。
具体的,可以利用耗时单例类中的成员函数将目标结果成员变量保存为目标耗时文件。
示例性的,若目标耗时文件为json文件,可以利用python语言解析目标耗时文件,得到每个目标算法在预设时间段内的耗时最大值、耗时最小值以及耗时平均值,当目标算法的数量为多个时,还可以得到在预设时间段内,耗时最多的目标算法、耗时最小的目标算法以及这多个目标算法的平均耗时
可选的,耗时单例类中还包括文件生成函数;其中,利用耗时单例类和目标结果成员变量确定目标耗时文件,包括:利用文件生成函数将目标结果成员变量,保存为目标耗时文件,并将目标耗时文件保存至本地。这样设置的好处在于,待算法或软件的开发人员等后续对算法进行改进等操作时,保存至本地的目标耗时文件可以为其提供支撑
具体的,若文件生成函数记作SaveJson,则可以利用SaveJson函数将目标结果成员变量保存为目标耗时文件,并存至本地。
S209、根据解析结果绘制耗时示意图。
其中,所述绘制耗时示意图的类型至少包括直方图和折线图。
示例性的,图3为一种耗时直方图,其为某种目标算法的耗时直方图。图4为一种耗时折线图,其为在预设时间段内,另一种目标算法的目标耗时的变化折线,横坐标为预设时间段对应的时间计数。
本发明实施例提供的确定算法耗时的方法,通过预先设置宏,实现了将宏放置在待统计算法耗时的程序的前后,即可执行对该算法的耗时的统计工作,然后通过利用耗时单例类中的成员函数,可以从初始耗时文件中的多个调用中筛选出在目标调用场景,并在目标调用场景关联的多个算法中筛选出目标算法。,再通过对目标耗时文件进行解析,可以挖掘出目标耗时文件中包含的隐含信息,并将其可视化,便于对比不同算法间的耗时差距,以及便于观测同一算法每次被调用的耗时变化。
实施例三
图5为本发明实施例三提供的一种确定算法耗时的装置的结构示意图。如图5所示,该装置包括:耗时文件确定模块301、成员变量确定模块302以及耗时示意图确定模块303,其中:
耗时文件确定模块,用于利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
成员变量确定模块,用于利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
耗时示意图确定模块,用于利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
本发明实施例提供的确定算法耗时的装置,利用时间类确定出了包含算法在不同调用场景中被调用后的算法耗时的初始耗时文件,再利用耗时单例类从初始耗时文件中筛选出目标算法的目标耗时,并生成目标耗时文件,利用该文件即可绘制出目标算法的耗时示意图,其准确的确定出了软件算法的算法耗时,通过耗时示意图可以直观的观测到算法的耗时情况,解决了自动驾驶的软件算法的时间性能不明确的问题。
可选的,所述耗时单例类中包括文件加载函数和算法筛选函数。
可选的,成员变量确定模块包括:
赋值单元,用于将所述初始耗时文件中的信息赋值给所述耗时单例类的初始结果成员变量;
场景名称确定单元,用于接收输入的耗时场景名称和耗时算法名称队列,并利用所述文件加载函数从所述初始结果成员变量中,确定与所述耗时场景名称一致的目标场景名称,其中,所述耗时算法名称队列为耗时算法名称的排序队列;
算法确定单元,用于利用所述算法筛选函数从所述目标场景名称对应的目标调用场景下,确定与所述耗时算法名称一致的目标算法名称,并将所述目标算法名称对应的算法确定为目标算法。
可选的,所述耗时单例类中还包括耗时信息生成函数。
可选的,成员变量确定模块包括:
第一中间结果变量确定单元,用于利用所述耗时信息生成函数将所述目标算法对应的目标耗时写入所述初始结果成员变量中,得到中间结果成员变量;
第一算法名称删除单元,用于将所述耗时算法名称队列中与所述目标算法对应的耗时算法名称删除;
第一目标结果变量确定单元,用于若所述耗时算法名称队列为空,则将所述中间结果成员变量确定为目标结果成员变量。
可选的,所述耗时单例类中还包括耗时信息生成函数。
可选的,成员变量确定模块包括:
第二中间结果变量确定单元,用于利用所述耗时信息生成函数将所述目标算法对应的目标耗时和目标参数的取值,写入所述初始结果成员变量中,得到中间结果成员变量,其中,所述目标参数为影响所述目标算法的目标耗时的参数;
第二算法名称删除单元,用于将所述耗时算法名称队列中与所述目标算法对应的耗时算法名称删除;
第二目标结果变量确定单元,用于若所述耗时算法名称队列为空,则将所述中间结果成员变量确定为目标结果成员变量。
可选的,所述耗时示意图中包含所述目标算法的目标耗时与所述目标参数的取值的对应关系。
可选的,该装置还包括:
第一判断模块,用于在所述利用时间类确定初始耗时文件之前,判断耗时统计宏开关是否使能,若使能,则判断类初始化宏是否使能;
第二判断模块,用于若第一判断模块返回的信息为是,则确定时间类使能,并判断耗时单例类宏是否使能;
使能确定模块,用于若所述耗时单例类宏使能,则确定耗时单例类使能。
可选的,所述耗时单例类中还包括文件生成函数。
可选的,耗时示意图确定模块包括:
文件保存单元,用于利用所述文件生成函数将所述目标结果成员变量,保存为目标耗时文件,并将所述目标耗时文件保存至本地。
可选的,耗时示意图确定模块包括:
解析单元,用于利用预设解析语言解析所述目标耗时文件,得到解析结果,其中,所述解析结果至少包括在预设时间段内的每个所述目标算法的耗时最大值、耗时最小值以及耗时平均值;
示意图确定单元,用于根据所述解析结果绘制耗时示意图,其中,所述绘制耗时示意图的类型至少包括直方图和折线图。
本发明实施例所提供的确定算法耗时的装置可执行本发明任意实施例所提供的确定算法耗时的方法,具备执行方法相应的功能模块和有益效果。
实施例四
图6示出了可以用来实施本发明的实施例的车辆40的结构示意图。车辆中可以包含各种形式的数字计算机,诸如,车机、膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。当该车辆包含车机时,该车机可以用于实现本方法。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,车辆40中包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储车辆40操作所需的各种程序和数据。处理器41、ROM42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。
车辆40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许车辆40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如确定算法耗时的方法。
在一些实施例中,确定算法耗时的方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到车辆40上。当计算机程序加载到RAM43并由处理器41执行时,可以执行上文描述的确定算法耗时的方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行确定算法耗时的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
上述提供的计算机设备可用于执行上述任意实施例提供的确定算法耗时的方法,具备相应的功能和有益效果。
实施例五
在本发明的上下文中,计算机可读存储介质可以是有形的介质,所述计算机可执行指令在由计算机处理器执行时用于执行确定算法耗时的方法,该方法包括:
利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
上述提供的计算机设备可用于执行上述任意实施例提供的确定算法耗时的方法,具备相应的功能和有益效果。
值得注意的是,上述确定算法耗时的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种确定算法耗时的方法,其特征在于,包括:
利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
2.根据权利要求1所述的方法,其特征在于,所述耗时单例类中包括文件加载函数和算法筛选函数;其中,所述利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,包括:
将所述初始耗时文件中的信息赋值给所述耗时单例类的初始结果成员变量;
接收输入的耗时场景名称和耗时算法名称队列,并利用所述文件加载函数从所述初始结果成员变量中,确定与所述耗时场景名称一致的目标场景名称,其中,所述耗时算法名称队列为耗时算法名称的排序队列;
利用所述算法筛选函数从所述目标场景名称对应的目标调用场景下,确定与所述耗时算法名称一致的目标算法名称,并将所述目标算法名称对应的算法确定为目标算法。
3.根据权利要求2所述的方法,其特征在于,所述耗时单例类中还包括耗时信息生成函数;其中,利用耗时单例类和所述初始耗时文件,确定目标结果成员变量,包括:
利用所述耗时信息生成函数将所述目标算法对应的目标耗时写入所述初始结果成员变量中,得到中间结果成员变量;
将所述耗时算法名称队列中与所述目标算法对应的耗时算法名称删除;
若所述耗时算法名称队列为空,则将所述中间结果成员变量确定为目标结果成员变量。
4.根据权利要求2所述的方法,其特征在于,所述耗时单例类中还包括耗时信息生成函数;其中,利用耗时单例类和所述初始耗时文件,确定目标结果成员变量,包括:
利用所述耗时信息生成函数将所述目标算法对应的目标耗时和目标参数的取值,写入所述初始结果成员变量中,得到中间结果成员变量,其中,所述目标参数为影响所述目标算法的目标耗时的参数;
将所述耗时算法名称队列中与所述目标算法对应的耗时算法名称删除;
若所述耗时算法名称队列为空,则将所述中间结果成员变量确定为目标结果成员变量;
其中,所述耗时示意图中包含所述目标算法的目标耗时与所述目标参数的取值的对应关系。
5.根据权利要求1所述的方法,其特征在于,在所述利用时间类确定初始耗时文件之前,还包括:
判断耗时统计宏开关是否使能,若使能,则判断类初始化宏是否使能;
若是,则确定时间类使能,并判断耗时单例类宏是否使能;
若所述耗时单例类宏使能,则确定耗时单例类使能。
6.根据权利要求1所述的方法,其特征在于,所述耗时单例类中还包括文件生成函数;其中,所述利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,包括:
利用所述文件生成函数将所述目标结果成员变量,保存为目标耗时文件,并将所述目标耗时文件保存至本地。
7.根据权利要求1所述的方法,其特征在于,所述根据所述目标耗时文件绘制耗时示意图,包括:
利用预设解析语言解析所述目标耗时文件,得到解析结果,其中,所述解析结果至少包括在预设时间段内的每个所述目标算法的耗时最大值、耗时最小值以及耗时平均值;
根据所述解析结果绘制耗时示意图,其中,所述绘制耗时示意图的类型至少包括直方图和折线图。
8.一种确定算法耗时的装置,其特征在于,包括:
耗时文件确定模块,用于利用时间类确定初始耗时文件,其中,所述初始耗时文件中的信息包括多个调用场景的名称、在所述调用场景下的算法的名称以及所述算法的耗时;
成员变量确定模块,用于利用耗时单例类和所述初始耗时文件,确定目标调用场景下的目标算法,以及确定目标结果成员变量,其中,所述目标结果成员变量包括所述目标算法对应的目标耗时;
耗时示意图确定模块,用于利用所述耗时单例类和所述目标结果成员变量确定目标耗时文件,并根据所述目标耗时文件绘制耗时示意图。
9.一种车辆,其特征在于,所述车辆包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的确定算法耗时的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的确定算法耗时的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310784808.2A CN116775435A (zh) | 2023-06-29 | 2023-06-29 | 一种确定算法耗时的方法、装置、车辆及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310784808.2A CN116775435A (zh) | 2023-06-29 | 2023-06-29 | 一种确定算法耗时的方法、装置、车辆及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775435A true CN116775435A (zh) | 2023-09-19 |
Family
ID=87989276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310784808.2A Pending CN116775435A (zh) | 2023-06-29 | 2023-06-29 | 一种确定算法耗时的方法、装置、车辆及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116775435A (zh) |
-
2023
- 2023-06-29 CN CN202310784808.2A patent/CN116775435A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885762B (zh) | 智能大数据系统、提供智能大数据服务的方法和设备 | |
CN111178380B (zh) | 数据分类方法、装置及电子设备 | |
JP2017228086A (ja) | 機械学習管理プログラム、機械学習管理方法、および機械学習管理装置 | |
CN114580263A (zh) | 基于知识图谱的信息系统故障预测方法及相关设备 | |
CN113052567A (zh) | 基于智慧政企云服务的大数据分析方法及大数据云平台 | |
CN114168318A (zh) | 存储释放模型的训练方法、存储释放方法及设备 | |
CN115309510A (zh) | 虚拟机运行状态的检测方法及装置、设备、存储介质 | |
CN111813517A (zh) | 任务队列的分配方法、装置、计算机设备及介质 | |
CN115563522B (zh) | 交通数据的聚类方法、装置、设备及介质 | |
CN116775435A (zh) | 一种确定算法耗时的方法、装置、车辆及存储介质 | |
CN109992468B (zh) | 一种进程性能分析方法、装置、系统及计算机存储介质 | |
CN114817288A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114564292A (zh) | 一种数据的分布式网格化处理方法、装置、设备及介质 | |
CN112380237A (zh) | 数据库隐患sql的预测方法、装置、终端及存储介质 | |
CN117271098B (zh) | 一种ai模型计算核调度方法、装置、设备及存储介质 | |
CN117610505B (zh) | 一种基于标准模型的数据处理方法及装置 | |
CN118567870B (zh) | 批量数据处理方法、装置、设备及存储介质 | |
CN115756336B (zh) | 基于存储服务系统的数据迁移处理方法、系统及云平台 | |
CN114615144B (zh) | 网络优化方法及系统 | |
CN114969261B (zh) | 基于人工智能的数据查询方法、装置、电子设备及介质 | |
CN116151463A (zh) | 产品开发工时的预测方法和设备 | |
CN113377796A (zh) | 自动更新埋点事件及其字段的方法、装置及存储介质 | |
CN115757036A (zh) | 数据读取方法、装置、存储介质及计算机设备 | |
CN114993331A (zh) | 路线规划方法、电子设备以及存储介质 | |
CN118861079A (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 |