gpt4 book ai didi

java - Java 中的 strictfp

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:13:37 26 4
gpt4 key购买 nike

我正在用 java 实现一些神经网络库,并且有密集的 double(不是 Double)矩阵运算,矩阵很大,当然需要性能。

所以我开始阅读有关 strictfp 关键字的内容,老实说,我不明白它到底做了什么,我正在寻找关于是否应该使用它以及为什么使用它的简单解释

最佳答案

strictfp 表示浮点计算应该使用精确的 IEEE754 标准。如果没有 strictfp,VM 可以自由使用其他(但依赖于平台)中间浮点值和 double 值的表示,以提高精度。

如果您需要在多个平台上获得完全相同的结果,请使用 strictfp。如果您想要当前平台可以提供的最佳精度,请避免使用它。

例如在下面的简单补充中:

  2.0 + 1.1 + 3.0

您希望将中间结果(例如 2.0 + 1.1)表示为 IEEE754 标准 double ,还是以您的平台允许的最佳精度表示。 strictfp 确保第一个,不使用 strictfp 允许 VM 使用第二个备选方案。

使用 strictfp 不会损害性能,并且可能在原生浮点类型不映射到 IEEE754 的平台上提高性能,因为 VM 不需要在两者之间来回转换 native 和 IEEE754 格式。答案取决于平台,您需要衡量。

关于java - Java 中的 strictfp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5181256/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com