作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在对 Windows 移动设备上的代码性能进行一些基准测试,并注意到某些算法在某些主机上的表现明显更好,而在其他主机上则明显更差。当然,考虑到时钟速度的差异。
供引用的统计数据(所有结果均由同一个二进制文件生成,由针对 ARMv4 的 Visual Studio 2005 编译):
英特尔 XScale PXA270
ARM1136EJ-S内核(嵌入MSM7201A芯片)
ARM926EJ-S 内核(嵌入在 OMAP 850 芯片中)
我检查了 float 作为一个可能的原因,虽然算法 B 确实使用了 float 代码,但它并没有从内部循环中使用它,而且似乎没有一个内核有 FPU。
所以我的问题是,什么机制可能导致这种差异,最好是关于如何解决/避免相关瓶颈的建议。
提前致谢。
最佳答案
一个可能的原因是 926 的流水线较短(5 个周期对 1136 的 8 个周期,iirc),因此 926 上的分支预测错误成本较低。
也就是说,这些处理器之间存在很多架构差异,太多以至于无法确定为什么您会在不了解您实际执行的指令的情况下看到这种效果。
关于optimization - 针对 ARM : Why different CPUs affects different algorithms differently (and drastically) 进行优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1524558/
我是一名优秀的程序员,十分优秀!