【发布时间】:2011-06-19 01:01:10
【问题描述】:
众所周知,基于 Linux/BSD 的内核不支持浮点 (FP) 算法。在内核中处理 FP 寄存器的开销是多少?
【问题讨论】:
-
您在哪里看到内核中浮点运算的用例?
-
我正试图了解事实背后的“原因”。
标签: linux
众所周知,基于 Linux/BSD 的内核不支持浮点 (FP) 算法。在内核中处理 FP 寄存器的开销是多少?
【问题讨论】:
标签: linux
通常的答案是,如果内核不使用浮点,它不必在进入内核时保存浮点寄存器或在退出时恢复它们。这将所有系统调用的成本减少了数百个周期。
我不知道是否有人尝试将这种节省与内核可以不加选择地使用这些寄存器时可能获得的性能改进进行比较。请注意,如果您采取适当的措施,可以在内核中使用它们,并且这是在可以获得巨大速度优势的情况下完成的,例如使用SSE指令加速memcpy等。 (在 Linux 源代码中查找对 kernel_fpu_begin 的调用。)
【讨论】:
gettimeofday,一个典型的(例如)Web 服务器几乎会连续调用它。