CN117407258A - 初始化进程耗时统计方法、装置、电子设备和存储介质 - Google Patents

初始化进程耗时统计方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN117407258A
CN117407258A CN202311383327.7A CN202311383327A CN117407258A CN 117407258 A CN117407258 A CN 117407258A CN 202311383327 A CN202311383327 A CN 202311383327A CN 117407258 A CN117407258 A CN 117407258A
Authority
CN
China
Prior art keywords
initialization
initialization process
file
node
starting
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
CN202311383327.7A
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.)
Ecarx Hubei Tech Co Ltd
Original Assignee
Ecarx Hubei Tech 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 Ecarx Hubei Tech Co Ltd filed Critical Ecarx Hubei Tech Co Ltd
Priority to CN202311383327.7A priority Critical patent/CN117407258A/zh
Publication of CN117407258A publication Critical patent/CN117407258A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3409Recording 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/3419Recording 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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/3452Performance evaluation by statistical analysis
    • 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
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种初始化进程耗时统计方法、装置、电子设备和存储介质,其中,该方法包括:目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点;获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程;响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点;根据所述节点记录的所述启动耗时确定初始化进程耗时。本发明实施例通过节点持久化存储初始化进程启动过程的启动耗时,可减少系统不稳定对耗时统计的影响,提高了初始化进程耗时统计的准确度,有助于系统故障排查,可增强用户使用体验。

Description

初始化进程耗时统计方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机应用技术领域,尤其涉及一种初始化进程耗时统计方法、装置、电子设备和存储介质。
背景技术
随着互联网技术的发展,车机逐渐智能化,目前,车机开机后在加载完驱动,并执行到Kernel_init_done时会执行Init进程。Init进程为Linux等系统中用户空间的第一个进程,而Android系统基于Linux内核实现,因此,Init进程也是Android系统用户空间的第一个进程,Init进程号可以为1,Init进程负责创建系统中如zygote等关键进程,Init进程负责解析RC启动服务等操作,在Init进程中具有诸多语句,例如,Actions、Conmands、Services、Options和Imports等,Init进程的不同动作耗时的统计较为复杂。现有技术中通过日志记录Init进程的耗时统计,但是由于系统故障或者其他意外导致日志记录无法正常读取的问题存在,因此,目前亟需一种精确统计Init进程动作耗时的方案。
发明内容
本发明提供了一种初始化进程耗时统计方法、装置、电子设备和存储介质,通过节点持久化存储初始化进程启动过程的启动耗时,可减少系统不稳定对耗时统计的影响,提高了初始化进程耗时统计的准确度,有助于系统故障排查,可增强用户使用体验。
根据本发明的一方面,提供了一种初始化进程耗时统计方法,其中,该方法包括:
目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点;
获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程;
响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点;
根据所述节点记录的所述启动耗时确定初始化进程耗时。
根据本发明的另一方面,提供了一种初始化进程耗时统计装置,其中,该装置包括:
节点创建模块,用于目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点;
执行确定模块,用于获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程;
启动记录模块,用于响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点;
耗时统计模块,用于根据所述节点记录的所述启动耗时确定初始化进程耗时。
根据本发明的另一方面,提供了一种电子设备,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的初始化进程耗时统计方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的初始化进程耗时统计方法。
本发明实施例的技术方案,通过在目标系统开机后,控制驱动加载并在该目标系统的进程文件系统内创建一个节点,在目标系统内获取初始化文件,确定初始化文件内的初始化过程,在初始化过程被启动时,将启动耗时记录到节点内,通过节点内保存的启动耗时确定初始化进程耗时,本发明实施例通过节点持久化存储初始化进程启动过程的启动耗时,可减少系统不稳定对耗时统计的影响,提高了初始化进程耗时统计的准确度,有助于系统故障排查,可增强用户使用体验。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例一提供的一种初始化进程耗时统计方法的流程图;
图2是根据本发明实施例二提供的另一种初始化进程耗时统计方法的流程图;
图3是根据本发明实施例三提供的一种解析过程的状态机示例图;
图4是根据本发明实施例三提供的一种触发器实现示例图;
图5是根据本发明实施例四提供的一种初始化进程耗时统计装置的结构示意图;
图6是实现本发明实施例的初始化进程耗时统计方法的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例一
图1是根据本发明实施例一提供的一种初始化进程耗时统计方法的流程图,本实施例可适用于统计初始化进程启动耗时的情况,该方法可以由初始换进程耗时统计装置来执行,该装置可以采用硬件和/或软件的形式实现,该装置可配置于服务器或车机终端中。如图1所示,该方法包括:
步骤110、目标系统开机后加载驱动并在目标系统的进程文件系统内初始化节点。
其中,目标系统可以是可以待进行启动耗时统计的操作系统,目标系统可以是智能终端系统、车机系统或服务器系统等,驱动可以是目标系统与底层硬件设备通信的程序,驱动可以为目标系统提供操作底层硬件的功能。进程文件系统可以是目标系统内配置的文件系统,进程文件系统可以是一个虚拟文件系统,该进程文件系统可以实现目标系统的内核态工具与目标系统的用户态间的通信,进程文件系统内虚拟文件可以提供包括初始化进程等系统进程的相关信息。节点可以是进程文件系统内一个存储节点,该节点可以具体为进程文件系统内一个目录或一个路径。
在本发明实施例中,在目标系统开机后,可以进行驱动加载,可以在驱动加载过程中在进程文件系统内创建一个节点,并对该节点进行初始化,可以理解的是,该节点的初始化过程可以包括但不限于为节点配置读取权限等。
步骤120、获取目标系统的初始化文件,确定初始化文件的初始化过程。
其中,初始化文件可以是目标系统内用于执行初始化进程的文件,初始化文件可以包括但不限于目标系统内不同分区下的初始化目录包括的文件以及初始化资源文件等。初始化过程可以是目标系统的初始化进程启动过程中的执行操作,该初始化过程包括但不限于动作(Action)、服务(Service)等。
在本发明实施例中,可以读取目标系统的初始化文件,对初始化文件进行解析,从而提取初始化文件内的初始化过程,例如,可以创建一个用于解析服务的服务解析器,通过调用该服务解析器在初始化文件内解析服务相关的代码信息作为初始化过程。
步骤130、响应于初始化过程的启动,将初始化过程的启动耗时记录至节点。
其中,启动耗时可以是每个初始化过程启动所耗费的时间,启动耗时可以包括初始化过程的起始时间戳以及结束时间戳之间的时间长度。
在本发明实施例中,在对目标系统进行监测,确定解析到的初始化过程是否被启动执行,在确定初始化执行启动时,可以将该初始化过程对应的启动耗时记录到创建好的节点中,使得用户可以通过访问节点获取到不同初始化过程的启动耗时。
步骤140、根据节点记录的启动耗时确定初始化进程耗时。
在发明实施例中,可以在节点内读取记录的所有初始化过程对应的启动耗时,可以通过对启动耗时的统计确定出初始化进程耗时,例如,可以将各启动耗时之和作为初始化进程耗时。
本发明实施例,通过在目标系统开机后加载驱动加载并在该目标系统的进程文件系统内创建一个节点,在目标系统内获取初始化文件并提取初始化文件内的初始化步骤,在初始化过程被启动时,将启动耗时记录到节点内,通过节点内保存的启动耗时确定初始化进程耗时,本发明实施例通过节点持久化存储初始化进程启动过程的启动耗时,可减少系统不稳定对耗时统计的影响,提高了初始化进程耗时统计的准确度,有助于系统故障排查,可增强用户使用体验。
在一些发明实施例中,获取所述目标系统的初始化文件,包括以下至少之一:
解析目标系统的初始化资源文件作为初始化文件;解析目标系统的系统分区的初始化目录下的文件作为初始化文件;解析目标系统的供应商分区的初始化目录下的文件作为初始化文件;解析目标系统的原始设计制造商分区的初始化目录下的文件作为初始化文件;解析目标系统的产品分区的初始化目录下的文件作为初始化文件。
在本发明实施例中,在目标系统执行初始化进程的过程中可以对一个或多个目标系统的不同位置的初始化文件进行执行,上述初始化文件可以包括目标系统的初始化资源文件、系统分区的初始化目录下的文件、原始设计制造商分区的初始化目录下的文件、产品分区的初始化目录下的文件、供应商分区的初始化目录下的文件中的一种或多种,其中,目标系统的初始化资源文件可以包括目标系统启动时加载服务或执行动作使用的配置文件,系统分区的初始化目录下的文件可以是目标系统的系统本身在启动时加载服务或执行动作使用的配置文件,原始设计制造商分区的初始化目录下的文件可以是目标系统的原始制造商提供的在系统启动时加载服务或执行动作使用的配置文件,包括SOC级别的初始化资源文件,产品分区的初始化目标下的文件可以是目标系统的产品制造商提供的在系统加载服务或执行动作使用的配置文件,而供应商分区的初始化目录下的文件可以是原始设备制造商(Original Equipment Manufacturer,OEM)厂商提供的在系统加载服务或执行动作使用的配置文件,包括OEM厂商的项目配置文件,可以将读取上述文件中的一种或多种作为目标系统的初始化文件。
实施例二
图2是根据本发明实施例二提供的另一种初始化进程耗时统计方法的流程图,本发明实施例是在上述发明实施基础上的具体化,详细对初始化文件内初始化过程的解析过程进行详细描述,参见图2,本发明实施例提供的方法具体包括如下步骤:
步骤210、目标系统开机后加载驱动并在目标系统的进程文件系统内初始化节点。
步骤220、创建服务解析器以及动作解析器作为预设解析器。
在本发明实施例中,在目标系统内可以获取到初始化资源文件、系统分区的初始化目录下的文件、供应商分区的初始化目录下的文件、原始设计制造商分区的初始化目录下的文件以及产品分区的初始化目录下的文件作为初始化文件,可以针对服务以及动作等初始化过程分别创建服务解析器以及动作解析器,例如,可以将服务解析器以及动作解析器分别设置在目标系统内初始化文件中初始化过程的对应位置。
步骤230、逐行提取初始化文件内的文本信息到预设数组。
其中,文本信息可以是包括初始化执行的信息,文本信息可以包括服务对应的执行函数或者动作对应的执行命令等,文本信息可以暂存到预设数组内,可以通过预设数组实现初始化执行的查找。
在本发明实施例中,可以对初始化文件进行逐行扫描,可以将每行提取到的文本信息存储到预设数组,每个预设数组可以存储一组初始化文件的文本信息,预设数组可以存储一行属于初始化文本的文本信息。
步骤240、将预设数组内文本信息分别与服务解析器以及动作解析器的关键字进行匹配。
其中,关键字可以是标识文本信息归属的初始化执行类型的信息,关键字可以包括Service、Action等。
在本发明实施例中,预设解析器可以配置有多种,可以至少包括服务解析器和动作解析器等,可以将预设数组内的文本信息分别与服务解析器和动作解析器的关键字进行比对,在预设数组内文本信息包括服务解析器或动作解析器的关键字时,可以确定该文本信息与服务解析器或动作解析器匹配,否则,确定文本信息与预设解析器不匹配。
步骤250、将匹配服务解析器的文本信息作为初始化过程的服务存放至预设服务集合,或,将匹配动作解析器的文本信息作为初始化过程的动作存放至动作服务集合。
其中,预设服务集合可以是预先配置的用于存储服务的信息集合,而预设动作集合可以是预设配置的用于存储动作的信息集合,预设服务集合以及预设动作集合可以预先创建。
在本发明实施例中,在文本信息匹配服务解析器的关键字时,也即服务解析器的关键字匹配到属于服务的文本信息,可以将该属于服务的文本信息存储到预设服务集合。相应的,在文本信息匹配动作解析器的关键字时,也即动作解析器的关键字匹配到属于动作的文本信息,可以将该属于动作的文本信息存储到预设动作集合。在一些发明实施例中,文本存储到预设服务集合或预设动作集合可以包括文本信息自身存储到预设服务集合或预设动作集合,还可以包括将文本信息在初始化文件中的位置存储到预设服务集合或预设动作集和,该位置可以包括如逻辑地址或物理地址等位置参数,例如,位置可以包括文本信息在初始化文件的执行代码行数。
步骤260、按照预设服务集合或预设动作集合存储的文本信息检测对应的初始化过程的启动。
在本发明实施例中,可以分别提取到预设服务集合或预设动作集合存储的文本信息,可以理解的是,预设服务集合中存储的文本信息可以为初始化过程中的服务,而预设服务集合中存储的文本信息可以为初始化过程中的动作,可以对这些服务或动作进行监测,确定这些服务或动作等初始化过程是否被启动,可以理解的是,监测服务或动作的方式可以包括对服务的启动函数的监测、对动作触发器的监测、对服务或动作等初始化过程位于初始化文件的代码执行行数的监测等。
步骤270、确定初始化过程启动时,将初始化过程的标识信息以及初始化过程的启动耗时写入节点。
其中,标识信息可以是标识初始化过程的信息,标识信息可以具有唯一性,标识信息可以包括服务名、动作名、步骤编号等。
在本发明实施例中,在确定初始化过程监测到被启动时,可以记录该初始化过程的启动时间以及该初始化过程的执行完成的完成时间,可以将启动时间到完成时间的时间长度作为该初始化过程的启动耗时写入预先创建的节点。
步骤280、接收到预设安卓调试桥指令时,统计节点内记录的启动耗时之和作为初始化进程耗时。
其中,预设安卓调试桥(Android Debug Bridge,ADB)指令可以是命令行工具,预设安卓调试桥可以指示目标系统进行操作,可用于上位机与目标系统的通信,可以运行目标系统的命令行,管理目标系统的端口映射,实现上位机与目标系统的文件上传与下载,上位机可以将控制指令传输到目标系统,从而实现上位机对目标系统的调控测试。
在本发明实施例中,可以对预设安卓调试桥指令进行监测,在确定接收到预设安卓调试桥指令时可以提取节点内存储的所有初始化执行对应的启动耗时,可以上述所有启动耗时之和作为启动初始进程的初始化进程耗时。
本发明实施例,通过在目标系统开机后加载驱动,在目标系统的进程文件系统内创建节点并初始化,提取目标系统的初始化文件,创建服务解析器以及动作解析器,逐行提取初始化文件的文本信息,并存储文本信息到预设数组,通过预设解析器的关键字对预设数组内的文本信息进行匹配,将匹配的服务解析器的文本信息作为初始化过程的服务存储到预设服务集合,将匹配动作解析器的文本信息作为初始化过程的动作存储到预设动作集合,将按照预设服务集合或预设动作集合存储的文本信息监测对应的初始化过程的启动,确定启动的初始化过程的启动耗时记录至节点,并在接收到安卓调试桥指令时按照节点内存储的所有启动耗时确定初始化进程耗时。本发明实施例通过预设解析器精确确定初始化文件内的初始化执行,可提高初始化执行监测的准确性,可提高启动耗时的监测效率,实现初始化进程耗时统计,有助于系统故障排查,可增强用户使用体验。
进一步的,在上述发明实施例的基础上,按照预设服务集合或预设动作集合存储的文本信息检测对应的初始化过程的启动,包括以下至少之一:
初始化过程为动作时,在触发添加动作至预设执行队列时,确定初始化过程启动;
初始化过程的为服务时,在触发预设启动方法调用服务时,确定初始化过程启动。
在本发明实施例中,针对初始化执行中的动作或服务可以采取不同的预设触发条件启动,每个动作可以预先配置对应的触发器,可以通过触发器是否被触发确定动作或服务是否被启动,在动作对应的触发器被触发时,也即触发动作添加到预设执行队列时,则可以确定动作被启动。每个服务可以通过对应的预设启动方法启动,可以由触发器检测到服务的预设启动方法被调用时,可以确定服务被启动。
在一些发明实施例中,响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点包括:
确定所述初始化过程启动,判断所述目标系统的系统文件的启动属性值是否配置为预设启动状态;在所述启动属性值配置为所述预设启动状态,将所述初始化过程的启动耗时记录至所述节点。
在本发明实施例中,在初始化过程启动时,可以对目标系统内系统文件的启动属性值进行判断,确定该启动属性值是否被配置为启动状态,在确定启动属性值配置为预设启动状态时,将启动的初始化过程的启动耗时记录到预先配置的节点,若启动属性值未被配置则可以不记录该初始化过程的启动耗时或者,不对初始化过程的启动耗时进行确定。可以理解的是,启动属性值可以配置在目标系统内系统文件的任意位置,可以通过对启动属性值不同的置位方式表示启动状态,从而控制初始进程耗时统计功能的开启或者关闭,示例性的,启动属性值为1时,可以表示启动状态为开启,目标系统开启初始化进程耗时的统计功能,而启动属性值为0时,可以表示启动状态为关闭,目标系统关闭初始化进程耗时的统计功能。
实施例三
在一个示例性的实施方式中,以车机系统的Init进程的启动耗时统计为例,具体包括如下步骤:
S1、车机系统开机后,驱动加载过程中会在/proc/创建一个节点,并给该节点赋予其他用户组的读写权限;
S2、驱动加载Kernel_init_done后,执行run_init_process启动init,在启动init过程中SecondStageMain阶段会调用LoadBootScripts方法加载并解析启动脚本。启动脚本解析过程包括如下:
1)解析init.rc;
2)解析/system/etc/init/目录、vendor/etc/init/、odm/etc/init/以及product/etc/init等;
3)创建ServerParser解析器解析Service服务,该Service服务用于管理和启动native进程;创建ActionParser解析器解析onAction定义的动作;创建ImportParser解析器解析import,该import导入其他资源文件。
4)通过调用Parser::ParserConfig函数来实现解析指定路径的资源文件或者目录下的资源文件,将解析完的所有资源文件的Aciton以及Service各自存放在对应的集合里面。其中,Aciton就是解析器解析的onXXX对应的部分,action可以由command组成,车机系统在开机过程中的执行顺序可以按照ac tion顺序值实现,车机系统触发不同的trigger,就顺序执行该trigger对应的ac tion。而Service也可以是系统一个选项(SECTION),该选项还可以包括Import以及onXXX三种。因此,针对系统不同的SECTION可以采取不同的解析函数,service启动是在一个新的进程中进行的。也就是说init进程会先fork一个进程,然后通过exec家族函数去启动这个service,service是运行在一个新的进程中。其中资源文件的解析过程可以行为单位进行,可以将每一行中检查到的TEXT作为单词输入到args数组,每当一行结束时,对应的ar gs数组以及nargs变量完成初始化,然后进行换行,对资源文件内下一行字母进行解析,可以理解的是,在换行过程中可以对每个TEXT进行识别,判断args数组内存储的一行数据是否存在,若存在则对该行数据进行识别,若不存在则继续获取args数组存储的下一行数据,对一行数据进行识别的过程可以包括:先判断本行中第一词是否为预设关键词配置文本内的关键词,如果如果args数组内第一参数是关键词,那么就会返回关键词的索引index,否则继续判断args数字内后续参数。在确定获取到关键词时可以判断这个关键词是否为mport,on,service等关键字的SECTION,只有import,on,service才是SECTION,只要对识别到为SECTION的args数组使用解析器进行解析。而解析的具体过程可以如图3所示,可以匹配到关键字的args数组内每个字母逐次输入对应的状态机,若输入的字母为字符则继续输入下一字符,直到输入的字符为空格、\r或者\t,将输入的字母集合作为TEXT,也即状态机进入TEXT状态,可以将输入的字母集合记为一个TEXT并将TEXT作为Token返回给Parse_config函数进行处理。同样的,输入的字母为换行/n或者文件结束,可以确定一行字母解析完成,同样将输入的字母集合返回给Parse_config函数进行处理;在输入的字母为EOF,也即End Of File,表示args数组存储的一行字母为文件结束,则可以结束解析过程。
5)启动过程中将对应触发器的action放入队列,触发器执行具有先后顺序,并按照死循环执行触发。例如,ecxcute_one_command就是命令的执行和服务启动,可以将触发器中动作名作为对应动作触发器解析到的action。
6)服务的启动过程中可以调用done_classs_start方法将各个阶段中的服务启动。参见图4,触发器队列中的每个触发器trigger可以逐个出队检测动作数组存储的动作,在触发器被触发时,可以将对应的动作添加到新动作队列,可以由ExecuteCommand方法针对新动作队列中的每个动作按照新动作队列的队列顺序从上到下执行。
步骤S3、在统计Init进程的启动耗时,首先精准统计出service启动的耗时时间,可以在Init进程启动服务中添加记录动作,记录service的记录动作可以通过如下步骤实现:
1)在通过确定上述步骤S2中所有服务的启动位置;
2)通过在启动位置添加RecordBootstate方法,从而将服务的名称传入。该方法的目的可以是一个写操作,用于在开机创建的节点中记录各个写文件的时间点作为启动耗时;
3)可以通过adb命令统计所有资源文件rc中服务启动的时间。
可以通过上述RecordBootstate方法对服务的耗时时间进行统一记录,防止服务的耗时时间被遗漏统计。同样的可以在action执行的地方添加方法,从而记录每个动作启动的时间。
在一些发明实施例中,在统计完成后,为了降低服务和action给系统带来的影响,可以在系统中添加一个属性值ro.record.bootstat,通过设置这个属性值来控制这个整体统计功能的开关。针对这个开关,我们可以直接做在编译系统里面,通过对属性值设置不同的取值来表示系统是开启或关闭统计功能。
步骤S5:通过adb shell cat procbootstat命令得到节点存储的启动耗时,从而确定Init阶段耗时。
实施例四
图5是根据本发明实施例四提供的一种初始化进程耗时统计装置的结构示意图,如图5所示,该装置包括:节点创建模块401、执行确定模块402、启动记录模块403和耗时统计模块404。
节点创建模块401,用于目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点。
执行确定模块402,用于获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程。
启动记录模块403,用于响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点。
耗时统计模块404,用于根据所述节点记录的所述启动耗时确定初始化进程耗时。
本发明实施例,通过节点创建模块在目标系统开机后,控制驱动加载并在该目标系统的进程文件系统内创建一个节点,执行确定模块在目标系统内获取初始化文件,确定初始化文件内的初始化步骤,启动记录模块在初始化过程被启动时,将启动耗时记录到节点内,耗时统计模块通过节点内保存的启动耗时确定初始化进程耗时,本发明实施例通过节点持久化存储初始化进程启动过程的启动耗时,可减少系统不稳定对耗时统计的影响,提高了初始化进程耗时统计的准确度,有助于系统故障排查,可增强用户使用体验。
在一些发明实施例中,执行确定模块402中具体用于以下至少之一:
解析所述目标系统的初始化资源文件作为所述初始化文件;
解析所述目标系统的系统分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的供应商分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的原始设计制造商分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的产品分区的初始化目录下的文件作为所述初始化文件。
在另一些发明实施例中,执行确定模块402中还具体用于:
创建服务解析器以及动作解析器;逐行提取所述初始化文件内的文本信息到预设数组;将所述预设数组内所述文本信息分别与所述服务解析器以及所述动作解析器配置的关键字分别进行匹配;将匹配所述服务解析器的所述文本信息作为所述初始化过程的服务存放至预设服务集合,或,将匹配所述动作解析器的所述文本信息作为所述初始化过程的动作存放至预设动作集合。
在一些发明实施例中,启动记录模块403包括:
启动检测单元,用于按照所述预设服务集合或所述预设动作集合存储的所述文本信息检测对应的所述初始化过程的启动。
节点记录单元,用于确定所述初始化过程启动时,将所述初始化过程的标识信息以及所述初始化过程的所述启动耗时写入所述节点。
在另一些发明实施例中,装置内启动检测单元,具体用于包括:
所述初始化过程为动作时,在触发添加所述动作至预设执行队列时,确定所述初始化过程启动;
所述初始化过程的为服务时,在触发预设启动方法调用所述服务时,确定所述初始化过程启动。
在一些发明实施例中,耗时统计模块404具体用于:接收到预设安卓调试桥指令时,统计所述节点内记录的所述初始化过程的所述启动耗时之和作为所述初始化进程耗时。
在一些发明实施例中,启动记录模块403还用于:确定所述初始化过程启动,判断所述目标系统的系统文件的启动属性值是否配置为启动状态;在所述启动属性值配置为所述启动状态,将所述初始化过程的启动耗时记录至所述节点。
本发明实施例所提供的初始化进程耗时统计装置可执行本发明任意实施例所提供的初始化进程耗时统计方法,具备执行方法相应的功能模块和有益效果。
实施例五
图6是实现本发明实施例的初始化进程耗时统计方法的电子设备的结构示意图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图6所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如初始化进程耗时统计方法。
在一些实施例中,初始化进程耗时统计方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的初始化进程耗时统计方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行初始化进程耗时统计方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种初始化进程耗时统计方法,其特征在于,包括:
目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点;
获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程;
响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点;
根据所述节点记录的所述启动耗时确定初始化进程耗时。
2.根据权利要求1所述方法,其特征在于,所述获取所述目标系统的初始化文件,包括以下至少之一:
解析所述目标系统的初始化资源文件作为所述初始化文件;
解析所述目标系统的系统分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的供应商分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的原始设计制造商分区的初始化目录下的文件作为所述初始化文件;
解析所述目标系统的产品分区的初始化目录下的文件作为所述初始化文件。
3.根据权利要求1或2所述方法,其特征在于,所述确定所述初始化文件的初始化过程,包括:
创建服务解析器以及动作解析器;
逐行提取所述初始化文件内的文本信息到预设数组;
将所述预设数组内所述文本信息分别与所述服务解析器以及所述动作解析器配置的关键字分别进行匹配;
将匹配所述服务解析器的所述文本信息作为所述初始化过程的服务存放至预设服务集合,或,将匹配所述动作解析器的所述文本信息作为所述初始化过程的动作存放至预设动作集合。
4.根据权利要求3所述方法,其特征在于,所述响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点,包括:
按照所述预设服务集合或所述预设动作集合存储的所述文本信息检测对应的所述初始化过程的启动;
确定所述初始化过程启动时,将所述初始化过程的标识信息以及所述初始化过程的所述启动耗时写入所述节点。
5.根据权利要求4所述方法,其特征在于,所述按照所述预设服务集合或所述预设动作集合存储的所述文本信息检测对应的所述初始化过程的启动,包括以下至少之一:
所述初始化过程为动作时,在触发添加所述动作至预设执行队列时,确定所述初始化过程启动;
所述初始化过程的为服务时,在触发预设启动方法调用所述服务时,确定所述初始化过程启动。
6.根据权利要求1所述方法,其特征在于,所述根据所述节点记录的所述启动耗时确定初始化进程耗时,包括:
接收到预设安卓调试桥指令时,统计所述节点内记录的所述初始化过程的所述启动耗时之和作为所述初始化进程耗时。
7.根据权利要求1所述方法,其特征在于,所述响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点包括:
确定所述初始化过程启动,判断所述目标系统的系统文件的启动属性值是否配置为启动状态;
在所述启动属性值配置为所述启动状态,将所述初始化过程的启动耗时记录至所述节点。
8.一种初始化进程耗时统计装置,其特征在于,所述装置包括:
节点创建模块,用于目标系统开机后加载驱动并在所述目标系统的进程文件系统内初始化节点;
执行确定模块,用于获取所述目标系统的初始化文件,确定所述初始化文件的初始化过程;
启动记录模块,用于响应于所述初始化过程的启动,将所述初始化过程的启动耗时记录至所述节点;
耗时统计模块,用于根据所述节点记录的所述启动耗时确定初始化进程耗时。
9.一种电子设备,其特征在于,所述电子设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的初始化进程耗时统计方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-7中任一项所述的初始化进程耗时统计方法。
CN202311383327.7A 2023-10-23 2023-10-23 初始化进程耗时统计方法、装置、电子设备和存储介质 Pending CN117407258A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311383327.7A CN117407258A (zh) 2023-10-23 2023-10-23 初始化进程耗时统计方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311383327.7A CN117407258A (zh) 2023-10-23 2023-10-23 初始化进程耗时统计方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN117407258A true CN117407258A (zh) 2024-01-16

Family

ID=89492151

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311383327.7A Pending CN117407258A (zh) 2023-10-23 2023-10-23 初始化进程耗时统计方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN117407258A (zh)

Similar Documents

Publication Publication Date Title
CN110704304B (zh) 一种应用程序测试方法、装置、存储介质和服务器
CN108427731B (zh) 页面代码的处理方法、装置、终端设备及介质
CN110765026A (zh) 自动化测试方法、装置、存储介质及设备
CN112269697B (zh) 一种设备存储性能测试方法、系统及相关装置
CN112181430B (zh) 代码变更统计方法、装置、电子设备及存储介质
CN116166525A (zh) 一种测试脚本的生成方法及装置
CN115480973A (zh) 一种服务器性能测试方法、装置、介质
CN117724980A (zh) 软件框架性能的测试方法、装置、电子设备和存储介质
CN109446077A (zh) 一种数据库测试方法及装置
CN116702668A (zh) 一种回归测试方法、装置、电子设备和存储介质
CN112181853A (zh) 程序调试方法、装置及系统
CN114201382A (zh) 测试用例生成方法、装置、存储介质和电子设备
CN114816772B (zh) 基于兼容层运行的应用的排错方法、排错系统及计算设备
CN116126719A (zh) 接口测试方法、装置、电子设备及存储介质
CN116009847A (zh) 代码生成方法、装置、电子设备及存储介质
CN116303013A (zh) 源码分析方法、装置、电子设备及存储介质
CN115061921A (zh) 自动测试方法、装置、电子设备及可读存储介质
CN117407258A (zh) 初始化进程耗时统计方法、装置、电子设备和存储介质
CN115269431A (zh) 一种接口测试方法、装置、电子设备及存储介质
CN108984386A (zh) 应用程序搜索的测试方法、装置及存储介质
CN113656378A (zh) 一种服务器管理方法、装置、介质
CN112667498A (zh) 服务器搭建方法、装置、计算机设备和可读存储介质
CN116401113B (zh) 一种异构众核架构加速卡的环境验证方法、装置及介质
CN117573561B (zh) 一种自动化测试系统、方法、电子设备和存储介质
CN116185882A (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