如何使用除以1000作为CPU优化?

时间:2017-12-06 07:33:09

标签: c performance arithmetic-expressions

我正在使用基于嵌入式PCIe的小型硬件,它具有非常低端的处理器,基于操作和固件大小,我正在消耗其所有资源。要进行CPU优化,我可以采取哪些步骤?

我尝试使用按位移动乘法(*)和除法(/)。 但我有这样的代码

Y = X * 3;

Z = X / 1000;

如何以CPU​​友好的方式解决这些问题。

1 个答案:

答案 0 :(得分:1)

1。确认你的瓶颈

存在CPU绑定,内存限制,IO绑定的应用程序等。实际上,您的低端处理器可能会花费大部分时间等待来自DRAM的数据,执行某些IO或等待自旋锁。所以你要做的第一件事就是确认你的真正瓶颈。

有一些工具可供使用,例如Linux的免费perf或付费的英特尔VTune。

2。向我们展示上下文

如果您发现CPU花费大部分时间花在foo()上,请告诉我们这个功能,以便我们提供帮助。

3。通用建议

对于您的通用问题,您只会获得一般性建议,例如:

  1. 使用更积极的编译器优化,例如-O3
  2. 更改算法。
  3. 避免锁定。
  4. 对齐您的数据。
  5. 避免虚假分享。
  6. 使您的数据结构更紧凑。
  7. 使用预取。
  8. 等等

    很抱歉,没有任何背景可以为您提供更具体的技巧。