- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在用 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/
真的如标题...如果类 X 被声明为 strictfp 并调用类 Y 中的方法,是否会强制执行严格性,或者这是否仅适用于 X 自己的代码? 此外,如果我在 strictfp 类方法中计算一个值并将其传
我在 Windows 8 (Intel Atom Z3775) 上使用以下方法: public static strictfp void main(String args[]) { float
看看数学课,ulp method : public static float ulp(float f) 如果应用该方法的方式如下:Math.ulp(Float.MAX_VALUE),则会出现 Java
将类标记为 strictfp 意味着该类中的任何方法代码都将符合浮点的 IEEE 754 标准规则。 这是什么意思?实在是没看懂。 最佳答案 一些处理器具有稍微更精确的算术能力 - 例如80 位而不是
这个问题已经有答案了: When should I use the "strictfp" keyword in java? (11 个回答) 已关闭 6 年前。 我一直读过strictfp将浮点计算限
我正在用 java 实现一些神经网络库,并且有密集的 double(不是 Double)矩阵运算,矩阵很大,当然需要性能。 所以我开始阅读有关 strictfp 关键字的内容,老实说,我不明白它到底做
这个问题在这里已经有了答案: When should I use the "strictfp" keyword in java? (11 个答案) 关闭 7 年前。 谁能解释一下关键字 strict
我们即将进行第一次代码审核,有人告诉我不使用 strictfp 进行浮点运算可能会让我们被标记。软件在 Windows 机器上编码并部署到 Solaris 机器以供生产使用。关于它是真的有什么建议吗?
我们都非常了解 strictfp 的工作原理。 像这样: package com.hk.basicjava.tests.strictfp; import java.util.*; public cla
更准确地说,如果调用堆栈中存在带有 strictfp 修饰符的函数,那么调用堆栈顶部的函数是否也遵守 strictfp 说明符? public class Main { // case 1:
我正在尝试 Java 中的枚举类型。当我写下面的类时, public class EnumExample { public enum Day { private String mood;
strictfp 可能是最没有存在感的关键字了,很多人写了多年 Java 甚至都不知道它的存在。接下来,它也没有必要继续存在了。 上一篇文章Java 17 更快的 LTS 节奏 我们今天聊的内容
我正在阅读 katherine sierra 的 SCJP。 我明白 abstract 和 final 关键字不能一起使用,因为正如书中所解释的那样,它们相互矛盾。 但是,我不明白为什么strictf
在重构一些代码时,我偶然发现了这个奇怪的地方。似乎不可能在不影响整个类的情况下控制初始化程序的 strictfp 属性。示例: public class MyClass { public fi
根据 JLS,我知道 strictfp 修饰符在方法(和类)上的含义: JLS 8.4.3.5, strictfp methods: The effect of the strictfp modifi
JLS strictfp Interfaces指定: The effect of the strictfp modifier is to make all float or double expres
我已经查看了它的作用,但实际上有没有人举例说明何时在 Java 中使用 strictfp 关键字?有没有人真的发现了这个的用途? 将它放在我所有的浮点运算上会有任何副作用吗? 最佳答案 Strictf
鉴于在编写时考虑了性能的 Java 应用程序(即方法在源代码中有意未声明为“strictfp”),是否可以允许用户在 strictfp 模式下运行整个应用程序? 看起来粗略的方法是使用使用 javas
如果我想编写从浮点转换为 double 的方法。 有没有两种情况会返回不同的结果? 如果我不关心平台一致性,我应该使用哪个版本? 如果我需要它在不同平台上表现一致怎么办? double f2d(f
我是一名优秀的程序员,十分优秀!