我用C++写了一个矩阵类,我在树莓派上做了一个基准测试,当我使用arch Linux时,计算时间是0.4ms,当我使用实时操作系统ChibiOS时,代码的运行时间是2.5ms。两种情况的CPU频率相同(700 The )。是不是一个系统中的内存操作(calloc,memcpy)比较慢?
发布于 2012-12-04 08:29:54
既然你使用的是doubles,那就是hard float和soft float。
请注意,您不能尝试在不支持硬浮点的操作系统上运行硬浮点二进制文件。如果你这样做了,它看起来会一直工作,直到两个使用硬浮点的进程之间有一个上下文切换。因为操作系统不会在上下文切换中保存浮点状态,所以它们将会在彼此的浮点上下文上执行,并且结果将是不可预测的。
我相信链接器会捕捉到这一点,所以除非你自己编写程序集,并且不使用任何库,否则很难意外遇到这个问题。
https://stackoverflow.com/questions/13694078
复制相似问题