我的问题是针对 iPhone、iPod 和 iPad 的,因为我假设架构会产生很大的不同。我希望某处有一个规范(可能针对各种芯片),或者有一种可靠的方法来测量每个特定指令的 T。我知道我可以使用任意数量的工具来测量使用的总处理器时间、使用的内存等。我想在较低级别进行量化。
所以,我能够弄清楚我经历了多少次算法的主要部分。例如,我n * (n-1)
在一个简单的实现中迭代时间,在另一个实现中迭代n
(最佳情况)和n + n * (n-1)
(最坏情况)之间。我还可以对指令总数(+ - = % * / 和逻辑语句)进行合理的计数,并且可以比较这些计数,但这是假设每个操作的权重相同。另外,我不知道如何权衡逻辑语句(if、else、for、while)与数学运算符的实际时间值......每次我“如果”的工作量与“+”一样多用它?我很想知道在哪里可以找到这些信息。
因此,为了清楚起见,我的目标是发现我对 CPU(或 GPU 或任何 U)的处理器时间要求,以便我可以围绕处理器时间设计最佳算法。有人可以告诉我从哪里开始使用 iOS 硬件吗?
编辑:此链接到开发人员门户中的 ClockServices.c和 SIMD 内容对于对此感兴趣的人来说可能是一个好的开始。今晚再喝几杯咖啡,我可能会熬过去;)