【发布时间】:2016-12-30 07:33:20
【问题描述】:
我正在分析一些用 C 编写的数字代码(分析器是 Instruments,编译器是 Mac OSX 10.11.6 上的 clang)。高达 77.3% 的运行时间花在_platform_memmove$VARIANT$Haswell。
在汇编输出中,上述函数由DYLD-STUB$$memcpy 调用。但是,我的 C 代码中没有 memcpy(虽然我确实有一些 malloc)。
再深入一点,看来汇编命令rep 负责占用这么多时间。从this 的帖子来看,rep 似乎没有做任何有用的事情。为什么编译器会插入它? memcpy 是从哪里来的?
我也尝试使用-g 进行编译,但随后_platform_memmove$VARIANT$Haswell 几乎不再总是被吞噬。
【问题讨论】:
-
你能发布代码吗?你的测量有什么样的方差/标准偏差?
-g的总运行时间如何变化? -
rep正在 memcpy 中进行实际复制。 -
感谢您实际告诉您到目前为止所做的事情,并找出问题所在。