[go: up one dir, main page]

CN108132885A - 数据获取方法、装置及电子设备 - Google Patents

数据获取方法、装置及电子设备 Download PDF

Info

Publication number
CN108132885A
CN108132885A CN201810002755.3A CN201810002755A CN108132885A CN 108132885 A CN108132885 A CN 108132885A CN 201810002755 A CN201810002755 A CN 201810002755A CN 108132885 A CN108132885 A CN 108132885A
Authority
CN
China
Prior art keywords
detected
time
data
running
consuming
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
CN201810002755.3A
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.)
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology 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 Beijing Qihoo Technology Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201810002755.3A priority Critical patent/CN108132885A/zh
Publication of CN108132885A publication Critical patent/CN108132885A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3644Debugging of software by instrumenting at runtime
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/366Debugging of software using diagnostics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明是关于一种数据获取方法、装置及电子设备,属于互联网技术领域。所述方法包括:执行定时任务,检测待检测对象的运行操作是否关闭,运行操作至少为待检测对象在运行中的输入和输出操作;当检测到运行操作未关闭时,确定运行操作的操作耗时;如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,操作数据至少包括待检测对象的起始时间、调用源及缓存尺寸。本发明通过执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作未关闭时,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,以便对操作数据进行性能的分析,无需开发软件自行获取操作数据,节省了大量人力,提高了对软件性能的分析效率及对软件的优化效率。

Description

数据获取方法、装置及电子设备
技术领域
本发明涉及互联网技术领域,特别涉及一种数据获取方法、装置及电子设备。
背景技术
随着互联网技术的飞速发展,越来越多依赖于终端运行的软件应运而生,软件通过在终端上运行为终端的用户提供各种各样的功能及服务。软件中的各个功能均对应不同的线程资源,当软件在终端上运行时,接收用户基于终端下发的各种指令,从而根据用户的各种指令输出不同的信息及数据。软件在运行时,多个与软件相关的I/O(Input/Output,输入/输出)资源均在运行,从而达到为用户提供各种不同功能的目的。由于软件在运行的过程中会存在大量同时运行的I/O资源,且终端的硬件资源有限,为了保证软件在终端中的正常运行,在软件运行的过程中,终端会确定软件中大量I/O资源运行时的性能,进而获取I/O资源在运行过程中产生的信息,并基于I/O资源在运行过程中产生的信息确定软件的I/O性能数据,根据I/O性能数据对软件进行优化,避免由于终端的硬件资源不足导致软件的运行失败。
相关技术中,当获取I/O资源在运行过程中产生的信息时,通常由软件的开发人员对软件进行运行性能测试,得出该软件的性能测试结果,并对该性能测试结果进行分析,获取软件中多个I/O资源的性能数据,从而根据性能数据对软件进行优化。
在实现本发明的过程中,发明人发现相关技术至少存在以下问题:
由于软件的运行过程中涉及到大量I/O资源的运行,使得软件开发人员获取到大量关于I/O资源在运行过程中产生的信息,需要对获取到的全部信息进行性能的分析,浪费了大量的人力,且对软件性能的分析效率及对软件的优化效率较低。
发明内容
为克服相关技术中存在的浪费了大量的人力,且对软件性能的分析效率及对软件的优化效率较低的问题,本发明提供一种数据获取方法、装置及电子设备。
根据本发明实施例的第一方面,提供一种数据获取方法,所述方法包括:
执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
在另一个实施例中,所述执行定时任务,检测待检测对象的运行操作是否关闭之前,所述方法还包括:
获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
在另一个实施例中,所述执行定时任务,检测待检测对象的运行操作是否关闭之后,所述方法还包括:
当检测到所述运行操作关闭时,确定所述运行操作的运行未发生超时,生成并展示运行正常指令。
在另一个实施例中,所述当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时包括:
当检测到所述运行操作未关闭时,获取当前的系统时间;
计算所述系统时间与所述待检测对象运行的起始时间之间的差值,将所述差值作为所述运行操作的操作耗时。
在另一个实施例中,所述如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据包括:
如果所述操作耗时大于所述耗时阀值,则确定所述待检测对象的运行操作为耗时操作;
确定所述耗时操作的指定操作标识,在操作列表中查找与所述指定操作标识对应的指定操作数据;
将所述指定操作数据与所述耗时操作存储至耗时列表,所述耗时列表用于存储耗时操作的操作数据;
在所述操作列表中将所述耗时操作的操作标识和所述耗时操作的操作数据移除。
在另一个实施例中,所述方法还包括:
如果所述操作耗时小于所述耗时阀值,则检测所述待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取所述其他运行操作的操作数据。
根据本发明实施例的第二方面,提供一种数据获取装置,所述装置包括:
执行模块,用于执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
确定模块,用于当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
第一获取模块,用于如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
在另一个实施例中,所述装置还包括:
切入模块,用于获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
第二获取模块,用于执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
存储模块,用于将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
在另一个实施例中,所述装置还包括:
生成模块,用于当检测到所述运行操作关闭时,确定所述运行操作的运行未发生超时,生成并展示运行正常指令。
在另一个实施例中,所述确定模块包括:
获取子模块,用于当检测到所述运行操作未关闭时,获取当前的系统时间;
计算子模块,用于计算所述系统时间与所述待检测对象运行的起始时间之间的差值,将所述差值作为所述运行操作的操作耗时。
在另一个实施例中,所述第一获取模块包括:
确定子模块,用于如果所述操作耗时大于所述耗时阀值,则确定所述待检测对象的运行操作为耗时操作;
查找子模块,用于确定所述耗时操作的指定操作标识,在操作列表中查找与所述指定操作标识对应的指定操作数据;
存储子模块,用于将所述指定操作数据与所述耗时操作存储至耗时列表,所述耗时列表用于存储耗时操作的操作数据;
移除子模块,用于在所述操作列表中将所述耗时操作的操作标识和所述耗时操作的操作数据移除。
在另一个实施例中,所述执行模块,还用于如果所述操作耗时小于所述耗时阀值,则检测所述待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取所述其他运行操作的操作数据。
根据本发明实施例的第三方面,提供一种电子设备,包括上述第二方面所述的数据获取装置。
根据本发明实施例的第四方面,提供一种电子设备,包括:存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述第一方面所述的数据获取方法的操作。
本发明的实施例提供的技术方案可以包括以下有益效果:
通过执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作未关闭时,确定运行操作的操作耗时,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,以便可以获取软件中运行发生异常的运行操作的操作数据,进而对操作数据进行性能的分析,无需开发软件自行获取操作数据,节省了大量人力,提高了对软件性能的分析效率及对软件的优化效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1是根据一示例性实施例示出的一种数据获取方法的流程图;
图2是根据一示例性实施例示出的一种数据获取系统的架构图;
图3是根据一示例性实施例示出的一种数据获取方法的流程图;
图4A是根据一示例性实施例示出的一种数据获取装置的框图;
图4B是根据一示例性实施例示出的一种数据获取装置的框图;
图4C是根据一示例性实施例示出的一种数据获取装置的框图;
图4D是根据一示例性实施例示出的一种数据获取装置的框图;
图4E是根据一示例性实施例示出的一种数据获取装置的框图;
图5是根据一示例性实施例示出的一种数据获取装置500的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据获取方法的流程图,如图1所示,该方法包括以下步骤。
在步骤101中,执行定时任务,检测待检测对象的运行操作是否关闭,运行操作至少为待检测对象在运行中的输入和输出操作。
在步骤102中,当检测到运行操作未关闭时,确定运行操作的操作耗时。
在步骤103中,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,操作数据至少包括待检测对象的起始时间、调用源及缓存尺寸。
本发明实施例提供的方法,通过执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作未关闭时,确定运行操作的操作耗时,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,以便可以获取软件中运行发生异常的运行操作的操作数据,进而对操作数据进行性能的分析,无需开发软件自行获取操作数据,节省了大量人力,提高了对软件性能的分析效率及对软件的优化效率
在另一个实施例中,执行定时任务,检测待检测对象的运行操作是否关闭之前,方法还包括:
获取待检测对象,基于预设切入方式,将待检测对象的代码静态切入待检测软件的软件代码中;
执行待检测对象的运行操作,获取待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为待检测对象的操作数据;
将运行操作的操作标识和操作数据对应存储至操作列表,操作列表用于存储待检测对象中至少一个运行操作的操作数据。
在另一个实施例中,执行定时任务,检测待检测对象的运行操作是否关闭之后,方法还包括:
当检测到运行操作关闭时,确定运行操作的运行未发生超时,生成并展示运行正常指令。
在另一个实施例中,当检测到运行操作未关闭时,确定运行操作的操作耗时包括:
当检测到运行操作未关闭时,获取当前的系统时间;
计算系统时间与待检测对象运行的起始时间之间的差值,将差值作为运行操作的操作耗时。
在另一个实施例中,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据包括:
如果操作耗时大于耗时阀值,则确定待检测对象的运行操作为耗时操作;
确定耗时操作的指定操作标识,在操作列表中查找与指定操作标识对应的指定操作数据;
将指定操作数据与耗时操作存储至耗时列表,耗时列表用于存储耗时操作的操作数据;
在操作列表中将耗时操作的操作标识和耗时操作的操作数据移除。
在另一个实施例中,方法还包括:
如果操作耗时小于耗时阀值,则检测待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取其他运行操作的操作数据。
上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例涉及的信息获取系统的架构进行简单介绍。
参见图2,本发明涉及的数据获取系统的架构中包括终端及服务器。终端可以通过无线或者有线网络与服务器连接,终端可为能够访问服务器的电子设备,该电子设备可以为电脑、智能手机、平板电脑或者其他电子设备,终端在获取到待检测对象的操作数据后,可将操作数据传输至服务器,由服务器根据操作数据确定软件的性能。服务器可以为一个或多个网站服务器,用于接收终端传输的操作数据,并对操作数据进行分析,从而确定终端上运行的软件的性能。本发明实施例中,终端的用户可以通过在服务器上进行注册或安装客户端等手段,来向服务器传输操作数据,本发明实施例对此不进行具体限定。
而对于终端和服务器来说,该终端和服务器上可以分别设置数据库,终端上的数据库用以存储包括待检测对象和操作数据的操作列表及包括耗时操作和操作数据的耗时列表,服务器上的数据库用以存储终端传输的操作数据,并对操作数据进行分析后得到的分析数据,便于后续开发人员对执行信息及分析数据进行归类,从而对服务器的分析进行优化。需要说明的是,为了便于说明,本发明实施例以待检测对象为I/O对象,运行操作为I/O操作为例进行说明,而在实际应用的过程中,待检测对象及运行操作还可为其他类型的对象及其他类型的操作,本发明实施例对此不进行具体限制。
图3是根据一示例性实施例示出的一种数据获取方法的流程图,如图3所示,该方法包括以下步骤。
在步骤301中,获取待检测对象,基于预设切入方式,将待检测对象的代码静态切入待检测软件的软件代码中。
在本发明实施例中,待检测对象用于执行软件中的I/O资源,待检测对象可为I/O对象。发明人认识到,软件中的I/O资源在执行时,由于软件的性能会发生改变,使得I/O资源在执行时产生的操作数据也是不断变化的,因此,可以通过检测I/O资源是否执行,以及I/O资源的执行是否超时来确定是否获取I/O在运行中的操作数据,以便可以根据这些操作数据确定软件在运行中的性能。为了在后续准确检测I/O资源开始执行的起始时间、调用源及缓存尺寸,可以采用静态切入的方式将待检测对象的代码切入待检测软件的软件代码中,并通过执行待检测对象是否执行来确定I/O资源何时开始执行、I/O资源的调用源及I/O的缓存尺寸。其中,在将待检测对象的代码静态切入待检测软件的软件代码中时,可以采用java.io.FileReader(文件读取)、java.io.FileWriter(文件写入)、java.io.FileInputStream(文件输入)、java.io.FileOutputStream(文件输出)等方式,本发明实施例对将待检测对象的代码静态切入待检测软件的软件代码中的方式不进行具体限定。
在步骤302中,执行待检测对象的运行操作,获取待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为待检测对象的操作数据,将运行操作的操作标志和操作数据对应存储至操作列表,运行操作至少为待检测对象在运行中的输入和输出操作,操作列表用于存储待检测对象中至少一个运行操作的操作数据。
在本发明实施例中,在完成将待检测对象切入待检测软件后,待检测对象便可以执行,由于待检测对象在运行中执行I/O资源,因此,在执行I/O资源时会发生运行操作,也即I/O操作,当检测到待检测对象执行时,便可以获取待检测对象在执行运行操作时的操作数据,操作数据可以包括待见对象执行运行操作的起始时间、调用源及缓存尺寸,本发明实施例对操作数据包括的数据内容不进行具体限定。其中,起始时间可用Start Time(起始时间)表示,调用源可用Source(源头)表示,缓存尺寸可用Buffer Size(缓存大小)表示。
在实际应用的过程中,由于需要检测软件的多种运行操作,而每种运行操作均需待检测对象执行产生,因此,为了将大量运行操作在运行的过程中产生的操作数据区分开,避免将多个运行操作的操作数据混淆,当获取到待检测对象在运行操作中的操作数据后,可获取运行操作的操作标识,将操作标识与操作数据对应存储。其中,在将操作标识与操作数据对应存储时,可以生成表1所示的操作列表,本发明实施例对存储操作标识与操作数据的方式不进行具体限定。
表1
在步骤303中,执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作关闭时,执行下述步骤304;当检测到运行操作未关闭时,执行下述步骤305至步骤307。
在本发明实施例中,由于待检测对象执行的运行操作是具有时限的,也即会在固定时长内完成运行操作,如果运行操作在固定时长内并未完成,也即运行操作在固定时长内并未关闭,则便可以确定运行操作发生了超时,便需要对该运行操作的操作数据进行检测,从而判断软件的性能,因此,可设置定时任务,并在运行操作执行后,执行该定时任务,基于该定时任务检测运行操作是否关闭,从而判断运行操作是否超时。其中,在设置定时任务时,可以默认定时任务在运行操作开始执行后的30秒时执行,在实际应用的过程中,可以根据软件运行的实际情况对定时任务执行的时机进行调整,本发明实施例对此不进行具体限定。
当定时任务开始执行后,便会检测各个运行操作是否关闭,当检测到运行操作关闭时,确定该运行操作运行正常且已经完成了运行,这样,便可执行下述步骤304;当检测到运行操作未关闭时,表示运行操作可能已经超时,这样,便可执行下述步骤305至步骤307。由于可以基于操作列表存储运行操作的操作标识和操作数据,因此,在检测各个运行操作是否关闭时,可以按顺序例遍操作列表,当检测到某一运行操作未关闭时,则执行下述步骤305至步骤307,并当完成执行步骤305至步骤307后,继续检测操作列表中的其他运行操作是否关闭。
在步骤304中,当检测到运行操作关闭时,确定待检测对象的运行未发生超时,生成并展示运行正常指令。
在本发明实施例中,当检测到运行操作关闭时,确定运行操作的运行并未发生超时,运行操作的运行是正常的,也即无需对该运行操作进行检测,也无需对该运行操作涉及的软件性能进行改善,这样,生成运行正常指令,将该运行正常指令展示给开发人员即可。其中,在生成运行正常指令时,可以在运行正常指令中携带操作标识及操作数据,以使开发软件在获取运行正常指令时可以获知哪些运行操作在运行过程中是正常的。
在步骤305中,当检测到运行操作未关闭时,获取当前的系统时间,计算系统时间与待检测对象运行的起始时间之间的差值,将差值作为运行操作的操作耗时,如果操作耗时小于耗时阀值,则执行下述步骤306;如果操作耗时大于耗时阀值,则执行下述步骤307。
在本发明实施例中,当检测到运行操作未关闭时,考虑到网络存在延迟等外界因素的影响,需要对运行操作是否超时进行判断,这样,便需要获取运行操作已经运行的操作耗时,并根据操作耗时的时长来判断运行操作是否超时,操作耗时可以用I/O Cost(Input/Output Cost,输入/输出消耗)表示。终端中可以设置耗时阀值,将操作耗时与耗时阀值进行比对来确定运行操作的运行是否超时,耗时阀值可用O_TIMEOUT_INTERVAL表示,可将耗时阀值默认为30秒,且可在后续根据软件的性能及软件的运行环境对耗时阀值进行更改,本发明实施例对耗时阀值的设置方式不进行具体限定。
其中,在计算操作耗时时,可以获取当前的系统时间,计算系统时间与待检测对象运行的起始时间之间的差值,将该差值作为运行操作的操作耗时,系统时间可以用CurrentSystem Time(当前系统时间)表示。如果操作耗时小于耗时阀值,则表示运行操作当前可能未发生超时,可以继续对该运行操作进行监控,并同时检测其他运行操作是否关闭,继续执行上述步骤301至步骤305中的过程,获取其他运行操作的操作数据。在实际应用的过程中,定时任务可以等待运行操作运行,如果检测到运行操作的运行耗时在小于耗时阀值时关闭,确定运行操作的运行是正常的,并没有发生超时现象,也即执行下述步骤306;如果检测到运行操作的运行耗时在大于耗时阀值时关闭或者运行耗时在大于耗时阀值时仍未关闭,则确定运行操作的运行发生超时,也即执行下述步骤307。
在步骤306中,如果操作耗时小于耗时阀值,则检测待检测对象的其他运行操作是否关闭,继续执行上述获取数据获取过程,获取其他运行操作的操作数据。
在本发明实施例中,如果操作耗时小于耗时阀值,则表示当前的运行操作可能并未发生超时,则可以等待当前运行操作继续执行,同时检测待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取其他运行操作的操作数据。
在步骤307中,如果操作耗时大于耗时阀值,则确定待检测对象的运行操作为耗时操作,确定耗时操作的指定操作标识,在操作列表中查找与指定操作标识对应的指定操作数据,将指定操作数据与耗时操作存储至耗时列表,在操作列表中将耗时操作的操作标识和耗时操作的操作数据移除,耗时列表用于存储耗时操作的操作数据。
在本发明实施例中,如果操作耗时大于耗时阀值,则表示待检测对象的当前运行操作已经发生超时,可将当前的运行操作确定为耗时操作,需要对当前运行操作的操作数据进行检测,进而根据操作数据确定软件运行的性能,这样,便需要确定该耗时操作的指定操作标识,确定指定操作标识对应的指定操作数据。其中,由于终端在存储操作标识和操作数据时可以生成操作列表,因此,可以基于指定操作标识在操作列表中进行查询,获取指定操作标识对应的指定操作数据。
当获取到指定操作数据后,为了后续可以对指定操作数据进行分析,可将获取到的指定操作数据与指定操作标识对应存储。在实际应用的过程中,在将指定操作标识与指定操作数据对应存储时,可以生成表2所示的耗时列表。需要说明的是,为了减轻数据库的存储负担,当生成耗时列表后,可将指定操作标识和指定操作数据从操作列表中删除,本发明实施例对存储指定操作标识和指定操作数据的方式不进行具体限定。
表2
本发明实施例提供的方法,通过执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作未关闭时,确定运行操作的操作耗时,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,以便可以获取软件中运行发生异常的运行操作的操作数据,进而对操作数据进行性能的分析,无需开发软件自行获取操作数据,节省了大量人力,提高了对软件性能的分析效率及对软件的优化效率。
图4A是根据一示例性实施例示出的一种数据获取装置的框图。参照图4A,该装置包括执行模块401,确定模块402和第一获取模块403。
该执行模块401,用于执行定时任务,检测待检测对象的运行操作是否关闭,运行操作至少为待检测对象在运行中的输入和输出操作;
该确定模块402,用于当检测到运行操作未关闭时,确定运行操作的操作耗时;
该第一获取模块403,用于如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,操作数据至少包括待检测对象的起始时间、调用源及缓存尺寸。
本发明实施例提供的装置,通过执行定时任务,检测待检测对象的运行操作是否关闭,当检测到运行操作未关闭时,确定运行操作的操作耗时,如果操作耗时大于耗时阀值,则获取待检测对象的操作数据,以便可以获取软件中运行发生异常的运行操作的操作数据,进而对操作数据进行性能的分析,无需开发软件自行获取操作数据,节省了大量人力,提高了对软件性能的分析效率及对软件的优化效率。
在另一个实施例中,参见图4B,该装置还包括切入模块404,第二获取模块405和存储模块406。
该切入模块404,用于获取待检测对象,基于预设切入方式,将待检测对象的代码静态切入待检测软件的软件代码中;
该第二获取模块405,用于执行待检测对象的运行操作,获取待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为待检测对象的操作数据;
该存储模块406,用于将运行操作的操作标识和操作数据对应存储至操作列表,操作列表用于存储待检测对象中至少一个运行操作的操作数据。
在另一个实施例中,参见图4C,该装置还包括生成模块407。
该生成模块407,用于当检测到运行操作关闭时,确定运行操作的运行未发生超时,生成并展示运行正常指令。
在另一个实施例中,参见图4D,该确定模块402,包括获取子模块4021和计算子模块4022。
该获取子模块4021,用于当检测到运行操作未关闭时,获取当前的系统时间;
该计算子模块4022,用于计算系统时间与待检测对象运行的起始时间之间的差值,将差值作为运行操作的操作耗时。
在另一个实施例中,参见图4E,该第一获取模块403,包括确定子模块4031,查找子模块4032,存储子模块4033和移除子模块4034。
该确定子模块4031,用于如果操作耗时大于耗时阀值,则确定待检测对象的运行操作为耗时操作;
该查找子模块4032,用于确定耗时操作的指定操作标识,在操作列表中查找与指定操作标识对应的指定操作数据;
该存储子模块4033,用于将指定操作数据与耗时操作存储至耗时列表,耗时列表用于存储耗时操作的操作数据;
该移除子模块4034,用于在操作列表中将耗时操作的操作标识和耗时操作的操作数据移除。
在另一个实施例中,该执行模块401,还用于如果操作耗时小于耗时阀值,则检测待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取其他运行操作的操作数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图5是根据一示例性实施例示出的一种数据获取装置500的框图。例如,装置500可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图5,装置500可以包括以下一个或多个组件:处理组件502,存储器504,电源组件506,多媒体组件508,音频组件510,I/O(Input/Output,输入/输出)的接口512,传感器组件514,以及通信组件516。
处理组件502通常控制装置500的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件502可以包括一个或多个处理器520来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件502可以包括一个或多个模块,便于处理组件502和其他组件之间的交互。例如,处理组件502可以包括多媒体模块,以方便多媒体组件508和处理组件502之间的交互。
存储器504被配置为存储各种类型的数据以支持在装置500的操作。这些数据的示例包括用于在装置500上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器504可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如SRAM(Static Random Access Memory,静态随机存取存储器),EEPROM(Electrically-Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器),EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器),PROM(Programmable Read-Only Memory,可编程只读存储器),ROM(Read-Only Memory,只读存储器),磁存储器,快闪存储器,磁盘或光盘。
电源组件506为装置500的各种组件提供电力。电源组件506可以包括电源管理系统,一个或多个电源,及其他与为装置500生成、管理和分配电力相关联的组件。
多媒体组件508包括在所述装置500和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括LCD(Liquid Crystal Display,液晶显示器)和TP(TouchPanel,触摸面板)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件508包括一个前置摄像头和/或后置摄像头。当装置500处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件510被配置为输出和/或输入音频信号。例如,音频组件510包括一个MIC(Microphone,麦克风),当装置500处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器504或经由通信组件516发送。在一些实施例中,音频组件510还包括一个扬声器,用于输出音频信号。
I/O接口512为处理组件502和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件514包括一个或多个传感器,用于为装置500提供各个方面的状态评估。例如,传感器组件514可以检测到设备500的打开/关闭状态,组件的相对定位,例如组件为装置500的显示器和小键盘,传感器组件514还可以检测装置500或装置500一个组件的位置改变,用户与装置500接触的存在或不存在,装置500方位或加速/减速和装置500的温度变化。传感器组件514可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件514还可以包括光传感器,如CMOS(Complementary Metal OxideSemiconductor,互补金属氧化物)或CCD(Charge-coupled Device,电荷耦合元件)图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件514还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件516被配置为便于装置500和其他设备之间有线或无线方式的通信。装置500可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件516经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件516还包括NFC(Near Field Communication,近场通信)模块,以促进短程通信。例如,在NFC模块可基于RFID(Radio FrequencyIdentification,射频识别)技术,IrDA(Infra-red Data Association,红外数据协会)技术,UWB(Ultra Wideband,超宽带)技术,BT(Bluetooth,蓝牙)技术和其他技术来实现。
在示例性实施例中,装置500可以被一个或多个ASIC(Application SpecificIntegrated Circuit,应用专用集成电路)、DSP(Digital signal Processor,数字信号处理器)、DSPD(Digital signal Processor Device,数字信号处理设备)、PLD(ProgrammableLogic Device,可编程逻辑器件)、FPGA)(Field Programmable Gate Array,现场可编程门阵列)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述数据获取方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器504,上述指令可由装置500的处理器520执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-Only Memory,光盘只读存储器)、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由数据获取装置的处理器执行时,使得数据获取装置能够执行上述数据获取方法。
A1、一种数据获取方法,其特征在于,所述方法包括:
执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
A2、根据权利要求1所述的方法,其特征在于,所述执行定时任务,检测待检测对象的运行操作是否关闭之前,所述方法还包括:
获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
A3、根据权利要求1所述的方法,其特征在于,所述执行定时任务,检测待检测对象的运行操作是否关闭之后,所述方法还包括:
当检测到所述运行操作关闭时,确定所述运行操作的运行未发生超时,生成并展示运行正常指令。
A4、根据权利要求1所述的方法,其特征在于,所述当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时包括:
当检测到所述运行操作未关闭时,获取当前的系统时间;
计算所述系统时间与所述待检测对象运行的起始时间之间的差值,将所述差值作为所述运行操作的操作耗时。
A5、根据权利要求1所述的方法,其特征在于,所述如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据包括:
如果所述操作耗时大于所述耗时阀值,则确定所述待检测对象的运行操作为耗时操作;
确定所述耗时操作的指定操作标识,在操作列表中查找与所述指定操作标识对应的指定操作数据;
将所述指定操作数据与所述耗时操作存储至耗时列表,所述耗时列表用于存储耗时操作的操作数据;
在所述操作列表中将所述耗时操作的操作标识和所述耗时操作的操作数据移除。
A6、根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述操作耗时小于所述耗时阀值,则检测所述待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取所述其他运行操作的操作数据。
A7、一种数据获取装置,其特征在于,所述装置包括:
执行模块,用于执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
确定模块,用于当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
第一获取模块,用于如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
A8、根据权利要求7所述的装置,其特征在于,所述装置还包括:
切入模块,用于获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
第二获取模块,用于执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
存储模块,用于将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
A9、根据权利要求7所述的装置,其特征在于,所述装置还包括:
生成模块,用于当检测到所述运行操作关闭时,确定所述运行操作的运行未发生超时,生成并展示运行正常指令。
A10、根据权利要求7所述的装置,其特征在于,所述确定模块包括:
获取子模块,用于当检测到所述运行操作未关闭时,获取当前的系统时间;
计算子模块,用于计算所述系统时间与所述待检测对象运行的起始时间之间的差值,将所述差值作为所述运行操作的操作耗时。
A11、根据权利要求7所述的装置,其特征在于,所述第一获取模块包括:
确定子模块,用于如果所述操作耗时大于所述耗时阀值,则确定所述待检测对象的运行操作为耗时操作;
查找子模块,用于确定所述耗时操作的指定操作标识,在操作列表中查找与所述指定操作标识对应的指定操作数据;
存储子模块,用于将所述指定操作数据与所述耗时操作存储至耗时列表,所述耗时列表用于存储耗时操作的操作数据;
移除子模块,用于在所述操作列表中将所述耗时操作的操作标识和所述耗时操作的操作数据移除。
A12、根据权利要求7所述的装置,其特征在于,所述执行模块,还用于如果所述操作耗时小于所述耗时阀值,则检测所述待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取所述其他运行操作的操作数据。
A13、一种电子设备,其特征在于,包括权利要求7-12所述的数据获取装置。
A14、一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1-6所述的数据获取方法的操作。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

Claims (10)

1.一种数据获取方法,其特征在于,所述方法包括:
执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
2.根据权利要求1所述的方法,其特征在于,所述执行定时任务,检测待检测对象的运行操作是否关闭之前,所述方法还包括:
获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
3.根据权利要求1所述的方法,其特征在于,所述执行定时任务,检测待检测对象的运行操作是否关闭之后,所述方法还包括:
当检测到所述运行操作关闭时,确定所述运行操作的运行未发生超时,生成并展示运行正常指令。
4.根据权利要求1所述的方法,其特征在于,所述当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时包括:
当检测到所述运行操作未关闭时,获取当前的系统时间;
计算所述系统时间与所述待检测对象运行的起始时间之间的差值,将所述差值作为所述运行操作的操作耗时。
5.根据权利要求1所述的方法,其特征在于,所述如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据包括:
如果所述操作耗时大于所述耗时阀值,则确定所述待检测对象的运行操作为耗时操作;
确定所述耗时操作的指定操作标识,在操作列表中查找与所述指定操作标识对应的指定操作数据;
将所述指定操作数据与所述耗时操作存储至耗时列表,所述耗时列表用于存储耗时操作的操作数据;
在所述操作列表中将所述耗时操作的操作标识和所述耗时操作的操作数据移除。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
如果所述操作耗时小于所述耗时阀值,则检测所述待检测对象的其他运行操作是否关闭,继续执行上述数据获取过程,获取所述其他运行操作的操作数据。
7.一种数据获取装置,其特征在于,所述装置包括:
执行模块,用于执行定时任务,检测待检测对象的运行操作是否关闭,所述运行操作至少为所述待检测对象在运行中的输入和输出操作;
确定模块,用于当检测到所述运行操作未关闭时,确定所述运行操作的操作耗时;
第一获取模块,用于如果所述操作耗时大于耗时阀值,则获取所述待检测对象的操作数据,所述操作数据至少包括所述待检测对象的起始时间、调用源及缓存尺寸。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
切入模块,用于获取所述待检测对象,基于预设切入方式,将所述待检测对象的代码静态切入待检测软件的软件代码中;
第二获取模块,用于执行所述待检测对象的运行操作,获取所述待检测对象执行运行操作的起始时间、调用源及缓存尺寸作为所述待检测对象的操作数据;
存储模块,用于将所述运行操作的操作标识和所述操作数据对应存储至操作列表,所述操作列表用于存储所述待检测对象中至少一个运行操作的操作数据。
9.一种电子设备,其特征在于,包括权利要求7和8所述的数据获取装置。
10.一种电子设备,其特征在于,包括:存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成权利要求1-6所述的数据获取方法的操作。
CN201810002755.3A 2018-01-02 2018-01-02 数据获取方法、装置及电子设备 Pending CN108132885A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810002755.3A CN108132885A (zh) 2018-01-02 2018-01-02 数据获取方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810002755.3A CN108132885A (zh) 2018-01-02 2018-01-02 数据获取方法、装置及电子设备

Publications (1)

Publication Number Publication Date
CN108132885A true CN108132885A (zh) 2018-06-08

Family

ID=62399493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810002755.3A Pending CN108132885A (zh) 2018-01-02 2018-01-02 数据获取方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN108132885A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750432A (zh) * 2019-10-25 2020-02-04 北京浪潮数据技术有限公司 分布式存储系统的io性能分析方法、系统及相关组件
CN113468036A (zh) * 2021-07-15 2021-10-01 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859261A (zh) * 2010-06-09 2010-10-13 中兴通讯股份有限公司 一种释放内存的控制方法及控制设备
CN102375728A (zh) * 2010-08-13 2012-03-14 宏碁股份有限公司 网络连线控制方法及相关电子装置
CN104268055A (zh) * 2014-09-01 2015-01-07 腾讯科技(深圳)有限公司 一种程序异常的监控方法和装置
US20170329695A1 (en) * 2016-05-11 2017-11-16 Accenture Global Solutions Limited Method and system for improving operational efficiency of a target system
CN107436840A (zh) * 2017-08-01 2017-12-05 北京奇虎科技有限公司 应用程序运行性能分析方法、装置及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859261A (zh) * 2010-06-09 2010-10-13 中兴通讯股份有限公司 一种释放内存的控制方法及控制设备
CN102375728A (zh) * 2010-08-13 2012-03-14 宏碁股份有限公司 网络连线控制方法及相关电子装置
CN104268055A (zh) * 2014-09-01 2015-01-07 腾讯科技(深圳)有限公司 一种程序异常的监控方法和装置
US20170329695A1 (en) * 2016-05-11 2017-11-16 Accenture Global Solutions Limited Method and system for improving operational efficiency of a target system
CN107436840A (zh) * 2017-08-01 2017-12-05 北京奇虎科技有限公司 应用程序运行性能分析方法、装置及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110750432A (zh) * 2019-10-25 2020-02-04 北京浪潮数据技术有限公司 分布式存储系统的io性能分析方法、系统及相关组件
CN110750432B (zh) * 2019-10-25 2022-04-22 北京浪潮数据技术有限公司 分布式存储系统的io性能分析方法、系统及相关组件
CN113468036A (zh) * 2021-07-15 2021-10-01 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端
CN113468036B (zh) * 2021-07-15 2023-11-24 上海晶赞融宣科技有限公司 任务执行耗时分析方法及装置、存储介质、终端

Similar Documents

Publication Publication Date Title
CN106970754B (zh) 截屏处理的方法及装置
JP6072362B2 (ja) アプリケーションプログラムの処理方法、装置、プログラム及び記憶媒体
WO2016188060A1 (zh) 应用程序安装包的处理方法及装置
EP3176709A1 (en) Video categorization method and apparatus, computer program and recording medium
WO2018219170A1 (zh) 控制对焦的方法、计算机设备及计算机可读存储介质
WO2018133387A1 (zh) 指纹识别方法及装置
CN114240882A (zh) 缺陷检测方法及装置、电子设备和存储介质
CN107659717B (zh) 状态检测方法、装置和存储介质
CN107704190B (zh) 手势识别方法、装置、终端及存储介质
CN107368221B (zh) 压力确定方法和装置、指纹识别方法和装置
RU2663709C2 (ru) Способ и устройство для обработки информации
CN106354504B (zh) 消息显示方法及装置
CN106096009A (zh) 消息生成方法及装置
CN111371837A (zh) 功能提示方法、功能提示装置及存储介质
CN108108213A (zh) 指令集执行方法及装置
US10817702B2 (en) Method, terminal, and computer-readable storage medium for processing fingerprint
CN108132885A (zh) 数据获取方法、装置及电子设备
CN112148149B (zh) 触摸屏控制方法、触摸屏控制装置及存储介质
EP3211556A1 (en) Method and device for verifying fingerprint
CN112102009A (zh) 广告展示方法、装置、设备及存储介质
CN112732098B (zh) 一种输入的方法及相关装置
CN114612287A (zh) 图像处理方法、装置及存储介质
CN114416486A (zh) 应用程序的性能监控方法、装置、设备及程序产品
CN108132882A (zh) 信息获取方法、装置及电子设备
CN105912367B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180608

RJ01 Rejection of invention patent application after publication