Java中的strictfp
我在java中实现了一些神经网络库,并且存在密集的
double
(不是Double
)矩阵运算,矩阵很大并且当然需要性能。
所以我开始阅读关于strictfp
关键字我真的不明白它究竟做了什么,我正在寻找关于如果我应该使用它的简单解释以及为什么
没有找到相关结果
已邀请:
4 个回复
坝镰补翔奋
您是否希望将中间结果(例如2.0 + 1.1)表示为IEEE754标准双精度,或者您的平台允许的最佳精度。 strictfp确保第一个,而不是使用strictfp允许VM使用第二个替代方案。 不使用strictfp不会损害性能,并且可能在本机浮点类型未映射到IEEE754的平台上提高性能,因为VM不需要在本机和IEEE754格式之间来回转换。答案取决于平台,您需要进行衡量。
荤碗
关键字是作为一种变通方法引入的。使用此关键字时,Java将使用IEEE标准,从而在所有平台上实现更高的兼容性。 但是,由于不再使用平台优化,因此浮点计算速度较慢,为
。
门锑腺潮
舜辉
。科学结果(或精确单位测试)的再现性是strictfp的主要用途。对于日常使用,它会损害性能和数值稳定性。