首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Intel Pin工具预期的时间开销

Intel Pin工具预期的时间开销
EN

Stack Overflow用户
提问于 2014-09-15 14:42:56
回答 1查看 1.4K关注 0票数 1

我正在编写一个Pin工具,它似乎增加了大量的时间开销。

我的工具必须用指令的粒度来测试程序。

为了检查开销源,我编写了一个小型Pin-工具,它只对指令进行计数。

测试每条指令(就像我必须在工具中做的那样)。

此外,我还编写了一个检查注册表值的简单程序(C代码大约有20行)。

(运行在i7 CPU上,Windows 7)

在运行简单程序时,几乎需要立即返回。

当运行Pin工具init和程序而没有任何工具时,需要2.35+-秒。

使用简单的指令工具运行Pin工具时,需要5-6秒。

指示数:3 107 098。

我也在一个更复杂的代码上尝试过它,一个循环在递归函数上的程序。

没有针,大约需要1分钟。

使用Pin (只计算指令)大约需要7分钟。

指示数目为:1 850 919 077

这是预期的开销吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-17 11:53:07

嗯,如果不知道你在做什么样的仪器,就不可能知道这些数字是否会被期望。然而,当涉及到PIN的开销时,有几个因素值得考虑。

如果分析代码(传递给*_InsertCall的函数指针)包含对其他函数、循环或条件语句的调用,则可能需要上下文切换。这将大大增加工具的执行时间。如果您阅读了PIN用户指南--我确信这是简要讨论过的--在有关PIN的文章中也提到了这一点。

另一个可能更容易理解的因素是,您添加的分析代码至少会导致执行时间增加,与编译后的分析代码中的指令数量相等,前提是您正在对指令的粒度进行检测。如果分析代码中有循环,这当然会增加得更多。(这有点简化,因为我假设每条指令都需要相同的执行时间。)

由PIN引起的减速可从2倍(这是一个相当理论上的减速)到数万倍不等。如果你的工具只造成了7倍的减速,我会说它非常快。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25850678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档