【问题标题】:Which one takes less cpu clock cycles to execute? Pythagoras formula or 16 comparisons among ints in "if" clause?哪一个需要更少的 cpu 时钟周期来执行?毕达哥拉斯公式或“if”子句中整数之间的 16 个比较?
【发布时间】:2023-03-21 22:45:01
【问题描述】:

大概的答案就足够了。 我想检查两个相同大小的矩形是否重叠 1) 现有代码检查一个矩形的所有 (x,y) 是否与另一个矩形的所有 (x,y) 一致。所以总共进行了16次比较 2)我的改进 - 计算每个矩形的左上角之间的距离并检查该距离是否小于矩形的对角线。

此外,任何讨论 CPU 时钟周期数/每次编码操作在 CPU 上执行一次所需的时间的书籍/材料都值得赞赏。

【问题讨论】:

    标签: processing-efficiency coding-efficiency cpu-cycles


    【解决方案1】:

    这主要取决于您对平方根的近似值。常规近似肯定会更慢,这仅仅是因为它提供的准确性(以及迭代次数)。

    鉴于您的矩形看起来非常小,最快的算法将是一个简单的查找:将所有可能的平方根保存在字典中,然后进行查找。

    如果这不是您需要的,您可以搜索另一种算法(查找平方根的近似值,或在内置算法中生成平方根)。然后由您来计算必要的迭代次数和复杂度。

    这是一个类似问题的链接,带有一些经验近似值:

    https://gamedev.stackexchange.com/questions/27196/which-opcodes-are-faster-at-the-cpu-level

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-12
      相关资源
      最近更新 更多