【问题标题】:how to measure the CPU cycles of a C function in iPhone4 application with xCode4?如何使用 xCode4 测量 iPhone4 应用程序中 C 函数的 CPU 周期?
【发布时间】:2011-04-20 07:05:37
【问题描述】:

系统时间减法可能是一种方法,但它包括所有任务/线程的运行时间,该功能仅在一个任务的一个线程中。 Xcode 中的 Instrument 可能是另一种方法,但是如何测量特定函数的时间?

【问题讨论】:

    标签: iphone xcode4 cycle


    【解决方案1】:

    您需要了解以下几点:首先,“CPU 周期”的概念并不是很有用。事实上,它相当没有意义。你永远不会得到准确的结果。您可以使用valgrind 获取有关正在执行的指令数量的详细输出,并且在理论上(这是一个很大的“理论上”)您可以使用此信息来推导循环计数。实际上这是不可能的,也不值得努力。

    你必须首先问为什么你想找出这个问题。

    【讨论】:

    • 谢谢lxt,有一种使用ARMV5TE汇编代码的算法,我可以使用ARM RVDS调试器获得它的CPU周期。现在我将算法移植到 iPhone、ARMv7 上,它可以工作并给出正确的结果。我需要知道算法在 iPhon4 中的性能,我可以得到算法的运行时间,比如 201006 纳秒,与 ARMV5TE 进行比较,我需要将其转换为周期。如果 iphone4 的工作频率是 1GHz,我可以说算法在某种程度上使用了 201006 个周期。如果 667MHz,则使用 134004 个周期。如果是 500MHz,则为 100503 个周期。所以如果我知道CPU频率,它就完成了任务。
    • 不幸的是,A4 芯片的 CPU 频率尚未公布,并且已知会因设备而异。所以我不一定会假设 iPhone 4 一直运行在 1GHz。
    • 有没有API函数或者系统信息可以获取当前频率?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    • 2023-03-14
    • 2023-04-04
    • 2011-01-13
    相关资源
    最近更新 更多