我使用perf来分析我的程序,这涉及到exp()和pow()的大量使用。代码是用
icc -g -fno-omit-frame-pointer test.c并以下列文字描述:
perf record -g ./a.out其次是:
perf report -g 'graph,0.5,caller'perf给了:

__libm_exp_l9()和__libm_pow_l9()这两个函数正在消耗大量的计算能力。
因此,我想知道它们是否只是exp()和pow()的别名?或者在这里阅读报告有什么建议吗?谢谢。
发布于 2016-05-15 16:49:20
它们不是别名,而是内部实现的功能。数学库通常有几个版本的函数,这取决于使用的处理器、指令集或参数。
没什么好担心的。Exp和Pow是比指令更复杂的函数(通常),因此它们需要一些时间。不幸的是,我没有找到对它们的任何引用(Intel数学库可能不是开放源码),但这是使用内部名称空间名称作为函数的常见做法。
https://stackoverflow.com/questions/37239753
复制相似问题