CN107729207A - 一种应用程序主线程的监控方法及装置 - Google Patents
一种应用程序主线程的监控方法及装置 Download PDFInfo
- Publication number
- CN107729207A CN107729207A CN201710832880.2A CN201710832880A CN107729207A CN 107729207 A CN107729207 A CN 107729207A CN 201710832880 A CN201710832880 A CN 201710832880A CN 107729207 A CN107729207 A CN 107729207A
- Authority
- CN
- China
- Prior art keywords
- main thread
- thread
- specific identifier
- application program
- main
- 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.)
- Granted
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 106
- 238000000034 method Methods 0.000 title claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 24
- 230000008569 process Effects 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000003111 delayed effect Effects 0.000 description 20
- 238000004590 computer program Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004321 preservation Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012163 sequencing technique 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/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及系统应用开发技术领域,特别涉及一种应用程序主线程的监控方法及装置,用以解决现有技术中应用程序主线程的监控方法效率较低的问题。本发明实施例异步监控线程向主线程发送特定标识,以使主线程在接收到特定标识后进行保存;在向主线程发送特定标识后的预设时长到达时,异步监控线程读取主线程最近一次保存的标识信息;若读取到的标识信息对应的标识内容与所述特定标识不同,则确定主线程进入堵塞状态。由于本发明实施例针对每个应用程序为其设置一个异步监控线程,用于监控该应用程序主线程的运行状态,在主线程发生堵塞时能够在较短的时间内检测出来,从而提高对主线程运行状态监控的效率。
Description
技术领域
本发明涉及系统应用开发技术领域,特别涉及一种应用程序主线程的监控方法及装置。
背景技术
随着信息技术的发展,智能终端已经成为人们工作和生活中必不可少的一部分。在智能终端中具有实现各种任务的应用程序,应用程序在启动后,每一个应用程序对应有一个主线程。
应用程序在操作系统中运行并且与用户交互的过程中,经常会由于资源等问题导致操作超时而发生应用程序无响应的问题。在现有技术中,操作系统用于监控应用程序的运行状态,例如,若操作系统检测到应用程序的某个接口超过5s未处理完成,则确定该应用程序的主线程发生堵塞,出现应用程序无响应的问题。由于在终端运行时,操作系统需要执行大量的任务,在某个应用程序的主程序发生堵塞时,操作系统不能在较短时间内检测出来,造成用户操作超时,因此操作系统监控应用程序主线程的方法效率较低。
综上所述,目前监控应用程序主程序的方法效率较低。
发明内容
本发明提供一种应用程序主线程的监控方法及装置,用以解决现有技术中应用程序主线程的监控方法效率较低的问题。
基于上述问题,第一方面,本发明实施例提供一种应用程序主线程的监控方法,包括:
应用程序对应的异步监控线程向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
在向所述主线程发送特定标识后的预设时长到达后,所述异步监控线程读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
若读取到的标识信息对应的标识内容与所述特定标识不同,则所述异步监控线程确定所述主线程进入堵塞状态。
由于本发明实施例异步监控线程通过向主线程发送特定标识,并在预设时长到达后再读取主线程最近一次保存的标识信息,通过判断发送的特定标识与从主线程读取的标识信息对应的标识内容是否一致,来判断主线程是否进入堵塞状态,从而实现对应用程序主线程的监控;由于本发明实施例针对每一个应用程序为其设置一个异步监控线程,并且只用于监控该应用程序的主线程的运行状态,在应用程序主线程发生堵塞时,异步监控线程能够在较短的时间内检测出来,从而提高对主线程运行状态监控的效率。
第二方面,本发明实施例提供一种应用程序主线程的监控装置,包括:
至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元通过调度应用程序对应的异步监控线程执行下列过程:
向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;在向所述主线程发送特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态;其中,所述预设时长为所述主线程处理一个任务所需的最大时长。
第三方面,本发明实施例还提供一种应用程序主线程的监控装置,包括:
发送模块,用于向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
读取模块,用于在向所述主线程发送特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
处理模块,用于若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例应用程序主线程的监控方法的流程图;
图2为本发明实施例应用程序主线程的监控方法的整体流程图;
图3为本发明实施例第一种应用程序主线程的监控装置的结构示意图;
图4为本发明实施例第二种应用程序主线程的监控装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
如图1所示,本发明实施例一种应用程序主线程的监控方法,包括:
步骤101、应用程序对应的异步监控线程向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
步骤102、在向所述主线程发送特定标识后的预设时长到达后,所述异步监控线程读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
步骤103、若读取到的标识信息对应的标识内容与所述特定标识不同,则所述异步监控线程确定所述主线程进入堵塞状态。
本发明实施例为终端的每一个应用程序分配一个对应的异步监控线程。并且在应用程序启动后,该应用程序对应的异步监控线程启动。
终端的每个应用程序对应有一个主线程,且主线程在特定时间点仅能执行一个任务。
其中,异步监控线程通过主线程Looper构造消息队列,以便于异步监控线程能够方便的获取到主线程的信息。
异步监控线程在随应用程序启动后,开始向主线程发送特定标识;可选的,异步监控线程将特定标识置于非延迟消息中,向主线程发送包含特定标识的非延迟消息;
相应的,主线程在接收到非延迟消息后,立即执行该非延迟消息对应的任务;
具体的,主线程在接收到非延迟消息后,将该非延迟消息中的特定标识进行保存。
主线程在对异步监控线程发送的特定标识进行保存时,以标识信息的形式将接收到的特定标识进行保存;其中标识信息对应的标识内容即为接收到的特定标识。
并且,异步监控线程在确定发送特定标识后的预设时长到达后,读取主线程最近一次保存的标识信息。
可选的,异步监控线程根据下列方式确定向所述主线程发送所述特定标识后的预设时长到达:
所述异步监控线程在向所述主线程发送所述特定标识后进入时长为所述预设时长的睡眠状态;所述异步监控线程在所述睡眠状态结束后,确定向所述主线程发送所述特定标识后的预设时长到达。
实施中,异步监控线程在向主线程发送特定标识之后,即刻进入时长为预设时长的睡眠状态;
其中,该预设时长为主线程处理一个任务所需的最大时长;
异步监控线程在进入睡眠状态后不执行任何操作,在等待预设时长之后,该异步监控线程自动醒来进入到可运行状态。
需要说明的是,若主线程在预设时长内没有将任务处理完成,则认为该主线程堵塞;例如,该预设时长可以为5s。在现有技术中,若操作系统确定主线程在5s内没有将一个认为处理完成,则确定主线程堵塞,该主线程对应的应用程序无响应。
异步监控线程在睡眠状态结束后,异步监控线程读取所述主线程最近一次保存的标识信息;若读取到的标识信息对应的标识内容与该异步监控线程最近一次发送的特定标识不同,则异步监控线程确定所述主线程进入堵塞状态;
若读取到的标识信息对应的标识内容与该异步监控线程最近一次发送的特定标识相同,则确定该主线程没有发生堵塞,异步监控线程再次向主线程发送包含特定标识的非延迟消息;其中异步监控线程每次向所述主线程发送的特定标识不同。
本发明实施例的异步监控线程需要间隔一定时长不断的向主线程发送特定标识,且每次发送的特定标识均不相同;并且异步监控线程在每次向主线程发送特定标识之后,均要在预设时长到达后读取主线程最近一次保存的标识信息,并将读取到的标识信息对应的标识内容与最近一次发送给主线程的特定标识进行比较,根据比较结果判断主线成功是否发生堵塞。
需要说明的是,由于主线程处理一个任务需要的最大时长为该预设时长,若超出该预设时长没有处理完成,则认为主线程堵塞;而异步监控线程在向主线程发送特定标识并使主线程保存该特定标识之后,在预设时长到达后,通过判断主线程最近一次保存的标识信息对应的标识内容与异步监控线程最近一次发送的特定标识是否相同,判断主线程是否进入堵塞状态;若不相同,则确定在该预设时长之内,主线程没有完成保存最近一次特定标识的认为,则该主线程发生堵塞。
可选的,在所述异步监控线程向所述主线程发送特定标识之前,所述异步监控线程需要生成向所述主线程发送的特定标识。
由于本发明实施例异步监控线程向主线程发送的特定标识为基于当前时间生成的唯一性标识,因此在向主线程发送特定标识之前,异步监控线程需要生成本次向主线程发送的特定标识。
可选的,本发明实施例异步监控线程根据下列方式生成向主线程发送的特定标识:
方式一、所述异步监控线程将所述应用程序所在的操作系统的当前时刻,作为向所述主线程发送的特定标识。
异步监控线程向主线程发送特定标识之前,读取操作系统的当前时刻,将读取到的当前时刻作为本次发送的特定标识。
具体的,异步监控线程读取操作系统的当前时刻后,将当前时刻作为时间戳添加在非延迟消息中,将携带有时间戳的非延迟消息发送给主线程,通知主线程保存非延迟消息中的时间戳;
相应的,主线程在接收到非延迟消息后,将非延迟消息中的时间戳进行保存,具体可以采用下列方式进行保存:
主线程每接收到异步监控线程发送的一个非延迟消息,将非延迟消息中的时间戳保存在该主线程对应的存储空间中,且所有接收到的时间戳按照接收先后顺序一次保存在该主线程对应的存储空间中;
或者,主线程每接收到异步监控线程发送的一个非延迟消息,使用最近一次接收到的非延迟消息中的时间戳对之前保存的时间戳进行更新,即使用最近一次接收到的时间戳替换之前接收到的时间戳。
方式二、所述异步监控线程将变化的数字作为向所述主线程发送的特定标识。
可选的,异步监控线程将累加的数字作为向主线程发送的特定标识;或者异步监控线程将递减的数字作为向主线程发送的特定标识。
例如,在异步监控线程启动后,异步监控线程第一次向主线程发送特定标识之前,异步监控线程将数字“1”作为第一次向主线程发送的特定标识;若在发送特定标识“1”之后,确定主线程没有堵塞,则异步监控线程第二次向主线程发送特定标识,此时将数字“2”作为第二次向主线程发送的特定标识,以此类推。
在步骤102之后,异步监控线程在确定主线程进入堵塞状态后,所述异步监控线程读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
实施中,异步监控线程通过主线程读取当前状态下应用程序的所有线程的栈信息;由于本发明实施例异步监控线程通过主线程Looper构造消息队列,因此异步监控线程能够通过主线程读取当前状态下应用程序的所有线程的栈信息。
异步监控线程将读取到的当前状态下该应用程序的所有线程的栈信息,通过网络上传至该应用程序对应的服务器地址;
其中,应用程序对应的服务器地址预先存储在该应用程序的配置文件中,异步监控线程从该应用程序的配置文件中获取该应用程序对应的服务器地址。
相比于现有技术中采用操作系统监控应用程序主线程的方法,操作系统在确定主线程发生堵塞,确定应用程序无响应后,只能通知用户关闭该应用程序;该应用程序的开发人员无法获知用户在使用该应用程序的过程中该应用程序的运行状态,在应用程序的主线程发生堵塞后,若开发人员需要获取堵塞发生时应用程序的相关信息,只能从用户终端的操作系统中导出trace(跟踪)文件进行分析,但是在该应用程序上线后,在应用程序的主线程发生堵塞时,用户很难保持堵塞发生时现场状态,因此开发人员通过操作系统获取该应用程序的运行信息的可操作性很差,不利于对应用程序进行完善。
而本发明实施例异步监控线程在确定主线程进入堵塞状态后,通过主线程读取当前状态下应用程序的所有线程的栈信息,异步监控线程将读取到的当前状态下该应用程序的所有线程的栈信息,通过网络上传至该应用程序对应的服务器地址,该应用程序的开发人员很容易获取到用户在使用该应用程序的过程中,该应用程序的主程序发生堵塞时所有线程的栈信息,从而使得开发人员根据获取到的信息对产品进行改善,不断提升用户体验。
如图2所示,本发明实施例应用程序主线程的监控方法的整体流程图。
其中,以异步监控线程向主线程发送的特定标识为操作系统的当前时刻为例进行说明。
步骤201、异步监控线程获取应用程序所在的操作系统的当前时刻,并将获取到的当前时刻作为向主线程发送的特定标识;
步骤202、异步监控线程将获取到的当前时刻作为时间戳添加在非延迟消息中;
步骤203、异步监控线程向主线程发送包含时间戳的非延迟消息,并在发送非延迟消息后进入时长为预设时长的睡眠状态;
步骤204、主线程在接收到非延迟消息后将非延迟消息中的时间戳保存为标识信息;
步骤205、在预设时长到达后,异步监控线程读取主线程最近一次保存的标识信息;
步骤206、异步监控线程判断读取到的标识信息对应的标识内容与向主线程发送的非延迟消息中的时间戳是否相同,若是,执行步骤201,若否,执行步骤207;
步骤207、异步监控线程确定所述主线程进入堵塞状态;
步骤208、异步监控线程读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
基于同一发明构思,本发明实施例中还提供了一种应用程序主线程的监控装置,由于该装置是本发明实施例中的该方法的监控装置,并且该装置解决问题的原理与该方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图3所示,本发明实施例第一种应用程序主线程的监控装置包括:
至少一个处理单元300、以及至少一个存储单元301,其中,所述存储单元301存储有程序代码,当所述程序代码被所述处理单元300执行时,使得所述处理单元300通过调度应用程序对应的异步监控线程执行下列过程:
向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;在向所述主线程发送特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态;其中,所述预设时长为所述主线程处理一个任务所需的最大时长。
可选的,所述处理单元300还用于:
在确定所述主线程进入堵塞状态之后,读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
可选的,所述处理单元300具体用于:
在向所述主线程发送所述特定标识后所述异步监控线程进入时长为所述预设时长的睡眠状态;在所述睡眠状态结束后,确定向所述主线程发送所述特定标识后的预设时长到达。
可选的,所述处理单元300还用于:
在每次向所述主线程发送特定标识之前,生成向所述主线程发送的特定标识。
可选的,所述处理单元300具体用于:
根据下列方式生成向所述主线程发送的特定标识:
将所述应用程序所在的操作系统的当前时刻,作为向所述主线程发送的特定标识。
如图4所示,本发明实施例第二种应用程序主线程的监控装置包括:
发送模块401,用于向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
读取模块402,用于在向所述主线程发送特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
处理模块403、若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态。
可选的,所述处理模块403还用于:
在确定所述主线程进入堵塞状态之后,读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
可选的,所述读取模块402具体用于:
在向所述主线程发送所述特定标识后所述异步监控线程进入时长为所述预设时长的睡眠状态;在所述睡眠状态结束后,确定向所述主线程发送所述特定标识后的预设时长到达。
可选的,所述发送模块401还用于:
在每次向所述主线程发送特定标识之前,生成向所述主线程发送的特定标识。
可选的,所述发送模块401具体用于:
根据下列方式生成向所述主线程发送的特定标识:
将所述应用程序所在的操作系统的当前时刻,作为向所述主线程发送的特定标识。
以上参照示出根据本申请实施例的方法、装置(系统)和/或计算机程序产品的框图和/或流程图描述本申请。应理解,可以通过计算机程序指令来实现框图和/或流程图示图的一个块以及框图和/或流程图示图的块的组合。可以将这些计算机程序指令提供给通用计算机、专用计算机的处理器和/或其它可编程数据处理装置,以产生机器,使得经由计算机处理器和/或其它可编程数据处理装置执行的指令创建用于实现框图和/或流程图块中所指定的功能/动作的方法。
相应地,还可以用硬件和/或软件(包括固件、驻留软件、微码等)来实施本申请。更进一步地,本申请可以采取计算机可使用或计算机可读存储介质上的计算机程序产品的形式,其具有在介质中实现的计算机可使用或计算机可读程序代码,以由指令执行系统来使用或结合指令执行系统而使用。在本申请上下文中,计算机可使用或计算机可读介质可以是任意介质,其可以包含、存储、通信、传输、或传送程序,以由指令执行系统、装置或设备使用,或结合指令执行系统、装置或设备使用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种应用程序主线程的监控方法,其特征在于,该方法包括:
应用程序对应的异步监控线程向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
在向所述主线程发送所述特定标识后的预设时长到达后,所述异步监控线程读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
若读取到的标识信息对应的标识内容与所述特定标识不同,则所述异步监控线程确定所述主线程进入堵塞状态。
2.如权利要求1所述的方法,其特征在于,在异步监控线程确定所述主线程进入堵塞状态之后,还包括:
所述异步监控线程读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
3.如权利要求1所述的方法,其特征在于,所述异步监控线程根据下列方式确定向所述主线程发送所述特定标识后的预设时长到达:
所述异步监控线程在向所述主线程发送所述特定标识后进入时长为所述预设时长的睡眠状态;
所述异步监控线程在所述睡眠状态结束后,确定向所述主线程发送所述特定标识后的预设时长到达。
4.如权利要求1~3任一所述的方法,其特征在于,在所述异步监控线程向所述主线程发送特定标识之前,还包括:
所述异步监控线程生成向所述主线程发送的特定标识。
5.如权利要求4所述的方法,其特征在于,所述异步监控线程根据下列方式生成向所述主线程发送的特定标识:
所述异步监控线程将所述应用程序所在的操作系统的当前时刻,作为向所述主线程发送的特定标识。
6.一种应用程序主线程的监控装置,其特征在于,该装置包括:
至少一个处理单元、以及至少一个存储单元,其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元通过调度应用程序对应的异步监控线程执行下列过程:
向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;在向所述主线程发送所述特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态;其中,所述预设时长为所述主线程处理一个任务所需的最大时长。
7.如权利要求6所述的装置,其特征在于,所述处理单元还用于:
在确定所述主线程进入堵塞状态之后,读取当前状态下所述应用程序的所有线程的栈信息,并将读取到的所述应用程序的所有线程的栈信息上报给所述应用程序对应的服务器。
8.如权利要求6所述的装置,其特征在于,所述处理单元具体用于:
在向所述主线程发送所述特定标识后所述异步监控线程进入时长为所述预设时长的睡眠状态;在所述睡眠状态结束后,确定向所述主线程发送所述特定标识后的预设时长到达。
9.如权利要求6~8任一所述的装置,其特征在于,所述处理单元具体用于:
根据下列方式生成向所述主线程发送的特定标识:
将所述应用程序所在的操作系统的当前时刻,作为向所述主线程发送的特定标识。
10.一种应用程序主线程的监控装置,其特征在于,该装置包括:
发送模块,用于向所述应用程序的主线程发送特定标识,以使所述主线程在接收到所述特定标识后进行保存;其中,所述特定标识为基于当前时间生成的唯一性标识;
读取模块,用于在向所述主线程发送所述特定标识后的预设时长到达后,读取所述主线程最近一次保存的标识信息;其中,所述预设时长为所述主线程处理一个任务所需的最大时长;
处理模块,用于若读取到的标识信息对应的标识内容与所述特定标识不同,则确定所述主线程进入堵塞状态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710832880.2A CN107729207B (zh) | 2017-09-15 | 2017-09-15 | 一种应用程序主线程的监控方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710832880.2A CN107729207B (zh) | 2017-09-15 | 2017-09-15 | 一种应用程序主线程的监控方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107729207A true CN107729207A (zh) | 2018-02-23 |
CN107729207B CN107729207B (zh) | 2021-01-01 |
Family
ID=61206346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710832880.2A Active CN107729207B (zh) | 2017-09-15 | 2017-09-15 | 一种应用程序主线程的监控方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107729207B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188016A (zh) * | 2019-05-24 | 2019-08-30 | 努比亚技术有限公司 | 应用程序无响应阻塞的检测方法、终端以及存储介质 |
CN111782410A (zh) * | 2020-06-30 | 2020-10-16 | 北京字节跳动网络技术有限公司 | 锁堵塞的监控方法、装置、电子设备及计算机可读介质 |
CN113297052A (zh) * | 2020-02-21 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 应用程序的卡顿事件定位方法、装置、存储介质和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330955A (ja) * | 1999-05-21 | 2000-11-30 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステムおよびマルチプロセッサシステム初期化方法 |
WO2013100748A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Watchdogable register-based i/o |
CN104253860A (zh) * | 2014-09-11 | 2014-12-31 | 武汉噢易云计算有限公司 | 一种基于共享存储消息队列的虚拟机高可用实现方法 |
CN104298570A (zh) * | 2014-11-14 | 2015-01-21 | 北京国双科技有限公司 | 数据处理方法和装置 |
-
2017
- 2017-09-15 CN CN201710832880.2A patent/CN107729207B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330955A (ja) * | 1999-05-21 | 2000-11-30 | Matsushita Electric Ind Co Ltd | マルチプロセッサシステムおよびマルチプロセッサシステム初期化方法 |
WO2013100748A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Watchdogable register-based i/o |
CN104253860A (zh) * | 2014-09-11 | 2014-12-31 | 武汉噢易云计算有限公司 | 一种基于共享存储消息队列的虚拟机高可用实现方法 |
CN104298570A (zh) * | 2014-11-14 | 2015-01-21 | 北京国双科技有限公司 | 数据处理方法和装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110188016A (zh) * | 2019-05-24 | 2019-08-30 | 努比亚技术有限公司 | 应用程序无响应阻塞的检测方法、终端以及存储介质 |
CN110188016B (zh) * | 2019-05-24 | 2022-11-01 | 山东多科科技有限公司 | 应用程序无响应阻塞的检测方法、终端以及存储介质 |
CN113297052A (zh) * | 2020-02-21 | 2021-08-24 | 腾讯科技(深圳)有限公司 | 应用程序的卡顿事件定位方法、装置、存储介质和设备 |
CN113297052B (zh) * | 2020-02-21 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 应用程序的卡顿事件定位方法、装置、存储介质和设备 |
CN111782410A (zh) * | 2020-06-30 | 2020-10-16 | 北京字节跳动网络技术有限公司 | 锁堵塞的监控方法、装置、电子设备及计算机可读介质 |
CN111782410B (zh) * | 2020-06-30 | 2023-06-27 | 抖音视界有限公司 | 锁堵塞的监控方法、装置、电子设备及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107729207B (zh) | 2021-01-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10298469B2 (en) | Automatic asynchronous handoff identification | |
CN106557407B (zh) | 一种设备负载的监控方法和装置 | |
CN111274510A (zh) | 页面渲染方法、装置、设备及可读存储介质 | |
CN106445292B (zh) | 应用程序的分身管理方法及系统 | |
CN111343424B (zh) | 在线评标的监控系统及方法 | |
CN104092555B (zh) | 一种更新参数值的方法、装置和系统 | |
CN107729207A (zh) | 一种应用程序主线程的监控方法及装置 | |
CN109739690B (zh) | 备份方法及相关产品 | |
US9311598B1 (en) | Automatic capture of detailed analysis information for web application outliers with very low overhead | |
CN110908864B (zh) | 一种设备卡顿的处理方法、装置、设备和介质 | |
CN107168853A (zh) | 一种服务器性能信息获取方法、系统和基板控制管理器 | |
CN108768763A (zh) | 心跳信息发送方法及装置 | |
CN106921518A (zh) | 监控视图展示方法及装置 | |
CN104915252B (zh) | 一种进程端口管理装置及方法 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN106604363B (zh) | 一种无线保真Wi-Fi扫描方法、移动终端及存储介质 | |
CN107612755A (zh) | 一种云资源的管理方法及其装置 | |
CN110275785B (zh) | 数据处理方法、装置、客户端和服务器 | |
CN107168846A (zh) | 电子设备的监控方法及装置 | |
US10389818B2 (en) | Monitoring a network session | |
CA2502216C (en) | Network monitoring system | |
CN114302351B (zh) | 短信业务处理方法、装置、计算机设备和存储介质 | |
CN108289165B (zh) | 一种基于手机控制相机的实现方法、装置及终端设备 | |
CN110209564A (zh) | 打印机日志的获取方法、打印机、服务器和打印机系统 | |
CN112769663B (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 | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Visual Technology Co., Ltd. Address before: 266100 Zhuzhou Road, Laoshan District, Shandong, No. 151, No. Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |