我正在使用基于小型嵌入式 PCIe 的硬件,该硬件具有非常低端的处理器,根据操作和固件大小,我正在消耗其所有资源。要进行 CPU 优化,我可以采取哪些步骤?
我尝试使用按位移动乘法(*)和除法(/)。 但我有这样的代码
Y = X * 3;
或
Z = X / 1000;
对如何以 CPU 友好的方式执行这些操作感到困惑。
最佳答案
1。确认您的瓶颈
存在 CPU 密集型、内存密集型、IO 密集型应用程序等。实际上,您的低端处理器可能会花费大部分时间等待 DRAM 中的数据、执行一些 IO 操作或等待自旋锁。因此,您要做的第一件事就是确认您的真正瓶颈。
有一些工具可以实现此目的,例如适用于 Linux 的免费 perf
或付费的 Intel VTune。
2。向我们展示上下文
如果您发现 CPU 大部分时间都花在 foo() 上,请向我们展示此函数,以便我们提供帮助。
3。一般建议
对于您的一般性问题,您只会得到一般性建议,例如:
- 使用更积极的编译器优化,例如
-O3
- 更改您的算法。
- 避免锁定。
- 调整您的数据。
- 避免虚假共享。
- 使您的数据结构更加紧凑。
- 使用预取。
等等等等
抱歉,没有上下文可以向您建议更具体的技术。
关于c - 如何使用除以1000作为CPU优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47669101/