CN107168857A - 一种统计应用程序中的函数调用的方法及组件 - Google Patents

一种统计应用程序中的函数调用的方法及组件 Download PDF

Info

Publication number
CN107168857A
CN107168857A CN201710206602.6A CN201710206602A CN107168857A CN 107168857 A CN107168857 A CN 107168857A CN 201710206602 A CN201710206602 A CN 201710206602A CN 107168857 A CN107168857 A CN 107168857A
Authority
CN
China
Prior art keywords
function
functions
component
address
call
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
Application number
CN201710206602.6A
Other languages
English (en)
Other versions
CN107168857B (zh
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.)
Guangdong Gaohang Intellectual Property Operation Co ltd
Shenzhen Litong Zhiyuan Technology Transfer Center Co ltd
Original Assignee
Wuhan Douyu Network 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 Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201710206602.6A priority Critical patent/CN107168857B/zh
Publication of CN107168857A publication Critical patent/CN107168857A/zh
Application granted granted Critical
Publication of CN107168857B publication Critical patent/CN107168857B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3452Performance evaluation by statistical analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computer Hardware Design (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种统计应用程序中的函数调用的方法,为了避免发布之后的应用程序无法监控其函数调用情况,所述方法应用在统计应用程序中的函数调用的组件中,用以监控应用程序的函数调用情况。在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;然后利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。

Description

一种统计应用程序中的函数调用的方法及组件
技术领域
本申请涉及视频直播领域,尤其涉及一种统计应用程序中的函数调用的方法及组件。
背景技术
目前,随着网络通信技术的进步和宽带网络的提速,网络直播得到了越来越多的发展和应用。尤其在游戏直播领域,越来越多的观众会观看游戏主播的直播。对于游戏直播,主播是通过使用直播平台提供的直播软件进行直播。对于客户端软件,通常需要统计其软件的性能瓶颈,从而提升软件的性能,提高用户的体验。如果是在软件开发的时候,比较容易的可以加入对每个函数的调用时间和调用次数进行统计,但是如果软件已经发布,则是没有办法来统计每个函数的调用时间和调用次数的。
发明内容
本发明了提供了一种统计应用程序中的函数调用的方法及组件,以解决目前面临的如果软件已经发布,则没有办法来统计每个函数的调用时间和调用次数的技术问题。
为解决上述技术问题,本发明提供了一种统计应用程序中的函数调用的方法,所述方法应用在统计应用程序中的函数调用的组件中,所述方法包括:
在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;其中,所述组件注入所述应用程序的进程中;
利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;
基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
为了避免发布之后的应用程序无法监控其函数调用情况(调用时间、调用次数等等),本发明通过上述方法在应用程序运行时对其进行监控,然后将该组件注入到运行的应用程序进程中,该组件具有监控应用程序的所有函数调用情况的功能,并统计每个函数的调用次数和调用时间,最后将统计的结果输出。
优选的,所述MAP文件中至少记录了所述所有函数的函数名称、函数地址,函数长度、所有的全局变量、全局变量名的地址。有了MAP文件,本发明就可以直接调用MAP文件,进而为对所有函数进行监控。
优选的,所述利用所述组件中的钩子函数库钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻之前,还包括:利用所述钩子函数库的钩子函数监控所述所有函数的函数头。钩子函数库可以将自身的代码“融入”被监控的程序的进程中,成为目标进程的一个部分,从而可以对程序进行监控,还可以在目标代码中加入自己的逻辑。
优选的,所述利用所述钩子函数库的钩子函数监控所述所有函数的函数头,包括:获取所述组件在终端设备的内存中的起始地址;读取所述MAP文件中的所有函数的函数名称、函数地址;其中,所述所有函数的函数地址为各自相对于所述组件的函数地址;将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头;利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
优选的,所述将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头,包括:利用所述钩子函数库监控所述所有函数从各自的内存地址调用的调用次数和调用时刻。
优选的,所述利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻,包括:读取所述所有函数的函数名称、函数地址、函数长度;将所述所有函数各自的函数地址和函数长度求和,获得所述所有函数各自的尾地址;利用所述钩子函数库对所述所有函数各自的尾地址进行监控,获得所述所有函数各自的尾地址的调用时刻。
本发明公开了一种统计应用程序中的函数调用的组件,所述组件注入在所述应用程序的进程中,用以对所述应用程序中的所有函数的调用时间和调用次数进行监控,包括:
第一监控模块,用于在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;其中,所述组件注入所述应用程序的进程中;
第二监控模块,用于利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;
确定模块,用于基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
优选的,所述MAP文件中至少记录了所述所有函数的函数名称、函数地址,函数长度、所有的全局变量、全局变量名的地址。
优选的,所述组件还包括:
第三监控模块,用于利用所述钩子函数库的钩子函数监控所述所有函数的函数头。
优选的,所述第三监控模块,包括:
获取模块,用于获取所述组件在终端设备的内存中的起始地址;
读取模块,用于读取所述MAP文件中的所有函数的函数名称、函数地址;其中,所述所有函数的函数地址为各自相对于所述组件的函数地址;
获得模块,用于将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头;
监控子模块,用于利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
通过本发明的一个或者多个技术方案,本发明具有以下有益效果或者优点:
本发明公开了一种统计应用程序中的函数调用的方法,为了避免发布之后的应用程序无法监控其函数调用情况,所述方法应用在统计应用程序中的函数调用的组件中,用以监控应用程序的函数调用情况。在该应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所有函数的函数头各自的调用时刻;然后利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。进而,本发明可以在应用程序运行时,实时统计函数的调用情况。
附图说明
图1为本发明实施例中一种统计应用程序中的函数调用的方法的流程图;
图2为本发明实施例中一种统计应用程序中的函数调用的组件的示意图。
具体实施方式
本发明了提供了一种统计应用程序中的函数调用的方法及组件,为了避免发布之后的应用程序无法监控其函数调用情况(调用时间、调用次数等等),本发明编写了一个可以用于在应用程序运行时对其进行监控的组件,然后将该组件注入到运行的应用程序进程中,该组件具有监控应用程序的所有函数调用情况的功能,并统计每个函数的调用次数和调用时间,最后将统计的结果输出。所以后续的HOOK(钩子函数,用来监控函数的调用情况)功能代码都编写在这个组件中。组件注入的方式则有很多,可以是远程线程注入、消息钩子注入等等。
本发明的应用程序可为任意应用程序,例如直播视频软件、语音聊天软件等等,对此本发明不做限制。
为了使本申请所属技术领域中的技术人员更清楚地理解本申请,下面结合附图,通过具体实施例对本申请技术方案作详细描述。
本发明公开了一种统计应用程序中的函数调用的方法,所述方法应用在统计应用程序中的函数调用的组件中。
参看图1,是本发明提供的一种统计应用程序中的函数调用的方法的流程图,该方法包括:
步骤11,在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻。
在具体的实施过程中,本发明的组件注入在所述应用程序的进程中。故而,在应用程序运行时,该组件即可利用组件中的钩子函数库对该应用程序中的所有函数进行监控,进而避免无法对发布后的软件中的函数的调用时间、调用次数进行监控的漏洞。后续本发明会介绍应用在组件中的统计应用程序中的函数调用的具体实施过程,即如何对应用程序的所有函数进行监控统计。在此,本发明先介绍MAP文件的创建。
MAP文件,是事先在使用编译器生成软件(即应用程序)的执行文件时加入生成的。在使用编译器编译软件的代码的时候,可以在编译器选项中加入‘生成MAP文件’这一选项,进而编译器则会根据开发者的操作来生成MAP文件。
其中,MAP文件实际是一个调用信息文件,其包含有该应用程序中所有函数的函数名称、函数地址(即:函数的相对于模块的地址),函数长度,所有的全局变量名,全局变量名的地址等。有了MAP文件,就具有了对应于该模块的所有函数的名称,以及该函数在运行时的内存地址,以及函数的代码的长度信息。有了MAP文件,组件即可以调用MAP文件,进而为对所有函数进行监控,通过使用钩子函数将自身的代码“融入”被监控的程序的进程中,成为目标进程的一个部分,从而可以对程序进行监控,还可以在目标代码中加入自己的逻辑。
作为一种可选的实施方式,钩子函数库可采用Detours库,Detours库是一个HOOK(监控)工具库,里面包含了各类钩子函数,可满足对任一函数进行监控的可能。
下面介绍如何对应用程序的所有函数进行监控统计。
在此之前,需要利用所述钩子函数库的钩子函数监控所述所有函数的函数头。
在监控所有函数的函数头时,本发明使用内联监控方式,其原理是在函数的开头加入一个汇编的“JMP”指令,通过这个挑战则可以跳转到我们插入的代码逻辑中,代码逻辑是组件的组成代码,运行代码逻辑即执行该组件的功能,然后等插入的代码逻辑执行完成后,再跳转到HOOK的函数接着其逻辑继续执行。本发明在插入的代码逻辑中,加入了对函数的调用次数统计信息,用以对函数的调用次数进行统计。例如,可以加入一个变量来统计函数的调用次数,并且没执行一次则计数加1,最终统计完成时,该变量的值则是该段统计时段内函数的调用次数。
另外,本发明也可以记录下当前调用的时刻,后续在函数尾进行监控时也会加入当前调用的时刻,通过函数尾的时刻减去函数头的时刻则可以得到监控的这个函数在执行一次所花费的时间。
本文使用微软提供的开源的内联监控工具Detours(Detours是微软开发的一个HOOK工具库)来实现监控功能。
下面介绍具体的实施过程。
第1步,获取所述组件在终端设备的内存中的起始地址。
对于组件在内存的加载起始地址每次都是不一样的,所以需要先获取组件在终端设备的内存的起始地址。
HMODULE GetModuleHandle(LPCTSTRl pModuleName);
通过调用Windows API函数GetModuleHandle来获取组件的内存起始地址。
其中,参数pModuleName则传入组件的名称。
其中,返回值HMODULE则是组件的内存起始地址。
第2步,读取所述MAP文件中的所有函数的函数名称、函数地址。
其中,所述所有函数的函数地址为各自相对于组件的函数地址。在MAP文件中会有所有函数的名称及函数地址,通过读取MAP文件的内容则可以获取到所有函数的名称和函数地址。
第3步,将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址。其中,所述所有函数各自的内存地址就是所述所有函数各自的函数头。
第4步,利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
故而,在调用时,利用所述钩子函数库监控所述所有函数从各自的内存地址调用的调用次数和调用时刻。
步骤12,利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻。
在具体的实施过程中,利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻,包括:读取所述所有函数的函数名称、函数地址、函数长度;
将所述所有函数各自的函数地址和函数长度求和,获得所述所有函数各自的尾地址;
利用所述钩子函数库对所述所有函数各自的尾地址进行监控,获得所述所有函数各自的尾地址的调用时刻。
步骤13,基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
在对MAP中的所有函数的函数头和函数尾进行监控后,并且在函数头有计算每个函数头的调用次数统计,并且在函数头和函数尾都有记录当前调用的时刻,通过对同一个函数的这2个时刻则可以计算出该函数执行一次的时间。所以可以统计软件在一段时间内所有函数的执行次数以及执行时间,并且可以将统计结果输出成文本的形式,从而可以方便的定位软件的性能瓶颈等问题。
基于同一发明构思,本发明还公开了一种统计应用程序中的函数调用的组件,所述组件注入在所述应用程序的进程中,用以对所述应用程序中的所有函数的调用时间和调用次数进行监控。
参看图2,本发明还公开的一种统计应用程序中的函数调用的组件,包括:
第一监控模块21,用于在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;其中,所述组件注入所述应用程序的进程中;
第二监控模块22,用于利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;
确定模块23,用于基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
作为一种可选的实施例,所述MAP文件中至少记录了所述所有函数的函数名称、函数地址,函数长度、所有的全局变量、全局变量名的地址。
作为一种可选的实施例,所述组件还包括:
第三监控模块,用于利用所述钩子函数库的钩子函数监控所述所有函数的函数头。
作为一种可选的实施例,所述第三监控模块,包括:
获取模块,用于获取所述组件在终端设备的内存中的起始地址;
读取模块,用于读取所述MAP文件中的所有函数的函数名称、函数地址;其中,所述所有函数的函数地址为各自相对于所述组件的函数地址;
获得模块,用于将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头;
监控子模块,用于利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
本文提供了一种统计应用程序中的函数调用的方法及组件,来对已经发布的客户端软件来统计每个函数的调用次数及每个函数的调用时间统计。从而无需在软件开发的时候加入函数统计的功能。对于已经发布的软件通过使用本文的方法也可以进行统计函数的调用次数及时间功能。
通过本发明的一个或者多个实施例,本发明具有以下有益效果或者优点:
本发明公开了一种统计应用程序中的函数调用的方法,为了避免发布之后的应用程序无法监控其函数调用情况,所述方法应用在统计应用程序中的函数调用的组件中,用以监控应用程序的函数调用情况。在该应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所有函数的函数头各自的调用时刻;然后利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。进而,本发明可以在应用程序运行时,实时统计函数的调用情况。
尽管已描述了本申请的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种统计应用程序中的函数调用的方法,所述方法应用在统计应用程序中的函数调用的组件中,其特征在于,所述方法包括:
在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;其中,所述组件注入所述应用程序的进程中;
利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;
基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
2.如权利要求1所述的方法,其特征在于,所述MAP文件中至少记录了所述所有函数的函数名称、函数地址,函数长度。
3.如权利要求2所述的方法,其特征在于,所述利用所述组件中的钩子函数库钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻之前,还包括:
利用所述钩子函数库的钩子函数监控所述所有函数的函数头。
4.如权利要求3所述的方法,其特征在于,所述利用所述钩子函数库的钩子函数监控所述所有函数的函数头,包括:
获取所述组件在终端设备的内存中的起始地址;
读取所述MAP文件中的所有函数的函数名称、函数地址;其中,所述所有函数的函数地址为各自相对于所述组件的函数地址;
将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头;
利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
5.如权利要求4所述的方法,其特征在于,所述将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头,包括:
利用所述钩子函数库监控所述所有函数从各自的内存地址调用的调用次数和调用时刻。
6.如权利要求2和3所述的方法,其特征在于,所述利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻,包括:
读取所述所有函数的函数名称、函数地址、函数长度;
将所述所有函数各自的函数地址和函数长度求和,获得所述所有函数各自的尾地址;
利用所述钩子函数库对所述所有函数各自的尾地址进行监控,获得所述所有函数各自的尾地址的调用时刻。
7.一种统计应用程序中的函数调用的组件,其特征在于,所述组件注入在所述应用程序的进程中,用以对所述应用程序中的所有函数的调用时间和调用次数进行监控,包括:
第一监控模块,用于在所述应用程序运行时,利用所述组件中的钩子函数库监控统计调用信息文件MAP文件中的所有函数的函数头在预设时间内各自的调用次数,和所述所有函数的函数头各自的调用时刻;其中,所述组件注入所述应用程序的进程中;
第二监控模块,用于利用所述钩子函数库监控统计所述MAP文件中的所有函数的函数尾各自的调用时刻;
确定模块,用于基于所述MAP文件中的所述所有函数的函数头各自的调用时刻以及所述所有函数的函数尾各自的调用时刻,确定出所述所有函数在所述预设时间内的调用时间。
8.如权利要求7所述的组件,其特征在于,所述MAP文件中至少记录了所述所有函数的函数名称、函数地址,函数长度。
9.如权利要求8所述的组件,其特征在于,所述组件还包括:
第三监控模块,用于利用所述钩子函数库的钩子函数监控所述所有函数的函数头。
10.如权利要求9所述的组件,其特征在于,所述第三监控模块,包括:
获取模块,用于获取所述组件在终端设备的内存中的起始地址;
读取模块,用于读取所述MAP文件中的所有函数的函数名称、函数地址;其中,所述所有函数的函数地址为各自相对于所述组件的函数地址;
获得模块,用于将所述所有函数的函数地址各自相对于所述组件的函数地址分别和所述组件在内存中的起始地址求和,获得所述所有函数各自的内存地址;所述所有函数各自的内存地址就是所述所有函数各自的函数头;
监控子模块,用于利用所述钩子函数库对所述所有函数各自的内存地址进行监控。
CN201710206602.6A 2017-03-31 2017-03-31 一种统计应用程序中的函数调用的方法及组件 Active CN107168857B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710206602.6A CN107168857B (zh) 2017-03-31 2017-03-31 一种统计应用程序中的函数调用的方法及组件

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710206602.6A CN107168857B (zh) 2017-03-31 2017-03-31 一种统计应用程序中的函数调用的方法及组件

Publications (2)

Publication Number Publication Date
CN107168857A true CN107168857A (zh) 2017-09-15
CN107168857B CN107168857B (zh) 2021-01-01

Family

ID=59849737

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710206602.6A Active CN107168857B (zh) 2017-03-31 2017-03-31 一种统计应用程序中的函数调用的方法及组件

Country Status (1)

Country Link
CN (1) CN107168857B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086183A (zh) * 2018-07-12 2018-12-25 武汉斗鱼网络科技有限公司 一种应用程序的监控方法、装置、电子设备及存储介质
WO2019071535A1 (zh) * 2017-10-12 2019-04-18 深圳市汇顶科技股份有限公司 计算机存储介质、程序运行监测方法及装置
CN110347407A (zh) * 2019-07-16 2019-10-18 武汉斗鱼鱼乐网络科技有限公司 一种获取内存占用量的方法、装置、计算机设备及介质
CN111104104A (zh) * 2019-11-04 2020-05-05 珠海亿智电子科技有限公司 函数调用时间和统计结果可视化的方法、装置及可读介质
CN111190833A (zh) * 2019-11-26 2020-05-22 腾讯云计算(北京)有限责任公司 敏感数据检测方法、装置、存储介质及设备
CN113220355A (zh) * 2020-01-20 2021-08-06 精品科技股份有限公司 控制台程序的控制管理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039186A1 (en) * 2003-08-12 2005-02-17 Borkan Martha S. Use of thread-local storage to propagate application context in Java 2 enterprise editon (J2EE) applications
CN101477491A (zh) * 2009-01-16 2009-07-08 杭州华三通信技术有限公司 一种统计函数运行状态的方法和装置
CN101788949A (zh) * 2010-03-10 2010-07-28 中兴通讯股份有限公司 一种实现嵌入式系统函数监控的方法及装置
CN103425565A (zh) * 2012-05-16 2013-12-04 腾讯科技(深圳)有限公司 获取程序运行信息的方法及系统
CN106055462A (zh) * 2016-05-20 2016-10-26 腾讯科技(深圳)有限公司 一种时长获取方法和装置
CN106502745A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种函数调用方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050039186A1 (en) * 2003-08-12 2005-02-17 Borkan Martha S. Use of thread-local storage to propagate application context in Java 2 enterprise editon (J2EE) applications
CN101477491A (zh) * 2009-01-16 2009-07-08 杭州华三通信技术有限公司 一种统计函数运行状态的方法和装置
CN101788949A (zh) * 2010-03-10 2010-07-28 中兴通讯股份有限公司 一种实现嵌入式系统函数监控的方法及装置
CN103425565A (zh) * 2012-05-16 2013-12-04 腾讯科技(深圳)有限公司 获取程序运行信息的方法及系统
CN106055462A (zh) * 2016-05-20 2016-10-26 腾讯科技(深圳)有限公司 一种时长获取方法和装置
CN106502745A (zh) * 2016-10-26 2017-03-15 腾讯科技(深圳)有限公司 一种函数调用方法和装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019071535A1 (zh) * 2017-10-12 2019-04-18 深圳市汇顶科技股份有限公司 计算机存储介质、程序运行监测方法及装置
CN109923526A (zh) * 2017-10-12 2019-06-21 深圳市汇顶科技股份有限公司 计算机存储介质、程序运行监测方法及装置
CN109086183A (zh) * 2018-07-12 2018-12-25 武汉斗鱼网络科技有限公司 一种应用程序的监控方法、装置、电子设备及存储介质
CN110347407A (zh) * 2019-07-16 2019-10-18 武汉斗鱼鱼乐网络科技有限公司 一种获取内存占用量的方法、装置、计算机设备及介质
CN111104104A (zh) * 2019-11-04 2020-05-05 珠海亿智电子科技有限公司 函数调用时间和统计结果可视化的方法、装置及可读介质
CN111190833A (zh) * 2019-11-26 2020-05-22 腾讯云计算(北京)有限责任公司 敏感数据检测方法、装置、存储介质及设备
CN111190833B (zh) * 2019-11-26 2023-03-24 腾讯云计算(北京)有限责任公司 敏感数据检测方法、装置、存储介质及设备
CN113220355A (zh) * 2020-01-20 2021-08-06 精品科技股份有限公司 控制台程序的控制管理方法及系统

Also Published As

Publication number Publication date
CN107168857B (zh) 2021-01-01

Similar Documents

Publication Publication Date Title
CN107168857A (zh) 一种统计应用程序中的函数调用的方法及组件
CN106339222B (zh) 一种服务实现方法及装置
CN110555028A (zh) 数据展示方法以及装置
CN104580451A (zh) 实现多平台间账号同步的方法和系统、及电子设备
CN107689982A (zh) 多数据源数据同步方法、应用服务器及计算机可读存储介质
CN110247857B (zh) 限流方法及装置
CN109842610A (zh) 接口请求处理方法、装置、计算机设备及存储介质
CN110825448A (zh) 实现多业务模块相互调用的方法、装置、电子设备和存储介质
CN111258434B (zh) 在聊天界面插入图片的方法、装置、设备及存储介质
CN114328217A (zh) 应用的测试方法、装置、设备、介质及计算机程序产品
CN105224541B (zh) 数据的唯一性控制方法、信息存储方法及装置
CN111984346A (zh) 微服务环境中调用链追踪的方法、系统、装置及存储介质
CN110069533B (zh) 一种基于区块链的事件订阅方法及装置
CN109151600B (zh) 一种特效缺失的补偿方法、装置、服务器及存储介质
CN111078573A (zh) 一种测试报文的生成方法及装置
CN104731564A (zh) 系统接口调用记录的生成方法和装置
CN105979291A (zh) 一种视频预览方法、装置及电子设备
CN108121640A (zh) 一种用于自动获取应用的运行数据的方法及系统
US11070659B2 (en) Incoming voice calling method and terminal
CN108600851B (zh) 用于电子书的直播方法、电子设备及计算机存储介质
EP3144934B1 (en) Audio play method and device
CN105898399A (zh) 一种视频资源加载方法及装置及智能电视
CN106445784B (zh) 一种信息监控方法及装置
CN110427366A (zh) 基于phoenix改造hbase旧系统的索引同步方法、装置及系统
CN113609178A (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20231222

Address after: B1101, No. 150, Shangzao Building, Gaofeng Community, Dalang Street, Longhua District, Shenzhen, Guangdong 518000

Patentee after: Shenzhen Litong Zhiyuan Technology Transfer Center Co.,Ltd.

Address before: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee before: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Effective date of registration: 20231222

Address after: 510000 2414-2416 of the main building 371, five mountain road, Tianhe District, Guangzhou, Guangdong.

Patentee after: GUANGDONG GAOHANG INTELLECTUAL PROPERTY OPERATION Co.,Ltd.

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, No. 1 Software Park East Road 4.1 Phase B1 Building 11 Building

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right