术语"仪表"是什么意思?

bar*_*rry 25 instrumentation

正如标题所示.许多解释都很模糊,任何人都可以提供更加可靠的定义吗?

该术语在Android测试中使用了很多,但我不认为它仅限于该平台.

Kra*_*lew 15

一些性能测量工具将代码添加到代码中.例如,它们可以进行二进制转换,并添加指令以在函数的开头和结尾读取定时器.或者,这种读取定时器的工具可以通过自动化工具或程序员添加到装配或C代码中.

其他性能测量工具不会更改正在测量的代码.例如,UNIX prof采样运行在定时器中断时调用的特殊代码,该代码中断生成接收中断的指令的直方图.

有些工具是混合的:例如,UNIX gprof将prof风格的中断采样与编译器添加的mcount检测结合起来,使用-pg选项来计算哪些函数相互调用.

所有性能测量都有开销,但是仪器往往比基于中断的采样具有更多的开销.另一方面,仪器可以测量更多的东西.

  • 我不能和 Android 说话,但是:人们希望有一个钩子或回调,以便在添加新东西时调用检测管理代码,并且可以将检测应用到新代码。然而,这通常不会发生 (a) 因为可能存在特权问题,以及 (b) 应用检测本身可能被恶意软件利用。 (2认同)

小智 9

根据甲骨文的说法

检测是在方法中添加字节码,以收集工具使用的数据。由于更改纯粹是附加的,因此这些工具不会修改应用程序状态或行为。此类良性工具的示例包括监控代理、分析器、覆盖分析器和事件记录器。


小智 8

好吧,我访问了这个链接,它说:

在计算机编程的背景下,仪器指的是监视或测量产品性能水平,诊断错误和编写跟踪信息的能力.程序员以代码指令的形式实现检测,监视系统中的特定组件(例如,指令可以输出记录信息以显示在屏幕上).当应用程序包含检测代码时,可以使用管理工具对其进行管理.必须使用仪器来检查应用程序的性能.仪表方法可以有两种类型,源仪表和二进制仪表.

快乐的编码