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