CN117493440A - 数据处理方法、装置、计算机设备和计算机可读存储介质 - Google Patents
数据处理方法、装置、计算机设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117493440A CN117493440A CN202311502870.4A CN202311502870A CN117493440A CN 117493440 A CN117493440 A CN 117493440A CN 202311502870 A CN202311502870 A CN 202311502870A CN 117493440 A CN117493440 A CN 117493440A
- Authority
- CN
- China
- Prior art keywords
- time
- data
- log
- log data
- target
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 18
- 238000000034 method Methods 0.000 claims abstract description 70
- 230000008569 process Effects 0.000 claims abstract description 49
- 230000000875 corresponding effect Effects 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 21
- 230000002596 correlated effect Effects 0.000 claims abstract description 3
- 238000004590 computer program Methods 0.000 claims description 16
- 238000013075 data extraction Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 abstract description 17
- 238000010586 diagram Methods 0.000 description 6
- 238000011160 research Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012827 research and development Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- GCKMFJBGXUYNAG-HLXURNFRSA-N Methyltestosterone Chemical compound C1CC2=CC(=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@](C)(O)[C@@]1(C)CC2 GCKMFJBGXUYNAG-HLXURNFRSA-N 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000009193 crawling Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3696—Methods or tools to render software testable
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及计算机技术领域,提供了一种数据处理方法、装置、计算机设备和计算机可读存储介质。所述方法包括:对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为第一记录数据的抓取过程打上时间戳;基于时间戳对应的起始时刻和终止时刻,将第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;获取第二记录数据,并根据起始时刻和终止时刻对应的目标时间段,从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据,作为第三日志数据;针对第二日志数据和所述第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。采用本方法提高了对应用检测数据的处理效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种数据处理方法、装置、计算机设备和计算机可读存储介质。
背景技术
随着计算机技术的发展,人们越来越多地使用移动终端进行各种操作。移动终端中运行有操作系统(例如安卓(Android)操作系统),并安装有不同的应用,人们可以通过使用这些应用来实现不同的功能。但是,当移动终端的硬件资源使用不合理或者耗费过多时,容易出现卡顿问题,导致用户体验变差,这就需要工程师对应用进行检测以找出卡顿原因。
现有技术在对应用检测过程中产生的记录数据进行分析时,抓取工具生成的记录数据和操作系统生成的记录数据,两者的时间一致性较差,研发人员需要手动对照二者的时间节点,费时费力,导致对记录数据的处理效率低下,影响对应用的检测效率。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高记录数据处理效率的数据处理方法、装置、计算机设备和计算机可读存储介质。
本申请实施例提供了一种数据处理方法,所述方法应用于安装有Perfetto工具的电子设备,所述方法包括:
对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为所述第一记录数据的抓取过程打上时间戳,所述第一记录数据中包含第一日志数据;
基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;
获取第二记录数据,并根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,其中,所述第二记录数据为对多个应用检测的过程中由操作系统生成的包含错误报告的日志数据;
针对所述第二日志数据和所述第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
在一个实施例中,所述为所述第一记录数据的抓取过程打上时间戳,包括:
获取所述第一记录数据的抓取过程的起始点和终止点;
在所述Perfetto工具的界面中,为所述起始点生成起始时刻标记,为所述终止点生成终止时刻标记。
在一个实施例中,所述在所述Perfetto工具的界面中,为所述起始点生成起始时刻标记,为所述终止点生成终止时刻标记,包括:
在所述Perfetto工具的界面中,为所述起始点生成采用绝对时间表示的起始时刻标记;
基于所述起始点和所述终止点之间的时间差值,为所述终止点生成采用绝对时间表示的终止时刻标记,其中,所述绝对时间包括北京时间或UTC时间。
在一个实施例中,所述根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,包括:
从所述第二记录数据中提取位于所述目标时间段内的日志数据,作为目标日志数据;
从所述目标日志数据中提取携带有所述目标应用标识信息的日志数据,作为所述第三日志数据,所述标识信息包括所述目标应用的应用包名、进程号和/或线程号。
在一个实施例中,所述基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,包括:
获取所述时间戳记录的所述起始时刻和所述终止时刻;
在获取所述第一日志数据中的多条日志后,将所述多条日志中记录的事件的起始点和终止点分别替换为起始时刻和终止时刻,其中,所述起始时刻和所述终止时刻的精度均为毫秒级。
在一个实施例中,所述方法还包括:
在所述Perfetto工具的界面中,按照时间顺序展示所述关联后的日志数据中的事件。
在一个实施例中,所述事件至少包括关键事件,所述在所述Perfetto工具的界面中,将各个目标应用关联后的日志中所记录的事件按照时间顺序进行展示,包括:
基于所述关联后的日志中包含的所述关键事件的记录数据,在所述Perfetto工具的界面中,展示焦点事件的发生时刻、对应的进程以及发生原因。
本申请实施例提供了一种数据处理装置,所述装置包括:
时间戳模块,用于对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为所述第一记录数据的抓取过程打上时间戳,所述第一记录数据中包含第一日志数据;
时间替换模块,用于基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;
数据提取模块,用于获取第二记录数据,并根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,其中,所述第二记录数据为对多个应用检测的过程中由操作系统生成的包含错误报告的日志数据;
数据关联模块,用于针对所述第二日志数据和所述第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
本申请实施例提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现本申请任意实施例所提供的数据处理方法的步骤。
本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本申请任意实施例所提供的数据处理方法的步骤。
本申请实施例所提供的数据处理方法、装置、计算机设备和计算机可读存储介质,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,通过为第一记录数据的抓取过程打上时间戳,能够基于该时间戳将第一记录数据中的各条日志的相对时间替换为绝对时间,使第一记录数据和第二记录数据中的时间信息表示方式相同;进一步地,本申请实施例能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据作为第三日志数据,进而针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,研发人员无需再手动对照两个日志数据的时间节点,大大提高了对应用检测数据的处理效率,从而便于研发人员利用关联后的日志数据快速定位应用问题,提高了对应用的检测效率。
附图说明
图1为一个实施例中数据处理方法的应用场景图;
图2为一个实施例中步骤101的流程示意图;
图3为一个实施例中步骤1012的流程示意图;
图4为另一个实施例中步骤103的流程示意图;
图5a为在Perfetto工具的界面中展示事件的示意图;
图5b为在Perfetto工具的界面中展示焦点(Focus)事件的示意图;
图6为一个实施例中数据处理装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面先对本申请所涉及的一些术语做一个简要的说明,如下所示:
Android:即安卓,是一种基于Linux内核的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。
Perfetto:Perfetto是Android 10中引入的全新下一代平台级跟踪工具,为Android、Linux等平台提供了一种通用的性能检测和跟踪分析工具集。其核心是引入了一种全新的用户空间到用户空间的跟踪协议,该协议将抓取的数据填充到共享内存缓冲区,可用于获取平台内部的内置数据源(例如logcat)。Perfetto允许通过一个可扩展的配置文件来对数据源抓取进行灵活动态配置,且可以将超长trace数据流记录到文件系统中。
Android Trace:Android Trace是用于应用程序性能追踪的一组API(Application Programming Interface,应用编程接口)和工具。它可以帮助开发者在应用程序中进行简单、轻量级、高效的性能分析和调试。
Focus:Focus通常指的是用户界面中某个视图或控件所拥有的焦点。上述控件是当前接收用户输入事件的控件,也就是说,用户输入的文本或消息都会传输给这个控件。安卓系统通过自动管理视图之间的焦点来简化应用程序的用户界面。
在一个实施例中,如图1所示,提供了一种数据处理方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,如图1所示,该方法包括以下步骤:
步骤101,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为第一记录数据的抓取过程打上时间戳。
在对目标应用进行检测时,例如,检测目标应用运行的流畅度时,通过Perfetto工具可以记录应用运行中每一帧的生成过程,并生成相应的记录数据(即trace数据),记为第一记录数据,该第一记录数据中包含第一日志数据。
发明人发现,现有的Perfetto工具虽然能够以时间轴的方式展示所抓取的数据,但是该数据中的时间信息是以相对时间表示的。并且,Perfetto工具在生成记录数据的过程中只标记某一事件的起始点和结束点,例如,事件A的起始点为0.3s,结束点为0.6s,然而研发人员无法得知该事件发生和结束的具体时间,导致研发人员分析记录数据时出现不便利问题。另外,在对应用进行检测时,例如,对于某个时间段发生的某个事件,该事件被记录在trace数据中,同时被记录在安卓系统产生的错误报告(bugreport)数据中,这就往往需要研发人员基于trace数据和bugreport数据共同进行分析以定位问题原因。然而,trace数据和bugreport数据的时间表示方式并不一致,研发人员需要手动对照二者的时间节点,费时费力。
有鉴于此,本申请实施例创新地利用时间戳概念,为第一记录数据的抓取过程打上时间戳。例如,可以通过为Perfetto工具添加脚本程序的方式,终端运行该脚本程序并响应于第一记录数据抓取过程开始,获取第一当前时刻;响应于第一记录数据抓取过程结束始,获取第二当前时刻,如此便为第一记录数据的抓取过程打上时间戳。上述第一记录数据抓取过程开始的时间点可以记为0.0s。在一种实现方式中,脚本程序可以通过安卓操作系统的内部时间来获取实时时刻,或者,脚本程序可以直接通过授时服务器获取实时时刻,从而获取准确的时刻。
步骤102,基于时间戳对应的起始时刻和终止时刻,将第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据。
本申请实施例的时间戳可以分别用于标记第一记录数据的起始时刻和终止时刻。如前文示例所述,第一日志数据中以相对时间记录有事件的起始点和结束点。基于此,本申请实施例可以将第一日志数据中的各条日志的相对时间替换为绝对时间,例如,时间戳对应的起始时刻为10∶25∶00,日志a中记录的事件A的起始点为3.0s,结束点为6.0s;日志b中记录的事件B的起始点为7.0s,结束点为9.0s,则将相对时间替换为绝对时间后,事件A的起始时刻为10∶25∶03,结束时刻为10∶25∶06;事件B的起始时刻为10∶25∶07,结束时刻为10∶25∶09。
对第一日志数据中的各条日志均进行上述替换操作后,便得到了经时间替换后的数据,记为第二日志数据。
步骤103,获取第二记录数据,并根据起始时刻和终止时刻对应的目标时间段,从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据,作为第三日志数据。
本申请实施例的第二记录数据为对多个应用检测的过程中由安卓操作系统生成的日志数据,该日志数据包括错误报告(bugreport)数据,日志数据中的时间信息是以绝对时间表示的,也即,每条日志数据对应一个具体时刻,同时,每条日志数据还可以对应一个应用的标识。
在一种示例中,假设时间戳对应的起始时刻和终止时刻分别为10∶25∶00和10∶35∶00,如果希望从第二记录数据中获取10∶25∶00至10∶35∶00时间段内应用A的bugreport数据,由于第二记录数据中可能包含多个不同应用的bugreport数据,因此,本申请实施例可以基于应用A的标识,从第二记录数据中提取位于10∶25∶00至10∶35∶00时间段内且含有应用A标识的bugreport数据,并将该bugreport数据作为第三日志数据。
步骤104,针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
可以理解的是,在步骤102中得到了第二日志数据,该第二日志数据中的时间信息已经改变为以绝对时间表示。基于此,本申请实施例针对第二日志数据和第三日志数据中的各条日志,可以将具有相同绝对时间的日志进行关联,从而得到关联后的日志数据。
在一种示例中,第二日志数据中,日志a的起始时间为10∶25∶03;第三日志数据中,日志b起始时间也为10∶25∶03,由于二者起始时间相同,则可以将日志a和日志b进行关联。
本申请实施例所提供的数据处理方法,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,通过为第一记录数据的抓取过程打上时间戳,能够基于该时间戳将第一记录数据中的各条日志的相对时间替换为绝对时间,使第一记录数据和第二记录数据中的时间信息表示方式相同;进一步地,本申请实施例能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据作为第三日志数据,进而针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,研发人员无需再手动对照两个日志数据的时间节点,大大提高了对应用检测数据的处理效率,从而便于研发人员利用关联后的日志数据快速定位应用问题,提高了对应用的检测效率。
在一个实施例中,如图2所示,步骤101具体包括:
步骤1011,获取第一记录数据的抓取过程的起始点和终止点。
在利用Perfetto工具抓取数据的过程中,Perfetto工具会记录抓取过程的起始点,通常标记为0.0s,还会记录抓取过程的终止点,该终止点通常是在起始点基础上增加一个时间段后得到的。例如,假设抓取过程的总耗时为300s,则终止点为300.0s。基于此,终端可以获取第一记录数据的抓取过程的起始点和终止点。
步骤1012,在Perfetto工具的界面中为起始点生成起始时刻标记,为终止点生成终止时刻标记。
容易理解的是,在得到上述起始点和终止点并且获取起始点对应的时刻后,可以进一步确定终止点对应的时刻。在一种示例中,假设抓取过程的总耗时仍为300s,起始点(0.0s)对应的时刻为10∶22∶00,则终止点对应的时刻便为10∶27∶00,从而可以在Perfetto工具的界面中,为0.0s生成10∶22∶00的时刻标记,为300.0s生成10∶22∶00的时刻标记。示例性地,上述时刻标记可以是一个包含上述时刻的提示字段。
通过本申请实施例,能够在Perfetto工具的界面中直接显示第一记录数据的起始时刻标记和终止时刻标记,便于研发人员更直观地查看数据抓取过程的时间。
在一个实施例中,如图3所示,步骤1012具体包括:
步骤10121,在Perfetto工具的界面中,为起始点生成采用绝对时间表示的起始时刻标记。
本申请实施例的绝对时间可以包括北京时间或UTC(协调世界时)时间。例如,当采用北京时间表示时,上述示例中的起始时刻被标记为10∶22∶00,这种时间显示方式便于国内研发人员查看;当采用UTC时间表示时,上述示例中的起始时刻被标记为2∶22∶00,这种时间显示方式由于是世界统一时间,不受时区影响,因而便于国际间的研发人员查看。
步骤10122,基于起始点和终止点之间的时间差值,为终止点生成采用绝对时间表示的终止时刻标记。
示例性地,假设抓取过程的总耗时仍为300s,当采用北京时间表示时,上述示例中的终止时刻标记为10∶27∶00;当采用UTC时间表示时,上述示例中的终止时刻标记为2∶27∶00。
通过本申请实施例,能够在Perfetto工具的界面中直接显示第一记录数据的起始时刻标记和终止时刻标记,并且该时刻标记是通过绝对时间表示的,便于研发人员更直观地查看数据抓取过程的时间。
在一个实施例中,如图4所示,步骤103具体包括:
步骤1031,从第二记录数据中提取位于目标时间段内的日志数据,作为目标日志数据。
可以理解的是,第二记录数据中包括多条日志数据,每条日志数据均记录有事件和事件发生时间。基于此,如果希望从第二记录数据中提取位于目标时间段内的日志数据,则可以通过判断事件发生时间是否位于目标时间段内,便可以确定该日志数据是否为目标日志数据。
示例性地,假设目标时间段为10∶25∶00至10∶27∶00,第二记录数据中包括三条日志数据,分别为日志a、日志b和日志c,其中,日志a记录的事件发生时间为10∶25∶10,日志b记录的事件发生时间为10∶26∶10,日志c记录的事件发生时间为10∶27∶30,由于日志a和日志b记录的事件发生时间位于目标时间段内,因此可以将日志a和日志b确定为目标日志数据。
步骤1032,从目标日志数据中,提取携带有目标应用标识信息的日志数据,作为第三日志数据。
本申请实施例的标识信息包括目标应用的应用包名、进程号和/或线程号,这些标识信息用于确定目标应用。示例性地,仍以上述日志a和日志b为例进行说明,假设目标应用是安卓设置应用,其中,日志a中记录的应用包名为com.andriod.settings(安卓设置包名),日志b中记录的应用包名为com.andriod.mms(安卓消息业务包名),则可以基于上述两个日志中记录的应用包名,确定应用A为目标应用。在确定目标应用A后,便可以从目标日志数据中提取携带有“com.andriod.settings”标识信息的日志数据,作为第三日志数据。
通过本申请实施例,能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据,研发人员无需再手动提取需要的日志数据,大大提高了对应用检测数据的提取效率。
发明人还发现,应用卡顿通常是由于画面的帧率出现波动导致,这种画面波动现象往往是毫秒级的,但是当问题的发生过程达到毫秒级时,研发人员手动定位问题将变得非常困难。有鉴于此,在一个实施例中,上述步骤102具体包括:
步骤A,获取时间戳记录的起始时刻和终止时刻。
步骤B,在获取第一日志数据中的多条日志后,将多条日志中记录的事件的起始点和终止点分别替换为起始时刻和终止时刻,其中,起始时刻和终止时刻的精度均为毫秒级。
由于时间戳记录了第一记录数据的起始时刻和终止时刻,因此在获取第一日志数据中的多条日志后,针对各条日志,可以将该日志中记录的事件的起始点替换为起始时刻,将终止点替换为终止时刻。
示例性地,仍以前述日志a和日志b为例进行说明。时间戳采用毫秒级表示方式,则对应的起始时刻为10∶25∶00∶000。其中,日志a中记录的事件A的起始点为3.100s,结束点为6.200s;日志b中记录的事件B的起始点为7.300s,结束点为9.400s,则替换为绝对时间后,事件A的起始时刻为10∶25∶03∶100,结束时刻为10∶25∶06∶200;事件B的起始时刻为10∶25∶07∶300,结束时刻为10∶25∶09∶400。
通过本申请实施例,能够基于毫秒级表示的时间戳,将第一记录数据中的各条日志的相对时间替换为绝对时间,进而将经时间替换后的绝对时间也采用毫秒级方式表示,从而便于研发人员根据毫秒级的起始时刻和结束时刻精确定位应用问题,尤其有助于研发人员定位应用卡顿问题。
在一个实施例中,本申请实施例的数据处理方法还包括:
在Perfetto工具的界面中,按照时间顺序展示关联后的日志数据中的事件。
如图5a所示,对于目标应用,本申请实施例能够将关联后的日志数据中所记录的事件按照时间顺序进行展示,如此,研发人员能够在同一展示界面中,同时看到目标应用的trace数据中记录的事件和bugreport数据中记录的事件,便于研发人员利通过这种直观的事件查看方式快速定位应用问题,提高了对应用的检测效率。
在一个实施例中,本申请实施例的事件至少包括关键事件,则步骤104包括:
基于关联后的日志中包含的关键事件的记录数据,在Perfetto工具的界面中展示焦点事件的发生时刻、对应的进程以及发生原因。
关键事件通常对系统性能的影响较大,因此需要对关键事件进行着重分析,其中,关键事件可以包括焦点(Focus)事件。本申请实施例可以从关联后的日志中提取包含关键事件的记录数据,例如,提取包含Focus的记录数据。参考图5b,本申请实施例可以在Perfetto工具的界面中,展示Focus的发生时刻、对应的进程以及发生原因,从而便于研发人员利通过这种直观的事件查看方式快速确定关键事件的信息,提高了对应用的检测效率。
在一个实施例中,本申请实施例的数据处理方法还包括:
基于Perfetto工具的界面中按照时间顺序展示的事件,分析目标应用的卡顿原因。
本申请实施例可以通过对按照时间顺序展示的事件进行分析,例如,通过分析事件中各线程名称、线程执行时长等内容,便可以分析得出目标应用的卡顿原因。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种数据处理装置,该装置600包括:时间戳模块601、时间替换模块602、数据提取模块603和数据关联模块604,其中:
时间戳模块,用于对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为第一记录数据的抓取过程打上时间戳,第一记录数据中包含第一日志数据;
时间替换模块,用于基于时间戳对应的起始时刻和终止时刻,将第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;
数据提取模块,用于获取第二记录数据,并根据起始时刻和终止时刻对应的目标时间段,从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据,作为第三日志数据,其中,第二记录数据为对多个应用检测的过程中由操作系统生成的错误报告数据;
数据关联模块,用于针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
在一个实施例中,时间戳模块包括:
获取子模块,用于获取第一记录数据的抓取过程的起始点和终止点;
时刻标记子模块,用于在Perfetto工具的界面中,为起始点生成起始时刻标记,为终止点生成终止时刻标记。
在一个实施例中,时刻标记子模块具体用于:
在Perfetto工具的界面中,为起始点生成采用绝对时间表示的起始时刻标记;
基于起始点和终止点之间的时间差值,为终止点生成采用绝对时间表示的终止时刻标记,其中,绝对时间包括北京时间或UTC时间。
在一个实施例中,数据提取模块具体用于:
从第二记录数据中提取位于目标时间段内的日志数据,作为目标日志数据;
从目标日志数据中提取携带有目标应用标识信息的日志数据,作为第三日志数据,标识信息包括目标应用的应用包名、进程号和/或线程号。
在一个实施例中,时间替换模块具体用于:
获取时间戳记录的起始时刻和终止时刻;
在获取第一日志数据中的多条日志后,将多条日志中记录的事件的起始点和终止点分别替换为起始时刻和终止时刻,其中,起始时刻和终止时刻的精度均为毫秒级。
在一个实施例中,本申请实施例的数据处理装置还包括:
展示模块,用于在Perfetto工具的界面中,按照时间顺序展示关联后的日志数据中的事件。
在一个实施例中,展示模块具体用于:
基于关联后的日志中包含的关键事件的记录数据,在Perfetto工具的界面中,展示焦点事件的发生时刻、对应的进程以及发生原因。
本申请实施例提供的一种数据处理装置,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,时间戳模块为第一记录数据的抓取过程打上时间戳,从而时间替换模块能够基于该时间戳将第一记录数据中的各条日志的相对时间替换为绝对时间,使第一记录数据和第二记录数据中的时间信息表示方式相同;进一步地,数据提取模块能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据作为第三日志数据,数据关联模块能够针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,研发人员无需再手动对照两个日志数据的时间节点,大大提高了对应用检测数据的处理效率,从而便于研发人员利用关联后的日志数据快速定位应用问题,提高了对应用的检测效率。
关于数据处理装置的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储Perfetto工具生成的各个帧的记录数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据处理方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的数据处理装置可以实现为一种计算机程序的形式,计算机程序可在如图7所示的计算机设备上运行。计算机设备的存储器中可存储组成该数据处理装置的各个程序模块,比如,图6所示的时间戳模块、时间替换模块、数据提取模块和数据关联模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的数据处理方法中的步骤。
例如,图7所示的计算机设备可以通过如图6所示的数据处理装置中的时间戳模块执行步骤101。计算机设备可通过时间替换模块执行步骤102。计算机设备可通过时间替换模块执行步骤103。计算机设备可通过数据关联模块执行步骤104。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
本申请实施例所提供的计算机设备,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,通过为第一记录数据的抓取过程打上时间戳,能够基于该时间戳将第一记录数据中的各条日志的相对时间替换为绝对时间,使第一记录数据和第二记录数据中的时间信息表示方式相同;进一步地,本申请实施例能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据作为第三日志数据,进而针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,研发人员无需再手动对照两个日志数据的时间节点,大大提高了对应用检测数据的处理效率,从而便于研发人员利用关联后的日志数据快速定位应用问题,提高了对应用的检测效率。
在一个实施例中,还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本申请实施例所提供的计算机可读存储介质,对于在检测多个应用时由Perfetto工具抓取的第一记录数据,通过为第一记录数据的抓取过程打上时间戳,能够基于该时间戳将第一记录数据中的各条日志的相对时间替换为绝对时间,使第一记录数据和第二记录数据中的时间信息表示方式相同;进一步地,本申请实施例能够从第二记录数据中提取位于目标时间段内且属于目标应用的日志数据作为第三日志数据,进而针对第二日志数据和第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,研发人员无需再手动对照两个日志数据的时间节点,大大提高了对应用检测数据的处理效率,从而便于研发人员利用关联后的日志数据快速定位应用问题,提高了对应用的检测效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,比如静态随机存取存储器(Static Random Access Memory,SRAM)和动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据处理方法,其特征在于,所述方法应用于安装有Perfetto工具的电子设备,所述方法包括:
对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为所述第一记录数据的抓取过程打上时间戳,所述第一记录数据中包含第一日志数据;
基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;
获取第二记录数据,并根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,其中,所述第二记录数据为对多个应用检测的过程中由操作系统生成的包含错误报告的日志数据;
针对所述第二日志数据和所述第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
2.根据权利要求1所述的方法,其特征在于,所述为所述第一记录数据的抓取过程打上时间戳,包括:
获取所述第一记录数据的抓取过程的起始点和终止点;
在所述Perfetto工具的界面中,为所述起始点生成起始时刻标记,为所述终止点生成终止时刻标记。
3.根据权利要求2所述的方法,其特征在于,所述在所述Perfetto工具的界面中,为所述起始点生成起始时刻标记,为所述终止点生成终止时刻标记,包括:
在所述Perfetto工具的界面中,为所述起始点生成采用绝对时间表示的起始时刻标记;
基于所述起始点和所述终止点之间的时间差值,为所述终止点生成采用绝对时间表示的终止时刻标记,其中,所述绝对时间包括北京时间或UTC时间。
4.根据权利要求1所述的方法,其特征在于,所述根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,包括:
从所述第二记录数据中提取位于所述目标时间段内的日志数据,作为目标日志数据;
从所述目标日志数据中提取携带有所述目标应用标识信息的日志数据,作为所述第三日志数据,所述标识信息包括所述目标应用的应用包名、进程号和/或线程号。
5.根据权利要求1所述的方法,其特征在于,所述基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,包括:
获取所述时间戳记录的所述起始时刻和所述终止时刻;
在获取所述第一日志数据中的多条日志后,将所述多条日志中记录的事件的起始点和终止点分别替换为起始时刻和终止时刻,其中,所述起始时刻和所述终止时刻的精度均为毫秒级。
6.根据权利要求1~5任一项所述的方法,其特征在于,所述方法还包括:
在所述Perfetto工具的界面中,按照时间顺序展示所述关联后的日志数据中的事件。
7.根据权利要求6所述的方法,其特征在于,所述事件至少包括关键事件,所述在所述Perfetto工具的界面中,将各个目标应用关联后的日志中所记录的事件按照时间顺序进行展示,包括:
基于所述关联后的日志中包含的所述关键事件的记录数据,在所述Perfetto工具的界面中,展示焦点事件的发生时刻、对应的进程以及发生原因。
8.一种数据处理装置,其特征在于,所述装置包括:
时间戳模块,用于对于在检测多个应用时由Perfetto工具抓取的第一记录数据,为所述第一记录数据的抓取过程打上时间戳,所述第一记录数据中包含第一日志数据;
时间替换模块,用于基于所述时间戳对应的起始时刻和终止时刻,将所述第一日志数据中的各条日志的相对时间替换为绝对时间,得到第二日志数据;
数据提取模块,用于获取第二记录数据,并根据所述起始时刻和所述终止时刻对应的目标时间段,从所述第二记录数据中提取位于所述目标时间段内且属于目标应用的日志数据,作为第三日志数据,其中,所述第二记录数据为对多个应用检测的过程中由操作系统生成的包含错误报告的日志数据;
数据关联模块,用于针对所述第二日志数据和所述第三日志数据中的各条日志,将具有相同绝对时间的日志进行关联,得到关联后的日志数据。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311502870.4A CN117493440A (zh) | 2023-11-13 | 2023-11-13 | 数据处理方法、装置、计算机设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311502870.4A CN117493440A (zh) | 2023-11-13 | 2023-11-13 | 数据处理方法、装置、计算机设备和计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493440A true CN117493440A (zh) | 2024-02-02 |
Family
ID=89667176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311502870.4A Pending CN117493440A (zh) | 2023-11-13 | 2023-11-13 | 数据处理方法、装置、计算机设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493440A (zh) |
-
2023
- 2023-11-13 CN CN202311502870.4A patent/CN117493440A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110399293B (zh) | 系统测试方法、装置、计算机设备和存储介质 | |
CN108804299B (zh) | 应用程序异常处理方法及装置 | |
CN107273280B (zh) | 一种日志处理方法、装置、电子设备和存储介质 | |
CN107957941B (zh) | 移动终端内存泄漏处理方法和装置 | |
CN106649063B (zh) | 用于监测程序运行时耗时数据的方法及系统 | |
CN110290212B (zh) | 服务调用记录方法、装置、计算机设备和存储介质 | |
CN107665233B (zh) | 数据库数据处理方法、装置、计算机设备和存储介质 | |
CN102360328B (zh) | 程序监控装置和程序监控方法 | |
CN112910945A (zh) | 请求链路跟踪方法和业务请求处理方法 | |
US20160283357A1 (en) | Call stack relationship acquiring method and apparatus | |
US9355003B2 (en) | Capturing trace information using annotated trace output | |
CN103577310A (zh) | 记录软件调试日志的方法以及装置 | |
US20090222646A1 (en) | Method and apparatus for detecting processor behavior using instruction trace data | |
CN110795311B (zh) | 一种事件回放的方法及装置 | |
US10528456B2 (en) | Determining idle testing periods | |
CN108965383B (zh) | 文件同步方法、装置、计算机设备和存储介质 | |
CN106713011B (zh) | 一种获取测试数据的方法与系统 | |
CN107357731A (zh) | 进程产生core dump问题的监控、分析和处理方法 | |
US10915510B2 (en) | Method and apparatus of collecting and reporting database application incompatibilities | |
CN110347565B (zh) | 一种应用程序的异常分析方法及装置、电子设备 | |
CN110688245B (zh) | 信息获取方法、装置、存储介质及设备 | |
CN115129573A (zh) | 程序运行的监控方法、装置、电子设备及存储介质 | |
CN113360413A (zh) | 一种代码测试方法及装置 | |
CN110874216A (zh) | 一种完备代码生成方法、装置、设备和存储介质 | |
US20090327995A1 (en) | Annotation-aided code generation in library-based replay |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |