gpt4 book ai didi

java - 使用 javassist 在运行时强制所有 Java 算术为 strictfp?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:32 28 4
gpt4 key购买 nike

鉴于在编写时考虑了性能的 Java 应用程序(即方法在源代码中有意未声明为“strictfp”),是否可以允许用户在 strictfp 模式下运行整个应用程序?

看起来粗略的方法是使用使用 javassist 编写的自定义类加载器简单地将“strictfp”属性添加到所有类的所有方法。这类似于:

http://www.verious.com/qa/no-strictfp-in-scala-workarounds/

但是,类加载器需要将 strictpf 属性添加到应用程序中的所有 类方法,包括私有(private)方法。 (应用程序太大太复杂,无法显式列出可能需要 strictfp 属性的所有可能方法。)

javassist中的反射API好像不支持列出私有(private)方法:

http://www.csg.ci.i.u-tokyo.ac.jp/~chiba/javassist/html/javassist/CtClass.html#getMethods()

我想在 javassist 中做些什么(或者完全通过自定义类加载器方法)?

最佳答案

我不知道这是否对您有帮助,但如果您可以改用 Oracle JRockit JVM,它有一个 JVM 选项可以全局启用 strictfp - '-XX+:-StrictFP`

(在 Hotspot JVM 上有一个 '-XX+:-UseStrictFP' 选项,但它与你想要的效果相反。)

引用:

关于java - 使用 javassist 在运行时强制所有 Java 算术为 strictfp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17324703/

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