【发布时间】:2016-11-13 15:38:53
【问题描述】:
在访问他们的 github 页面并从他们的 kde 文档站点看到一些 pdf 手册后,我仍然感到困惑。假设测试代码中有这两行:
double a1 {asinh(1 / ep)}; // 5 instr.
double b1 {log((1 + sqrt(1 + ep*ep)) / ep)}; // 12 instr.
其中ep 是一些可以预定义的值。 cmets 是我的,在 Codeblocks 中,通过使用反汇编程序运行调试器,然后耐心地点击“下一条指令”并计数来完成。如果我将其设置为显示“指令获取”,这些与 Kacachegrind 所说的相对应。我想这应该是有道理的(我是 C++ 的初学者,顺便说一句)。但是如果我切换到“周期估计”,我会得到一些非常奇怪的读数。对于当前示例,它是 115 和 122,但其他看似相似的表达式,例如:
double Ap {1.0};
double ep {0.9};
显示222 和2(instr.fetch 显示2 两者)!这里发生了什么?谁能解释一下?
【问题讨论】:
标签: c++ kcachegrind