JVM / JAVA中的预取指令
发布时间:2020-09-25 10:04:29 所属栏目:Java 来源:互联网
导读:是否有 Java语言或JVM中的任何软件预取指令,如GCC中提供的 __builtin_prefetch 一个有趣的事情是,Hotspot JVM实际上支持预取! 它将Unsafe.prefetchRead()和Unsafe.prefetchWrite()方法视为内在函数,并将其编译为相应的CPU指令. 不幸的是,sun.misc.Unsafe不声
是否有 Java语言或JVM中的任何软件预取指令,如GCC中提供的 __builtin_prefetch 解决方法一个有趣的事情是,Hotspot JVM实际上支持预取!它将Unsafe.prefetchRead()和Unsafe.prefetchWrite()方法视为内在函数,并将其编译为相应的CPU指令. 不幸的是,sun.misc.Unsafe不声明这种方法.但是,如果您将以下方法添加到Unsafe.java中,请重新编译并替换rt.jar中的Unsafe.class(或仅添加-Xbootclasspath / p JVM参数),您将能够在应用程序中使用prefetch内在函数. public native void prefetchRead(Object o,long offset); public native void prefetchWrite(Object o,long offset); public static native void prefetchReadStatic(Object o,long offset); public static native void prefetchWriteStatic(Object o,long offset); 我怀疑这可能有助于实际应用,但如果你想玩它,我可以提供更多的细节. 用法示例: long[] array = new long[100*1024*1024]; // ... sun.misc.Unsafe.prefetchReadStatic(array,50*1024*1024); (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- JAVA中String类与StringBuffer类的区别
- java – 关闭Spring引导应用程序时无法注销数据源JMX MBean
- java – 使用接口类作为键来获取具体的实例值?
- javafx – TornadoFX filechooser
- Java StringBuilder.setLength() – 是时间复杂度O(1)?
- Java微信支付之公众号支付、扫码支付实例
- java – Spring应用程序中是否应该“一切”进行弹簧管理?
- JavaFX在企业网络应用程序 – 良好的替代传统的网页?
- Java中final,finally,finalize三个关键字的区别_动力节点Ja
- Java表单重复提交的避免方法