< prev index next >

test/micro/org/openjdk/bench/java/lang/foreign/StrLenTest.java

Print this page
*** 46,11 ***
  @BenchmarkMode(Mode.AverageTime)
  @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
  @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
  @State(org.openjdk.jmh.annotations.Scope.Thread)
  @OutputTimeUnit(TimeUnit.NANOSECONDS)
! @Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED", "--enable-preview" })
  public class StrLenTest extends CLayouts {
  
      Arena arena = Arena.ofConfined();
  
      SegmentAllocator segmentAllocator;
--- 46,11 ---
  @BenchmarkMode(Mode.AverageTime)
  @Warmup(iterations = 5, time = 500, timeUnit = TimeUnit.MILLISECONDS)
  @Measurement(iterations = 10, time = 500, timeUnit = TimeUnit.MILLISECONDS)
  @State(org.openjdk.jmh.annotations.Scope.Thread)
  @OutputTimeUnit(TimeUnit.NANOSECONDS)
! @Fork(value = 3, jvmArgsAppend = { "--enable-native-access=ALL-UNNAMED" })
  public class StrLenTest extends CLayouts {
  
      Arena arena = Arena.ofConfined();
  
      SegmentAllocator segmentAllocator;

*** 90,31 ***
      }
  
      @Benchmark
      public int panama_strlen() throws Throwable {
          try (Arena arena = Arena.ofConfined()) {
!             MemorySegment segment = arena.allocateUtf8String(str);
              return (int)STRLEN.invokeExact(segment);
          }
      }
  
      @Benchmark
      public int panama_strlen_ring() throws Throwable {
!         return (int)STRLEN.invokeExact(arenaAllocator.allocateUtf8String(str));
      }
  
      @Benchmark
      public int panama_strlen_pool() throws Throwable {
          Arena arena = pool.acquire();
!         int l = (int) STRLEN.invokeExact(arena.allocateUtf8String(str));
          arena.close();
          return l;
      }
  
      @Benchmark
      public int panama_strlen_prefix() throws Throwable {
!         return (int)STRLEN.invokeExact(segmentAllocator.allocateUtf8String(str));
      }
  
      @Benchmark
      public int panama_strlen_unsafe() throws Throwable {
          MemorySegment address = makeStringUnsafe(str);
--- 90,31 ---
      }
  
      @Benchmark
      public int panama_strlen() throws Throwable {
          try (Arena arena = Arena.ofConfined()) {
!             MemorySegment segment = arena.allocateFrom(str);
              return (int)STRLEN.invokeExact(segment);
          }
      }
  
      @Benchmark
      public int panama_strlen_ring() throws Throwable {
!         return (int)STRLEN.invokeExact(arenaAllocator.allocateFrom(str));
      }
  
      @Benchmark
      public int panama_strlen_pool() throws Throwable {
          Arena arena = pool.acquire();
!         int l = (int) STRLEN.invokeExact(arena.allocateFrom(str));
          arena.close();
          return l;
      }
  
      @Benchmark
      public int panama_strlen_prefix() throws Throwable {
!         return (int)STRLEN.invokeExact(segmentAllocator.allocateFrom(str));
      }
  
      @Benchmark
      public int panama_strlen_unsafe() throws Throwable {
          MemorySegment address = makeStringUnsafe(str);

*** 160,11 ***
          public MemorySegment allocate(long byteSize, long byteAlignment) {
              if (rem < byteSize) {
                  reset();
              }
              MemorySegment res = current.allocate(byteSize, byteAlignment);
!             long lastOffset = segment.segmentOffset(res) + res.byteSize();
              rem = segment.byteSize() - lastOffset;
              return res;
          }
  
          void reset() {
--- 160,11 ---
          public MemorySegment allocate(long byteSize, long byteAlignment) {
              if (rem < byteSize) {
                  reset();
              }
              MemorySegment res = current.allocate(byteSize, byteAlignment);
!             long lastOffset = res.address() - segment.address() + res.byteSize();
              rem = segment.byteSize() - lastOffset;
              return res;
          }
  
          void reset() {
< prev index next >