我正在使用基于嵌入式PCIe的小型硬件,它具有非常低端的处理器,基于操作和固件大小,我正在消耗其所有资源。要进行CPU优化,我可以采取哪些步骤?
我尝试使用按位移动乘法(*)和除法(/)。 但我有这样的代码
Y = X * 3;
或
Z = X / 1000;
如何以CPU友好的方式解决这些问题。
答案 0 :(得分:1)
存在CPU绑定,内存限制,IO绑定的应用程序等。实际上,您的低端处理器可能会花费大部分时间等待来自DRAM的数据,执行某些IO或等待自旋锁。所以你要做的第一件事就是确认你的真正瓶颈。
有一些工具可供使用,例如Linux的免费perf
或付费的英特尔VTune。
如果您发现CPU花费大部分时间花在foo()上,请告诉我们这个功能,以便我们提供帮助。
对于您的通用问题,您只会获得一般性建议,例如:
-O3
等等
很抱歉,没有任何背景可以为您提供更具体的技巧。