什么是仪器点?

时间:2011-05-06 19:24:32

标签: debugging instrumentation

我在关于动态仪器的论文中找到了这个概念。但我无法找到这个概念的解释。如果可能请解释......

编辑:或者是否有关于如何实现轻量级动态检测的教程(在用户空间中,用于系统调用和普通函数调用)?

编辑(补充论文详情):

优化高性能分布式数据流处理的代码生成方法

Abstract

  

我们提出基于代码生成的方法   优化方法带来   性能和可扩展性   分布式流处理   应用。我们表达流   处理应用程序使用   基于运营商,以流为中心   语言称为SPADE,它支持   编写分布式数据流图   超出类型泛型的工具包   运营商。一项重大挑战   建立这样的应用程序就是找到   一种有效而灵活的方式   映射运算符的逻辑图   进入一个物理的可以   部署在一组分布式的   节点。这包括找到最好的方法   运营商映射到流程以及如何   最佳流程映射到计算节点。   在本文中,我们采取两个阶段   优化方法,其中一个   仪表版的   应用程序首先由生成   SPADE编译器来分析和收集   关于处理和   沟通的特点   应用程序内的运营商。在   第二阶段,剖析   信息被送到优化器   提出物理数据流   可跨节点部署的图形   在计算集群中。这种方法   不仅创造高度优化   适合的应用程序   底层计算和网络   基础设施,但也成功   可以重新定位应用程序   到不同的硬件设置   只需重复优化步骤   并重新编译应用程序   匹配生成的物理流图   由优化器。使用现实世界   来自不同领域的应用程序   如金融和射电天文学,   我们证明了它的有效性   我们对系统S的方法 - a   大规模的分布式流   处理平台。

3 个答案:

答案 0 :(得分:3)

Instrumentation 意味着将代码插入到指令流中,其目的是测量某些内容 - 执行时间,函数调用,数据访问以及与分析相关的各种事物。这是进行性能分析的两种方法之一,它更准确但更慢。另一个是 sampling ,您可以定期中断程序并查看其当前状态。这对性能影响较小,但不准确,特别是对于短期运行。

答案 1 :(得分:1)

在不知道你引用的是什么纸的情况下很难确定,但一般来说,它会在代码中有一个带有" hook"用于仪表。

也就是说,它被编码以便可以动态检测,因此可以记录一些关于代码如何运行的测量结果。

这是否花费在方法,功耗或其他方面的时间取决于仪器的内容和方式。

答案 2 :(得分:0)

查看上下文的文章链接会很有用。 在诸如systemtap / gdb之类的工具中,检测点可以是代码中的任何位置,其执行可以产生事件。对于“动态”检测,通常不需要在代码中编译钩子;该工具只需确定可以插入断点的PC地址。