术语"Instrumentation"是什么意思?

47

正如标题所示。许多解释都很模糊,有没有人能提供更加确切的定义?

这个术语在Android测试中经常使用,但我认为它并不局限于该平台。

4个回答

25
一些性能测量工具会向代码中添加仪器。例如,它们可能会进行二进制翻译,并添加指令以在函数开始和结束时读取计时器。或者,这种检测计时器的仪器可能是由自动化工具或程序员添加到汇编或C代码中。
其他性能测量工具不会改变要测量的代码。例如,UNIX prof采样运行特殊代码,该代码在定时器中断时被调用,生成接收中断的指令的直方图。
一些工具是混合型的:例如,UNIX gprof将类似于prof的中断采样与编译器-pg选项添加的mcount仪器相结合,以计算哪些函数互相调用。
所有性能测量都有开销,但是仪器通常比基于中断的采样开销更大。另一方面,仪器可以测量更多内容。

当新软件安装到被检测的操作系统中时会发生什么。例如,一个新的apk被安装到被检测的安卓操作系统中。 - Krishna Oza
2
我不太了解Android,但是希望有一个钩子或回调函数,这样当新的内容被添加时,仪器管理代码就会被调用,并且可以将仪器应用于新代码。然而,这通常不会发生,因为可能存在特权问题,并且应用仪器本身可能会被恶意软件利用。 - Krazy Glew

15

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

在计算机编程的上下文中,“工具化”指的是监视或测量产品性能水平、诊断错误和编写跟踪信息的能力。程序员以代码指令的形式实现工具化,以监视系统中的特定组件(例如,指令可以输出日志信息以出现在屏幕上)。当应用程序包含工具化代码时,可以使用管理工具进行管理。 工具化对于审查应用程序的性能是必要的。 工具化方法可以分为两种类型:源工具化和二进制工具化。

Happy coding


9
根据Oracle的说法:
仪器化是向方法添加字节码以收集工具使用的数据的过程。由于这些更改纯粹是附加的,因此这些工具不会修改应用程序状态或行为。此类良性工具的示例包括监视代理、分析器、覆盖率分析器和事件记录器。

4

仪器化通常用于动态代码分析。

它与日志记录不同,因为仪器化通常由软件自动完成,而日志记录需要人工智能插入日志记录代码。

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接