[发明专利]一种程序检测方法及装置有效
| 申请号: | 201510916597.9 | 申请日: | 2015-12-10 |
| 公开(公告)号: | CN105389258B | 公开(公告)日: | 2020-08-14 |
| 发明(设计)人: | 巩晓波 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
| 地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 程序 检测 方法 装置 | ||
1.一种程序检测方法,其特征在于,包括:
检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间;所述目标消息为所述主线程的消息队列前端的消息;所述目标消息的类型为程序逻辑消息或者屏幕刷新消息;所述第一时间和所述第二时间是基于检测线程向所述主线程的消息队列前端所抛送的检测消息所确定的;所述检测线程为在程序启动时所启动的用于监控主线程的消息执行的线程;
根据所述第一时间与所述第二时间,确定所述目标消息的执行时长;
若所述执行时长大于预设阈值,则确定所述目标消息的执行导致屏幕卡顿,并输出所述目标消息。
2.如权利要求1所述的方法,其特征在于,所述主线程的消息队列包括至少一个消息,所述至少一个消息中每个消息的类型为程序逻辑消息或者屏幕刷新消息。
3.如权利要求2所述的方法,其特征在于,所述根据所述第一时间与所述第二时间,确定所述目标消息的执行时长,包括:
计算所述第一时间和所述第二时间之间所形成的时长,并将所述时长确定为所述目标消息的执行时长。
4.如权利要求1所述的方法,其特征在于,所述主线程的消息队列前端设置第一检测消息,所述第一检测消息在所述目标消息之前;
所述检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间,包括:
当检测到所述第一检测消息执行时,将所述第一检测消息的执行时间确定为所述主线程的消息队列中目标消息执行的第一时间;
将所述目标消息出队,并继续在所述主线程的消息队列的前端设置第二检测消息;
当执行到所述第二检测消息时,将所述第二检测消息的执行时间确定为在所述目标消息之后的消息执行的第二时间。
5.如权利要求1所述的方法,其特征在于,所述检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间之前,还包括:
在系统所述主线程的消息执行函数上注册回调通知;
所述检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间,包括:
当所述主线程的消息队列中目标消息执行时,获取系统的第一回调通知,所述第一回调通知携带所述目标消息执行的第一时间;
当所述目标消息之后的消息执行时,获取系统的第二回调通知,所述第二回调通知携带所述目标消息之后的消息执行的第二时间点。
6.一种程序检测装置,其特征在于,包括:
检测模块,用于检测主线程的消息队列中目标消息执行的第一时间以及在所述目标消息之后的消息执行的第二时间;所述目标消息为所述主线程的消息队列前端的消息;所述目标消息的类型为程序逻辑消息或者屏幕刷新消息;所述第一时间和所述第二时间是基于检测线程向所述主线程的消息队列前端所抛送的检测消息所确定的;所述检测线程为在程序启动时所启动的用于监控主线程的消息执行的线程;
确定模块,用于根据所述第一时间与所述第二时间,确定所述目标消息的执行时长;
确定输出模块,用于若所述执行时长大于预设阈值,则确定所述目标消息的执行导致屏幕卡顿,并输出所述目标消息。
7.如权利要求6所述的装置,其特征在于,所述主线程的消息队列包括至少一个消息,所述至少一个消息中每个消息的类型为程序逻辑消息或者屏幕刷新消息。
8.如权利要求7所述的装置,其特征在于,所述确定模块具体用于计算所述第一时间和所述第二时间之间所形成的时长,并将所述时长确定为所述目标消息的执行时长。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510916597.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种针对界面测试生成测试建议的方法和装置
- 下一篇:结构化查询语言调试器





