gpt4 book ai didi

C++ 分析 : clock cycle count

转载 作者:太空狗 更新时间:2023-10-29 23:02:54 25 4
gpt4 key购买 nike

我正在使用 valgrind --tool=callgrind 分析我的 C++ 程序的关键部分。

该部分本身的执行时间不到 1 微秒,因此我对该部分进行了大量循环分析。

我注意到指令的执行时间是 0.13% 的倍数(占程序总执行时间的百分比)。所以我只看到 0.13、0.26、0.52 等等。

我的问题是,我是否应该假设这个原子 量测量一个 CPU 周期?见照片。(callgrind 输出通过 kcachegrind 以图形方式呈现。)

enter image description here

编辑:顺便说一句,查看机器代码,我看到 mov 需要 0.13,所以这可能确实是一个时钟周期。

最佳答案

Callgrind 不测量 CPU 时间。它测量指令读取。这就是“Ir”一词的来源。如果倍数是 0.13%(特别是因为你用 mov 确认)那么这意味着它们正在测量单个指令读取。还有缓存模拟选项,可以让它衡量缓存未命中的可能性。

请注意,并非所有指令都需要相同的时间来执行,因此百分比与每个部分所花费的时间量并不完全匹配。但是,它仍然可以让您很好地了解您的程序在哪里完成了最多的工作,并且可能花费了最多的时间。

关于C++ 分析 : clock cycle count,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27150525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com