refer to https://inside.java/2025/06/12/ffm-vs-unsafe/ , java 22 has memory operating api, simulating like a malloc(C) , new (C++),
Inside Java
https://inside.java/2025/06/12/ffm-vs-unsafe/
sumary is MemorySegment
https://docs.oracle.com/javase/jp/22/docs/api/java.base/java/lang/foreign/MemorySegment.Scope.html
- 「ヒープ・セグメント」は、Javaヒープ("on-heap"リージョン)内のメモリー・リージョンによってバックアップされ、アクセスを提供します。
- 「ネイティブ・セグメント」は、Javaヒープ("off-heap"リージョン)の外部にあるメモリーのリージョンによってバックアップされ、アクセスを提供します。
heap memory( which is operated by malloc, caloc ) , heap area or
stack memory( nomal local val ) , located sack area . above native segment, off-heap may be stack
emorySegment segment = ...
int value = segment.get(ValueLayout.JAVA_INT, 0);
@Benchmark
public void fmaReadLoop_1000(Blackhole blackhole) {
for (int i = 0 ; i < 4000 ; i+=4) {
blackhole.consume(memSegment.get(ValueLayout.JAVA_INT_UNALIGNED, i));
}
}
Ths Blackhole may be log
https://javadoc.io/doc/org.openjdk.jmh/jmh-core/1.23/org/openjdk/jmh/infra/Blackhole.html
Consume object. This call provides a side effect preventing JIT to eliminate dependent computations.
Is it means
コメントする