Java 我们如何检查未来保证的安全点何时在JVM中使用?

Java 我们如何检查未来保证的安全点何时在JVM中使用?,java,jvm,jvm-hotspot,low-latency,Java,Jvm,Jvm Hotspot,Low Latency,除了GC停止safepoints之外,JVM可以在safepoint中停止java应用程序还有很多原因。评估安全点停止的其中一个原因是保证安全点间隔 我们能预测什么时候保证安全点停车吗?或者是最近拍的 为什么我需要它?我在线程中进行共享内存文件预处理。如果在评估safepoint stop时进行预触,则会使到达safepoint的时间更长。如果我只能等到安全点评估之后。只有在有一些清理工作要做时,才会发生清理安全点(也称为“保证安全点”),例如JVM需要清空空闲监视器或清理内联缓存缓冲区。没有办

除了GC停止safepoints之外,JVM可以在safepoint中停止java应用程序还有很多原因。评估安全点停止的其中一个原因是保证安全点间隔

我们能预测什么时候保证安全点停车吗?或者是最近拍的

为什么我需要它?我在线程中进行共享内存文件预处理。如果在评估safepoint stop时进行预触,则会使到达safepoint的时间更长。如果我只能等到安全点评估之后。

只有在有一些清理工作要做时,才会发生清理安全点(也称为“保证安全点”),例如JVM需要清空空闲监视器或清理内联缓存缓冲区。没有办法预测这样的安全点。但好消息是你不需要这么做

所以,最初的问题是防止在预触摸内存映射文件时长时间暂停到安全点,对吗?解决方案是以一种完全不受安全点影响的方式对其进行预触

当您调用JNI方法时,线程将切换到“本地”状态下的
。JVM不会在此状态下等待线程。所以,只需将预触摸移动到本机方法,就不会影响安全点,无论它们是否发生

一种选择是使用常规FileChannel API。例如,不是访问映射的ByteBuffer,而是通过从文件通道读取(或写入)1字节进行预触摸。I/O将在不受safepoints约束的本机方法中发生。

仅当有一些清理工作要做时,才会发生清理safepoint(也称为“保证的safepoint”),例如JVM需要清空空闲监视器或清理内联缓存缓冲区。没有办法预测这样的安全点。但好消息是你不需要这么做

所以,最初的问题是防止在预触摸内存映射文件时长时间暂停到安全点,对吗?解决方案是以一种完全不受安全点影响的方式对其进行预触

当您调用JNI方法时,线程将切换到“本地”状态下的
。JVM不会在此状态下等待线程。所以,只需将预触摸移动到本机方法,就不会影响安全点,无论它们是否发生

一种选择是使用常规FileChannel API。例如,不是访问映射的ByteBuffer,而是通过从文件通道读取(或写入)1字节进行预触摸。I/O将在不受安全点约束的本机方法中发生