Skip to content

Instantly share code, notes, and snippets.

@franz1981
Created February 14, 2024 12:37
Show Gist options
  • Save franz1981/345792006ae3446b96808ab0fa291a55 to your computer and use it in GitHub Desktop.
Save franz1981/345792006ae3446b96808ab0fa291a55 to your computer and use it in GitHub Desktop.
package red.hat.puzzles.concurrent;
import org.openjdk.jmh.annotations.Benchmark;
import org.openjdk.jmh.annotations.BenchmarkMode;
import org.openjdk.jmh.annotations.CompilerControl;
import org.openjdk.jmh.annotations.Fork;
import org.openjdk.jmh.annotations.Measurement;
import org.openjdk.jmh.annotations.Mode;
import org.openjdk.jmh.annotations.OutputTimeUnit;
import org.openjdk.jmh.annotations.Scope;
import org.openjdk.jmh.annotations.State;
import org.openjdk.jmh.annotations.Warmup;
import org.openjdk.jmh.infra.Blackhole;
import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
@State(Scope.Benchmark)
@BenchmarkMode(Mode.AverageTime)
@OutputTimeUnit(java.util.concurrent.TimeUnit.NANOSECONDS)
@Fork(2)
@Measurement(iterations = 10, time = 200, timeUnit = java.util.concurrent.TimeUnit.MILLISECONDS)
@Warmup(iterations = 10, time = 200, timeUnit = java.util.concurrent.TimeUnit.MILLISECONDS)
public class UpdaterUtilsCost {
private static abstract class Updater<T> {
protected abstract AtomicIntegerFieldUpdater<T> updater();
public void lazySet(T obj, int newValue) {
updater().lazySet(obj, newValue);
}
public void set(T obj, int newValue) {
updater().set(obj, newValue);
}
}
private static final AtomicIntegerFieldUpdater<UpdaterUtilsCost> F_UPDATER0 = AtomicIntegerFieldUpdater.newUpdater(UpdaterUtilsCost.class, "field0");
private static final AtomicIntegerFieldUpdater<UpdaterUtilsCost> F_UPDATER1 = AtomicIntegerFieldUpdater.newUpdater(UpdaterUtilsCost.class, "field1");
private static final AtomicIntegerFieldUpdater<UpdaterUtilsCost> F_UPDATER2 = AtomicIntegerFieldUpdater.newUpdater(UpdaterUtilsCost.class, "field2");
private static final Updater<UpdaterUtilsCost> UPDATER0 = new Updater<UpdaterUtilsCost>() {
@Override
protected AtomicIntegerFieldUpdater<UpdaterUtilsCost> updater() {
return F_UPDATER0;
}
};
private static final Updater<UpdaterUtilsCost> UPDATER1 = new Updater<UpdaterUtilsCost>() {
@Override
protected AtomicIntegerFieldUpdater<UpdaterUtilsCost> updater() {
return F_UPDATER1;
}
};
private static final Updater<UpdaterUtilsCost> UPDATER2 = new Updater<UpdaterUtilsCost>() {
@Override
protected AtomicIntegerFieldUpdater<UpdaterUtilsCost> updater() {
return F_UPDATER2;
}
};
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
private void setViaFUpdater(AtomicIntegerFieldUpdater<UpdaterUtilsCost> updater, int value) {
updater.set(this, value);
}
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
private void setViaUpdater(Updater<UpdaterUtilsCost> updater, int value) {
updater.set(this, value);
}
private volatile int field0;
private volatile int field1;
private volatile int field2;
@Benchmark
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
public void updaterUtil(Blackhole bh) {
setViaUpdater(UPDATER0, 1);
bh.consume(field0);
setViaUpdater(UPDATER1, 1);
bh.consume(field1);
setViaUpdater(UPDATER2, 1);
bh.consume(field2);
}
@Benchmark
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
public void fieldUpdaterUtil(Blackhole bh) {
setViaFUpdater(F_UPDATER0, 1);
bh.consume(field0);
setViaFUpdater(F_UPDATER1, 1);
bh.consume(field1);
setViaFUpdater(F_UPDATER2, 1);
bh.consume(field2);
}
@Benchmark
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
public void updater(Blackhole bh) {
UPDATER0.set(this, 1);
bh.consume(field0);
UPDATER1.set(this, 1);
bh.consume(field1);
UPDATER2.set(this, 1);
bh.consume(field2);
}
@Benchmark
@CompilerControl(CompilerControl.Mode.DONT_INLINE)
public void fieldUpdater(Blackhole bh) {
F_UPDATER0.set(this, 1);
bh.consume(field0);
F_UPDATER1.set(this, 1);
bh.consume(field1);
F_UPDATER2.set(this, 1);
bh.consume(field2);
}
}
@franz1981
Copy link
Author

Results:

Benchmark                               Mode  Cnt   Score   Error  Units
UpdaterUtilsCost.fieldUpdater           avgt   20   3.618 ± 0.038  ns/op
UpdaterUtilsCost.fieldUpdaterUtil       avgt   20   5.702 ± 0.065  ns/op
UpdaterUtilsCost.updater                avgt   20   3.583 ± 0.117  ns/op
UpdaterUtilsCost.updaterUtil            avgt   20  10.992 ± 0.306  ns/op

perfasm output:

# JMH version: 1.34
# VM version: JDK 21, Java HotSpot(TM) 64-Bit Server VM, 21+35-LTS-2513
# VM invoker: /home/forked_franz/.sdkman/candidates/java/21-oracle/bin/java
# VM options: -javaagent:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/lib/idea_rt.jar=36413:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 200 ms each
# Measurement: 10 iterations, 200 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdater

# Run progress: 0.00% complete, ETA 00:00:32
# Fork: 1 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 4.307 ns/op
# Warmup Iteration   2: 3.563 ns/op
# Warmup Iteration   3: 4.035 ns/op
# Warmup Iteration   4: 3.569 ns/op
# Warmup Iteration   5: 3.549 ns/op
# Warmup Iteration   6: 3.830 ns/op
# Warmup Iteration   7: 3.435 ns/op
# Warmup Iteration   8: 3.479 ns/op
# Warmup Iteration   9: 3.756 ns/op
# Warmup Iteration  10: 3.758 ns/op
Iteration   1: 3.592 ns/op
Iteration   2: 3.622 ns/op
Iteration   3: 3.591 ns/op
Iteration   4: 3.581 ns/op
Iteration   5: 3.624 ns/op
Iteration   6: 3.582 ns/op
Iteration   7: 3.632 ns/op
Iteration   8: 3.608 ns/op
Iteration   9: 3.591 ns/op
Iteration  10: 3.644 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 

# Run progress: 12.50% complete, ETA 00:00:54
# Fork: 2 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 4.546 ns/op
# Warmup Iteration   2: 3.492 ns/op
# Warmup Iteration   3: 4.225 ns/op
# Warmup Iteration   4: 3.516 ns/op
# Warmup Iteration   5: 3.455 ns/op
# Warmup Iteration   6: 3.561 ns/op
# Warmup Iteration   7: 3.600 ns/op
# Warmup Iteration   8: 3.632 ns/op
# Warmup Iteration   9: 3.649 ns/op
# Warmup Iteration  10: 3.749 ns/op
Iteration   1: 3.655 ns/op
Iteration   2: 3.594 ns/op
Iteration   3: 3.569 ns/op
Iteration   4: 3.733 ns/op
Iteration   5: 3.666 ns/op
Iteration   6: 3.603 ns/op
Iteration   7: 3.705 ns/op
Iteration   8: 3.595 ns/op
Iteration   9: 3.588 ns/op
Iteration  10: 3.581 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 


Result "red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdater":
  3.618 ±(99.9%) 0.038 ns/op [Average]
  (min, avg, max) = (3.569, 3.618, 3.733), stdev = 0.044
  CI (99.9%): [3.580, 3.656] (assumes normal distribution)

Secondary result "red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdater:·asm":
PrintAssembly processed: 219376 total address lines.
Perf output processed (skipped 4.296 seconds):
 Column 1: cycles (1804 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 890 (100 bytes) 

            # parm0:    rdx:rdx   = &apos;org/openjdk/jmh/infra/Blackhole&apos;
            #           [sp+0x20]  (sp of caller)
            0x00007f4b7c62cf00:   mov    0x8(%rsi),%r10d
            0x00007f4b7c62cf04:   movabs $0x7f4b03000000,%r11
            0x00007f4b7c62cf0e:   add    %r11,%r10
            0x00007f4b7c62cf11:   cmp    %r10,%rax
            0x00007f4b7c62cf14:   jne    0x00007f4b7be65280           ;   {runtime_call ic_miss_stub}
            0x00007f4b7c62cf1a:   xchg   %ax,%ax
            0x00007f4b7c62cf1c:   nopl   0x0(%rax)
          [Verified Entry Point]
  0.11%     0x00007f4b7c62cf20:   mov    %eax,-0x14000(%rsp)
            0x00007f4b7c62cf27:   push   %rbp
            0x00007f4b7c62cf28:   sub    $0x10,%rsp
            0x00007f4b7c62cf2c:   cmpl   $0x0,0x20(%r15)
            0x00007f4b7c62cf34:   jne    0x00007f4b7c62cfb2
  0.11%     0x00007f4b7c62cf3a:   movl   $0x1,0xc(%rsi)
  0.11%     0x00007f4b7c62cf41:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@5 (line 112)
 10.53%     0x00007f4b7c62cf47:   mov    0xc(%rsi),%r10d              ;*getfield field0 {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@10 (line 113)
  0.72%     0x00007f4b7c62cf4b:   test   %rdx,%rdx
         ╭  0x00007f4b7c62cf4e:   je     0x00007f4b7c62cf85
         │  0x00007f4b7c62cf50:   movl   $0x1,0x10(%rsi)
         │  0x00007f4b7c62cf57:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@21 (line 114)
 34.65%  │  0x00007f4b7c62cf5d:   mov    0x10(%rsi),%r11d
         │  0x00007f4b7c62cf61:   movl   $0x1,0x14(%rsi)
         │  0x00007f4b7c62cf68:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@37 (line 116)
 48.95%  │  0x00007f4b7c62cf6e:   mov    0x14(%rsi),%r11d             ;*invokestatic consumeCompiler {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - org.openjdk.jmh.infra.Blackhole::consume@7 (line 380)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@45 (line 117)
  0.06%  │  0x00007f4b7c62cf72:   add    $0x10,%rsp
         │  0x00007f4b7c62cf76:   pop    %rbp
         │  0x00007f4b7c62cf77:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007f4b7c62cf7e:   ja     0x00007f4b7c62cf9c
  0.06%  │  0x00007f4b7c62cf84:   ret    
         ↘  0x00007f4b7c62cf85:   mov    $0xfffffff6,%esi
            0x00007f4b7c62cf8a:   mov    %r10d,%ebp
            0x00007f4b7c62cf8d:   xchg   %ax,%ax
            0x00007f4b7c62cf8f:   call   0x00007f4b7be6e580           ; ImmutableOopMap {}
                                                                      ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@13 (line 113)
                                                                      ;   {runtime_call UncommonTrapBlob}
            0x00007f4b7c62cf94:   nopl   0x204(%rax,%rax,1)           ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@13 (line 113)
                                                                      ;   {other}
....................................................................................................
 95.29%  <total for region 1>

....[Hottest Regions]...............................................................................
 95.29%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 890 (100 bytes) 
  1.11%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdater_jmhTest::fieldUpdater_avgt_jmhStub, version 918 (18 bytes) 
  0.72%                      <unknown> (0 bytes) 
  0.44%   [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.22%   [kernel.kallsyms]  __rcu_read_unlock (0 bytes) 
  0.22%   [kernel.kallsyms]  _raw_spin_unlock (0 bytes) 
  0.17%   [kernel.kallsyms]  asm_sysvec_call_function_single (47 bytes) 
  0.11%   [kernel.kallsyms]  pipe_write (31 bytes) 
  0.06%   [kernel.kallsyms]  __perf_event_task_sched_in (0 bytes) 
  0.06%   [kernel.kallsyms]  perf_event_exec (0 bytes) 
  0.06%   [kernel.kallsyms]  __handle_mm_fault (0 bytes) 
  0.06%   [kernel.kallsyms]  memcg_slab_post_alloc_hook (0 bytes) 
  0.06%                      <unknown> (0 bytes) 
  0.06%   [kernel.kallsyms]  avc_lookup (0 bytes) 
  0.06%   [kernel.kallsyms]  selinux_file_permission (0 bytes) 
  0.06%   [kernel.kallsyms]  blkcg_maybe_throttle_current (0 bytes) 
  0.06%   [kernel.kallsyms]  do_syscall_64 (0 bytes) 
  0.06%   [kernel.kallsyms]  irqentry_enter (0 bytes) 
  0.06%   [kernel.kallsyms]  mutex_unlock (0 bytes) 
  0.06%   [kernel.kallsyms]  rwsem_down_write_slowpath (0 bytes) 
  1.00%  <...other 18 warm regions...>
....................................................................................................
 99.94%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 95.29%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 890 
  1.11%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdater_jmhTest::fieldUpdater_avgt_jmhStub, version 918 
  0.83%                      <unknown> 
  0.44%   [kernel.kallsyms]  finish_task_switch.isra.0 
  0.22%   [kernel.kallsyms]  __rcu_read_unlock 
  0.22%   [kernel.kallsyms]  _raw_spin_unlock 
  0.17%   [kernel.kallsyms]  asm_sysvec_call_function_single 
  0.11%   [kernel.kallsyms]  pipe_write 
  0.06%      perf-12377.map  [unknown] 
  0.06%   [kernel.kallsyms]  __handle_mm_fault 
  0.06%        libjimage.so  _ZN13ImageLocation8set_dataEPh 
  0.06%   [kernel.kallsyms]  rwsem_down_write_slowpath 
  0.06%         interpreter  invokespecial  183 invokespecial  
  0.06%           libjvm.so  _ZN12PhaseChaitin16gather_lrg_masksEb 
  0.06%           libc.so.6  __printf_buffer_done 
  0.06%   [kernel.kallsyms]  blkcg_maybe_throttle_current 
  0.06%           libc.so.6  _int_malloc 
  0.06%      hsdis-amd64.so  putop 
  0.06%           libc.so.6  _IO_fwrite 
  0.06%   [kernel.kallsyms]  selinux_file_permission 
  0.89%  <...other 16 warm methods...>
....................................................................................................
 99.94%  <totals>

....[Distribution by Source]........................................................................
 96.40%         c2, level 4
  1.83%   [kernel.kallsyms]
  0.83%                    
  0.28%           libjvm.so
  0.17%      hsdis-amd64.so
  0.17%         interpreter
  0.17%           libc.so.6
  0.06%        libjimage.so
  0.06%      perf-12377.map
....................................................................................................
 99.94%  <totals>

PrintAssembly processed: 219158 total address lines.
Perf output processed (skipped 3.982 seconds):
 Column 1: cycles (1916 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 892 (82 bytes) 

            # parm0:    rdx:rdx   = &apos;org/openjdk/jmh/infra/Blackhole&apos;
            #           [sp+0x20]  (sp of caller)
            0x00007f2f3862c880:   mov    0x8(%rsi),%r10d
            0x00007f2f3862c884:   movabs $0x7f2ebb000000,%r11
            0x00007f2f3862c88e:   add    %r11,%r10
            0x00007f2f3862c891:   cmp    %r10,%rax
            0x00007f2f3862c894:   jne    0x00007f2f37e65280           ;   {runtime_call ic_miss_stub}
            0x00007f2f3862c89a:   xchg   %ax,%ax
            0x00007f2f3862c89c:   nopl   0x0(%rax)
          [Verified Entry Point]
  0.63%     0x00007f2f3862c8a0:   mov    %eax,-0x14000(%rsp)
            0x00007f2f3862c8a7:   push   %rbp
            0x00007f2f3862c8a8:   sub    $0x10,%rsp
            0x00007f2f3862c8ac:   cmpl   $0x1,0x20(%r15)
  0.26%     0x00007f2f3862c8b4:   jne    0x00007f2f3862c932
  1.77%     0x00007f2f3862c8ba:   movl   $0x1,0xc(%rsi)
  0.26%     0x00007f2f3862c8c1:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@5 (line 112)
  5.95%     0x00007f2f3862c8c7:   mov    0xc(%rsi),%r10d              ;*getfield field0 {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@10 (line 113)
  0.05%     0x00007f2f3862c8cb:   test   %rdx,%rdx
         ╭  0x00007f2f3862c8ce:   je     0x00007f2f3862c905
         │  0x00007f2f3862c8d0:   movl   $0x1,0x10(%rsi)
         │  0x00007f2f3862c8d7:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@21 (line 114)
 40.71%  │  0x00007f2f3862c8dd:   mov    0x10(%rsi),%r11d
         │  0x00007f2f3862c8e1:   movl   $0x1,0x14(%rsi)
         │  0x00007f2f3862c8e8:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@37 (line 116)
 41.44%  │  0x00007f2f3862c8ee:   mov    0x14(%rsi),%r11d             ;*invokestatic consumeCompiler {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - org.openjdk.jmh.infra.Blackhole::consume@7 (line 380)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater@45 (line 117)
  0.16%  │  0x00007f2f3862c8f2:   add    $0x10,%rsp
         │  0x00007f2f3862c8f6:   pop    %rbp
         │  0x00007f2f3862c8f7:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007f2f3862c8fe:   ja     0x00007f2f3862c91c
         │  0x00007f2f3862c904:   ret    
         ↘  0x00007f2f3862c905:   mov    $0xfffffff6,%esi
            0x00007f2f3862c90a:   mov    %r10d,%ebp
            0x00007f2f3862c90d:   xchg   %ax,%ax
            0x00007f2f3862c90f:   call   0x00007f2f37e6e580           ; ImmutableOopMap {}
....................................................................................................
 91.23%  <total for region 1>

....[Hottest Regions]...............................................................................
 91.23%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 892 (82 bytes) 
  3.60%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdater_jmhTest::fieldUpdater_avgt_jmhStub, version 919 (23 bytes) 
  0.26%   [kernel.kallsyms]  futex_wait_queue (9 bytes) 
  0.21%   [kernel.kallsyms]  schedule_tail (0 bytes) 
  0.21%   [kernel.kallsyms]  __rcu_read_unlock (0 bytes) 
  0.21%   [kernel.kallsyms]  __perf_event_task_sched_in (0 bytes) 
  0.21%   [kernel.kallsyms]  __entry_text_start (16 bytes) 
  0.10%   [kernel.kallsyms]  __task_pid_nr_ns (0 bytes) 
  0.10%                      <unknown> (0 bytes) 
  0.10%   [kernel.kallsyms]  __mutex_lock.constprop.0 (0 bytes) 
  0.10%   [kernel.kallsyms]  mutex_lock (30 bytes) 
  0.10%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable (16 bytes) 
  0.10%           libc.so.6  __printf_buffer (14 bytes) 
  0.05%   [kernel.kallsyms]  update_curr (0 bytes) 
  0.05%   [kernel.kallsyms]  dequeue_entity (0 bytes) 
  0.05%   [kernel.kallsyms]  pick_next_task_fair (0 bytes) 
  0.05%   [kernel.kallsyms]  update_irq_load_avg (0 bytes) 
  0.05%   [kernel.kallsyms]  exit_to_user_mode_prepare (0 bytes) 
  0.05%   [kernel.kallsyms]  ktime_get_coarse_real_ts64 (0 bytes) 
  0.05%   [kernel.kallsyms]  ktime_get_update_offsets_now (0 bytes) 
  3.03%  <...other 58 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 91.23%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdater, version 892 
  3.60%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdater_jmhTest::fieldUpdater_avgt_jmhStub, version 919 
  0.42%                      <unknown> 
  0.26%   [kernel.kallsyms]  futex_wait_queue 
  0.21%   [kernel.kallsyms]  schedule_tail 
  0.21%   [kernel.kallsyms]  __rcu_read_unlock 
  0.21%   [kernel.kallsyms]  __perf_event_task_sched_in 
  0.21%   [kernel.kallsyms]  __entry_text_start 
  0.16%           libc.so.6  __printf_buffer 
  0.16%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable 
  0.10%   [kernel.kallsyms]  __task_pid_nr_ns 
  0.10%   [kernel.kallsyms]  mutex_lock 
  0.10%   [kernel.kallsyms]  __mutex_lock.constprop.0 
  0.10%   [kernel.kallsyms]  pipe_write 
  0.05%   [kernel.kallsyms]  ktime_get_update_offsets_now 
  0.05%           libjvm.so  _ZN10decode_env19print_hook_commentsEPhb 
  0.05%   [kernel.kallsyms]  _raw_spin_lock_irq 
  0.05%           libjvm.so  _ZN13defaultStream4holdEl 
  0.05%   [kernel.kallsyms]  clear_page_erms 
  0.05%   [kernel.kallsyms]  mem_cgroup_handle_over_high 
  2.56%  <...other 49 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 94.83%         c2, level 4
  3.03%   [kernel.kallsyms]
  1.04%           libjvm.so
  0.42%                    
  0.42%           libc.so.6
  0.10%         interpreter
  0.05%      hsdis-amd64.so
  0.05%      perf-12528.map
....................................................................................................
 99.95%  <totals>



# JMH version: 1.34
# VM version: JDK 21, Java HotSpot(TM) 64-Bit Server VM, 21+35-LTS-2513
# VM invoker: /home/forked_franz/.sdkman/candidates/java/21-oracle/bin/java
# VM options: -javaagent:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/lib/idea_rt.jar=36413:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 200 ms each
# Measurement: 10 iterations, 200 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdaterUtil

# Run progress: 25.00% complete, ETA 00:00:46
# Fork: 1 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 6.442 ns/op
# Warmup Iteration   2: 5.884 ns/op
# Warmup Iteration   3: 6.120 ns/op
# Warmup Iteration   4: 5.799 ns/op
# Warmup Iteration   5: 5.798 ns/op
# Warmup Iteration   6: 5.784 ns/op
# Warmup Iteration   7: 5.866 ns/op
# Warmup Iteration   8: 5.804 ns/op
# Warmup Iteration   9: 5.772 ns/op
# Warmup Iteration  10: 5.770 ns/op
Iteration   1: 5.777 ns/op
Iteration   2: 5.759 ns/op
Iteration   3: 5.738 ns/op
Iteration   4: 5.757 ns/op
Iteration   5: 5.753 ns/op
Iteration   6: 5.792 ns/op
Iteration   7: 5.776 ns/op
Iteration   8: 5.766 ns/op
Iteration   9: 5.778 ns/op
Iteration  10: 5.789 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 

# Run progress: 37.50% complete, ETA 00:00:38
# Fork: 2 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 9.203 ns/op
# Warmup Iteration   2: 5.595 ns/op
# Warmup Iteration   3: 6.049 ns/op
# Warmup Iteration   4: 5.593 ns/op
# Warmup Iteration   5: 5.590 ns/op
# Warmup Iteration   6: 5.628 ns/op
# Warmup Iteration   7: 5.609 ns/op
# Warmup Iteration   8: 5.592 ns/op
# Warmup Iteration   9: 5.606 ns/op
# Warmup Iteration  10: 5.587 ns/op
Iteration   1: 5.654 ns/op
Iteration   2: 5.626 ns/op
Iteration   3: 5.726 ns/op
Iteration   4: 5.657 ns/op
Iteration   5: 5.644 ns/op
Iteration   6: 5.621 ns/op
Iteration   7: 5.600 ns/op
Iteration   8: 5.642 ns/op
Iteration   9: 5.591 ns/op
Iteration  10: 5.590 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 


Result "red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdaterUtil":
  5.702 ±(99.9%) 0.065 ns/op [Average]
  (min, avg, max) = (5.590, 5.702, 5.792), stdev = 0.075
  CI (99.9%): [5.637, 5.767] (assumes normal distribution)

Secondary result "red.hat.puzzles.concurrent.UpdaterUtilsCost.fieldUpdaterUtil:·asm":
PrintAssembly processed: 218754 total address lines.
Perf output processed (skipped 4.042 seconds):
 Column 1: cycles (1888 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (6 bytes) 

            0x00007fb50462bafd:   add    %r9,%rsi
            0x00007fb50462bb00:   mov    (%rsi,%r10,1),%r10
            0x00007fb50462bb04:   cmp    %r10,%rax
         ╭  0x00007fb50462bb07:   jne    0x00007fb50462bb2a           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
         │  0x00007fb50462bb09:   mov    0x10(%rdx),%r10              ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
         │  0x00007fb50462bb0d:   mov    %r8d,(%r11,%r10,1)
  1.64%  │  0x00007fb50462bb11:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
 63.67%  │  0x00007fb50462bb17:   add    $0x40,%rsp
         │  0x00007fb50462bb1b:   pop    %rbp
         │  0x00007fb50462bb1c:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007fb50462bb23:   ja     0x00007fb50462bbd0
         │  0x00007fb50462bb29:   ret    
         ↘  0x00007fb50462bb2a:   cmp    $0x20,%ebx
            0x00007fb50462bb2d:   jne    0x00007fb50462bb50
            0x00007fb50462bb2f:   cmp    %rax,%rsi
            0x00007fb50462bb32:   je     0x00007fb50462bb09
....................................................................................................
 65.31%  <total for region 1>

....[Hottest Region 2]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (32 bytes) 

           0x00007fb50462baa4:   movabs $0x7fb48b000000,%r11
           0x00007fb50462baae:   add    %r11,%r10
           0x00007fb50462bab1:   cmp    %r10,%rax
           0x00007fb50462bab4:   jne    0x00007fb503e65280           ;   {runtime_call ic_miss_stub}
           0x00007fb50462baba:   xchg   %ax,%ax
           0x00007fb50462babc:   nopl   0x0(%rax)
         [Verified Entry Point]
           0x00007fb50462bac0:   mov    %eax,-0x14000(%rsp)
           0x00007fb50462bac7:   push   %rbp
           0x00007fb50462bac8:   sub    $0x40,%rsp
  7.04%    0x00007fb50462bacc:   cmpl   $0x1,0x20(%r15)
           0x00007fb50462bad4:   jne    0x00007fb50462bbe6           ;*synchronization entry
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@-1 (line 63)
           0x00007fb50462bada:   mov    %ecx,%r8d
           0x00007fb50462badd:   mov    %rsi,%r11
           0x00007fb50462bae0:   mov    0xc(%rdx),%r10d              ; implicit exception: dispatches to 0x00007fb50462bb74
                                                                     ;*getfield cclass {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::accessCheck@1 (line 467)
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@2 (line 500)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
           0x00007fb50462bae4:   mov    0x10(%r12,%r10,8),%rax       ; implicit exception: dispatches to 0x00007fb50462bb8c
           0x00007fb50462bae9:   mov    0x14(%rax),%ebx              ; implicit exception: dispatches to 0x00007fb50462bba4
  7.47%    0x00007fb50462baec:   mov    0x8(%rsi),%r9d
           0x00007fb50462baf0:   movslq %ebx,%r10
           0x00007fb50462baf3:   movabs $0x7fb48b000000,%rsi
           0x00007fb50462bafd:   add    %r9,%rsi
           0x00007fb50462bb00:   mov    (%rsi,%r10,1),%r10
           0x00007fb50462bb04:   cmp    %r10,%rax
           0x00007fb50462bb07:   jne    0x00007fb50462bb2a           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
           0x00007fb50462bb09:   mov    0x10(%rdx),%r10              ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
....................................................................................................
 14.51%  <total for region 2>

....[Hottest Regions]...............................................................................
 65.31%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (6 bytes) 
 14.51%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (32 bytes) 
  4.77%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 894 (29 bytes) 
  4.40%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdaterUtil_jmhTest::fieldUpdaterUtil_avgt_jmhStub, version 920 (0 bytes) 
  3.13%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 894 (0 bytes) 
  2.28%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 894 (0 bytes) 
  1.32%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 894 (0 bytes) 
  0.69%     [kernel.kallsyms]  finish_task_switch.isra.0 (43 bytes) 
  0.42%     [kernel.kallsyms]  _raw_spin_unlock (20 bytes) 
  0.21%                        <unknown> (0 bytes) 
  0.21%             libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable (36 bytes) 
  0.11%     [kernel.kallsyms]  __update_load_avg_cfs_rq (21 bytes) 
  0.11%     [kernel.kallsyms]  fput (0 bytes) 
  0.11%     [kernel.kallsyms]  __fget_light (0 bytes) 
  0.11%     [kernel.kallsyms]  sync_regs (22 bytes) 
  0.05%     [kernel.kallsyms]  restore_fpregs_from_fpstate (0 bytes) 
  0.05%     [kernel.kallsyms]  arch_scale_freq_tick (0 bytes) 
  0.05%     [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.05%     [kernel.kallsyms]  migrate_task_to (0 bytes) 
  0.05%     [kernel.kallsyms]  irqtime_account_irq (0 bytes) 
  2.01%  <...other 38 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 79.82%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 
 11.49%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 894 
  4.40%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdaterUtil_jmhTest::fieldUpdaterUtil_avgt_jmhStub, version 920 
  0.74%     [kernel.kallsyms]  finish_task_switch.isra.0 
  0.42%     [kernel.kallsyms]  _raw_spin_unlock 
  0.32%                        <unknown> 
  0.21%             libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable 
  0.11%     [kernel.kallsyms]  fput 
  0.11%     [kernel.kallsyms]  __update_load_avg_cfs_rq 
  0.11%     [kernel.kallsyms]  __fget_light 
  0.11%     [kernel.kallsyms]  sync_regs 
  0.05%             libc.so.6  clock_gettime@@GLIBC_2.17 
  0.05%             libc.so.6  _int_malloc 
  0.05%             libjvm.so  _ZN14MethodLiveness10BasicBlock23compute_gen_kill_singleEP16ciBytecodeStream 
  0.05%             libc.so.6  __GI___pthread_disable_asynccancel 
  0.05%     [kernel.kallsyms]  vfs_write 
  0.05%             libc.so.6  _IO_file_xsputn@@GLIBC_2.2.5 
  0.05%     [kernel.kallsyms]  mutex_lock 
  0.05%     [kernel.kallsyms]  avc_has_perm_noaudit 
  0.05%             libjvm.so  _ZN7Monitor28wait_without_safepoint_checkEm 
  1.64%  <...other 31 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 95.71%           c2, level 4
  2.75%     [kernel.kallsyms]
  0.64%             libjvm.so
  0.37%             libc.so.6
  0.32%                      
  0.05%        hsdis-amd64.so
  0.05%           interpreter
  0.05%  ld-linux-x86-64.so.2
....................................................................................................
 99.95%  <totals>

PrintAssembly processed: 219086 total address lines.
Perf output processed (skipped 4.076 seconds):
 Column 1: cycles (1866 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (10 bytes) 

             0x00007fdfa862ce7d:   add    %r9,%rsi
             0x00007fdfa862ce80:   mov    (%rsi,%r10,1),%r10
             0x00007fdfa862ce84:   cmp    %r10,%rax
         ╭   0x00007fdfa862ce87:   jne    0x00007fdfa862ceaa           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                             ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                             ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
         │↗  0x00007fdfa862ce89:   mov    0x10(%rdx),%r10              ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
         ││                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
         ││                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
         ││  0x00007fdfa862ce8d:   mov    %r8d,(%r11,%r10,1)
  1.13%  ││  0x00007fdfa862ce91:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         ││                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         ││                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
 61.36%  ││  0x00007fdfa862ce97:   add    $0x40,%rsp
  0.05%  ││  0x00007fdfa862ce9b:   pop    %rbp
         ││  0x00007fdfa862ce9c:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         ││  0x00007fdfa862cea3:   ja     0x00007fdfa862cf50
         ││  0x00007fdfa862cea9:   ret    
         ↘│  0x00007fdfa862ceaa:   cmp    $0x20,%ebx
          │  0x00007fdfa862cead:   jne    0x00007fdfa862ced0
          │  0x00007fdfa862ceaf:   cmp    %rax,%rsi
          ╰  0x00007fdfa862ceb2:   je     0x00007fdfa862ce89
             0x00007fdfa862ceb4:   mov    0x28(%rsi),%rdi
             0x00007fdfa862ceb8:   mov    (%rdi),%ecx
             0x00007fdfa862ceba:   add    $0x8,%rdi
....................................................................................................
 62.54%  <total for region 1>

....[Hottest Region 2]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (32 bytes) 

           0x00007fdfa862ce24:   movabs $0x7fdf2f000000,%r11
           0x00007fdfa862ce2e:   add    %r11,%r10
           0x00007fdfa862ce31:   cmp    %r10,%rax
           0x00007fdfa862ce34:   jne    0x00007fdfa7e65280           ;   {runtime_call ic_miss_stub}
           0x00007fdfa862ce3a:   xchg   %ax,%ax
           0x00007fdfa862ce3c:   nopl   0x0(%rax)
         [Verified Entry Point]
           0x00007fdfa862ce40:   mov    %eax,-0x14000(%rsp)
           0x00007fdfa862ce47:   push   %rbp
           0x00007fdfa862ce48:   sub    $0x40,%rsp
  7.40%    0x00007fdfa862ce4c:   cmpl   $0x1,0x20(%r15)
           0x00007fdfa862ce54:   jne    0x00007fdfa862cf66           ;*synchronization entry
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@-1 (line 63)
           0x00007fdfa862ce5a:   mov    %ecx,%r8d
           0x00007fdfa862ce5d:   mov    %rsi,%r11
           0x00007fdfa862ce60:   mov    0xc(%rdx),%r10d              ; implicit exception: dispatches to 0x00007fdfa862cef4
                                                                     ;*getfield cclass {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::accessCheck@1 (line 467)
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@2 (line 500)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
           0x00007fdfa862ce64:   mov    0x10(%r12,%r10,8),%rax       ; implicit exception: dispatches to 0x00007fdfa862cf0c
  0.05%    0x00007fdfa862ce69:   mov    0x14(%rax),%ebx              ; implicit exception: dispatches to 0x00007fdfa862cf24
  4.93%    0x00007fdfa862ce6c:   mov    0x8(%rsi),%r9d
           0x00007fdfa862ce70:   movslq %ebx,%r10
           0x00007fdfa862ce73:   movabs $0x7fdf2f000000,%rsi
           0x00007fdfa862ce7d:   add    %r9,%rsi
           0x00007fdfa862ce80:   mov    (%rsi,%r10,1),%r10
           0x00007fdfa862ce84:   cmp    %r10,%rax
           0x00007fdfa862ce87:   jne    0x00007fdfa862ceaa           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater@3 (line 63)
           0x00007fdfa862ce89:   mov    0x10(%rdx),%r10              ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
....................................................................................................
 12.38%  <total for region 2>

....[Hottest Regions]...............................................................................
 62.54%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (10 bytes) 
 12.38%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 (32 bytes) 
  8.84%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 892 (29 bytes) 
  5.31%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 892 (0 bytes) 
  2.79%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 892 (0 bytes) 
  2.68%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 892 (0 bytes) 
  1.88%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdaterUtil_jmhTest::fieldUpdaterUtil_avgt_jmhStub, version 918 (0 bytes) 
  0.43%   [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.27%   [kernel.kallsyms]  finish_task_switch.isra.0 (6 bytes) 
  0.21%   [kernel.kallsyms]  calculate_sigpending (0 bytes) 
  0.11%   [kernel.kallsyms]  __entry_text_start (16 bytes) 
  0.11%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable (8 bytes) 
  0.05%   [kernel.kallsyms]  dequeue_task_fair (0 bytes) 
  0.05%   [kernel.kallsyms]  exit_to_user_mode_prepare (0 bytes) 
  0.05%   [kernel.kallsyms]  futex_wait_queue (0 bytes) 
  0.05%   [kernel.kallsyms]  generic_file_write_iter (0 bytes) 
  0.05%   [kernel.kallsyms]  handle_mm_fault (0 bytes) 
  0.05%   [kernel.kallsyms]  mem_cgroup_handle_over_high (0 bytes) 
  0.05%   [kernel.kallsyms]  __x64_sys_write (0 bytes) 
  0.05%   [kernel.kallsyms]  pipe_write (0 bytes) 
  1.98%  <...other 37 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 74.92%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaFUpdater, version 891 
 19.61%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::fieldUpdaterUtil, version 892 
  1.88%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_fieldUpdaterUtil_jmhTest::fieldUpdaterUtil_avgt_jmhStub, version 918 
  0.70%   [kernel.kallsyms]  finish_task_switch.isra.0 
  0.21%                      <unknown> 
  0.21%   [kernel.kallsyms]  calculate_sigpending 
  0.11%         interpreter  invokeinterface  185 invokeinterface  
  0.11%   [kernel.kallsyms]  __entry_text_start 
  0.11%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable 
  0.05%         interpreter  return entry points  
  0.05%           libc.so.6  __printf_buffer 
  0.05%   [kernel.kallsyms]  futex_wait_queue 
  0.05%           libjvm.so  _ZN12ConstantPool13klass_at_implERK18constantPoolHandleiP10JavaThread 
  0.05%           libjvm.so  _ZN12LinkResolver39linktime_resolve_virtual_method_or_nullERK8LinkInfo 
  0.05%   [kernel.kallsyms]  __mutex_lock.constprop.0 
  0.05%           libjvm.so  _ZN13defaultStream4holdEl 
  0.05%           libc.so.6  _IO_fwrite 
  0.05%   [kernel.kallsyms]  mem_cgroup_handle_over_high 
  0.05%   [kernel.kallsyms]  generic_file_write_iter 
  0.05%   [kernel.kallsyms]  selinux_file_permission 
  1.50%  <...other 28 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 96.41%         c2, level 4
  2.09%   [kernel.kallsyms]
  0.48%           libjvm.so
  0.32%         interpreter
  0.32%           libc.so.6
  0.21%                    
  0.05%      hsdis-amd64.so
  0.05%        amdgpu.ko.xz
....................................................................................................
 99.95%  <totals>



# JMH version: 1.34
# VM version: JDK 21, Java HotSpot(TM) 64-Bit Server VM, 21+35-LTS-2513
# VM invoker: /home/forked_franz/.sdkman/candidates/java/21-oracle/bin/java
# VM options: -javaagent:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/lib/idea_rt.jar=36413:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 200 ms each
# Measurement: 10 iterations, 200 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: red.hat.puzzles.concurrent.UpdaterUtilsCost.updater

# Run progress: 50.00% complete, ETA 00:00:30
# Fork: 1 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 4.415 ns/op
# Warmup Iteration   2: 3.602 ns/op
# Warmup Iteration   3: 4.314 ns/op
# Warmup Iteration   4: 3.626 ns/op
# Warmup Iteration   5: 3.623 ns/op
# Warmup Iteration   6: 3.556 ns/op
# Warmup Iteration   7: 3.565 ns/op
# Warmup Iteration   8: 3.619 ns/op
# Warmup Iteration   9: 3.614 ns/op
# Warmup Iteration  10: 3.563 ns/op
Iteration   1: 3.586 ns/op
Iteration   2: 3.646 ns/op
Iteration   3: 3.598 ns/op
Iteration   4: 3.620 ns/op
Iteration   5: 3.648 ns/op
Iteration   6: 3.657 ns/op
Iteration   7: 3.616 ns/op
Iteration   8: 3.597 ns/op
Iteration   9: 3.648 ns/op
Iteration  10: 3.596 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 

# Run progress: 62.50% complete, ETA 00:00:22
# Fork: 2 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 4.489 ns/op
# Warmup Iteration   2: 3.446 ns/op
# Warmup Iteration   3: 4.038 ns/op
# Warmup Iteration   4: 3.499 ns/op
# Warmup Iteration   5: 3.478 ns/op
# Warmup Iteration   6: 3.471 ns/op
# Warmup Iteration   7: 3.457 ns/op
# Warmup Iteration   8: 3.541 ns/op
# Warmup Iteration   9: 3.589 ns/op
# Warmup Iteration  10: 3.567 ns/op
Iteration   1: 3.454 ns/op
Iteration   2: 3.487 ns/op
Iteration   3: 3.451 ns/op
Iteration   4: 3.446 ns/op
Iteration   5: 3.504 ns/op
Iteration   6: 3.465 ns/op
Iteration   7: 3.489 ns/op
Iteration   8: 4.059 ns/op
Iteration   9: 3.575 ns/op
Iteration  10: 3.522 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 


Result "red.hat.puzzles.concurrent.UpdaterUtilsCost.updater":
  3.583 ±(99.9%) 0.117 ns/op [Average]
  (min, avg, max) = (3.446, 3.583, 4.059), stdev = 0.134
  CI (99.9%): [3.467, 3.700] (assumes normal distribution)

Secondary result "red.hat.puzzles.concurrent.UpdaterUtilsCost.updater:·asm":
PrintAssembly processed: 219622 total address lines.
Perf output processed (skipped 4.078 seconds):
 Column 1: cycles (1941 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 (78 bytes) 

           # parm0:    rdx:rdx   = &apos;org/openjdk/jmh/infra/Blackhole&apos;
           #           [sp+0x20]  (sp of caller)
           0x00007f483862d700:   mov    0x8(%rsi),%r10d
           0x00007f483862d704:   movabs $0x7f47bf000000,%r11
           0x00007f483862d70e:   add    %r11,%r10
           0x00007f483862d711:   cmp    %r10,%rax
           0x00007f483862d714:   jne    0x00007f4837e65280           ;   {runtime_call ic_miss_stub}
           0x00007f483862d71a:   xchg   %ax,%ax
           0x00007f483862d71c:   nopl   0x0(%rax)
         [Verified Entry Point]
  0.52%    0x00007f483862d720:   mov    %eax,-0x14000(%rsp)
           0x00007f483862d727:   push   %rbp
           0x00007f483862d728:   sub    $0x10,%rsp
           0x00007f483862d72c:   cmpl   $0x1,0x20(%r15)
           0x00007f483862d734:   jne    0x00007f483862d7b2
  1.24%    0x00007f483862d73a:   movl   $0x1,0xc(%rsi)
  0.57%    0x00007f483862d741:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@5 (line 101)
  6.34%    0x00007f483862d747:   mov    0xc(%rsi),%r10d              ;*getfield field0 {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@10 (line 102)
  0.46%    0x00007f483862d74b:   test   %rdx,%rdx
           0x00007f483862d74e:   je     0x00007f483862d785
           0x00007f483862d750:   movl   $0x1,0x10(%rsi)
           0x00007f483862d757:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@21 (line 103)
 40.29%    0x00007f483862d75d:   mov    0x10(%rsi),%r11d
           0x00007f483862d761:   movl   $0x1,0x14(%rsi)
           0x00007f483862d768:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@37 (line 105)
 41.42%    0x00007f483862d76e:   mov    0x14(%rsi),%r11d             ;*invokestatic consumeCompiler {reexecute=0 rethrow=0 return_oop=0}
                                                                     ; - org.openjdk.jmh.infra.Blackhole::consume@7 (line 380)
                                                                     ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@45 (line 106)
           0x00007f483862d772:   add    $0x10,%rsp
           0x00007f483862d776:   pop    %rbp
           0x00007f483862d777:   cmp    0x450(%r15),%rsp             ;   {poll_return}
           0x00007f483862d77e:   ja     0x00007f483862d79c
           0x00007f483862d784:   ret    
....................................................................................................
 90.83%  <total for region 1>

....[Hottest Regions]...............................................................................
 90.83%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 (78 bytes) 
  2.52%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub, version 927 (23 bytes) 
  1.13%     [kernel.kallsyms]  finish_task_switch.isra.0 (43 bytes) 
  0.46%     [kernel.kallsyms]  __perf_event_task_sched_in (32 bytes) 
  0.31%     [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.31%     [kernel.kallsyms]  _raw_spin_lock_irq (23 bytes) 
  0.21%                        <unknown> (0 bytes) 
  0.21%     [kernel.kallsyms]  __rcu_read_unlock (0 bytes) 
  0.21%     [kernel.kallsyms]  __schedule (0 bytes) 
  0.21%     [kernel.kallsyms]  _raw_spin_unlock (0 bytes) 
  0.21%             libc.so.6  syscall (8 bytes) 
  0.15%     [kernel.kallsyms]  mutex_lock (30 bytes) 
  0.15%     [kernel.kallsyms]  __entry_text_start (16 bytes) 
  0.10%     [kernel.kallsyms]  exit_to_user_mode_prepare (0 bytes) 
  0.10%     [kernel.kallsyms]  smp_call_function_many_cond (0 bytes) 
  0.10%     [kernel.kallsyms]  vfs_write (0 bytes) 
  0.10%     [kernel.kallsyms]  avc_has_perm_noaudit (11 bytes) 
  0.10%     [kernel.kallsyms]  __get_user_8 (0 bytes) 
  0.10%           interpreter  method entry point (kind = zerolocals)  (0 bytes) 
  0.05%     [kernel.kallsyms]  __default_send_IPI_dest_field (0 bytes) 
  2.37%  <...other 46 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 90.83%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 
  2.52%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub, version 927 
  1.44%     [kernel.kallsyms]  finish_task_switch.isra.0 
  0.46%     [kernel.kallsyms]  __perf_event_task_sched_in 
  0.31%     [kernel.kallsyms]  _raw_spin_lock_irq 
  0.31%                        <unknown> 
  0.21%     [kernel.kallsyms]  __schedule 
  0.21%     [kernel.kallsyms]  __rcu_read_unlock 
  0.21%     [kernel.kallsyms]  _raw_spin_unlock 
  0.21%             libc.so.6  syscall 
  0.15%     [kernel.kallsyms]  mutex_lock 
  0.15%     [kernel.kallsyms]  __entry_text_start 
  0.10%     [kernel.kallsyms]  vfs_write 
  0.10%     [kernel.kallsyms]  avc_has_perm_noaudit 
  0.10%     [kernel.kallsyms]  __get_user_8 
  0.10%           interpreter  method entry point (kind = zerolocals)  
  0.10%           interpreter  invokevirtual  182 invokevirtual  
  0.10%     [kernel.kallsyms]  exit_to_user_mode_prepare 
  0.10%     [kernel.kallsyms]  smp_call_function_many_cond 
  0.05%     [kernel.kallsyms]  schedule_tail 
  2.16%  <...other 42 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 93.35%           c2, level 4
  5.10%     [kernel.kallsyms]
  0.46%             libjvm.so
  0.36%             libc.so.6
  0.31%                      
  0.21%           interpreter
  0.10%        hsdis-amd64.so
  0.05%  ld-linux-x86-64.so.2
....................................................................................................
 99.95%  <totals>

PrintAssembly processed: 219899 total address lines.
Perf output processed (skipped 3.997 seconds):
 Column 1: cycles (1917 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 (82 bytes) 

            # parm0:    rdx:rdx   = &apos;org/openjdk/jmh/infra/Blackhole&apos;
            #           [sp+0x20]  (sp of caller)
            0x00007f03d862db00:   mov    0x8(%rsi),%r10d
            0x00007f03d862db04:   movabs $0x7f035f000000,%r11
            0x00007f03d862db0e:   add    %r11,%r10
            0x00007f03d862db11:   cmp    %r10,%rax
            0x00007f03d862db14:   jne    0x00007f03d7e65280           ;   {runtime_call ic_miss_stub}
            0x00007f03d862db1a:   xchg   %ax,%ax
            0x00007f03d862db1c:   nopl   0x0(%rax)
          [Verified Entry Point]
  4.64%     0x00007f03d862db20:   mov    %eax,-0x14000(%rsp)
            0x00007f03d862db27:   push   %rbp
            0x00007f03d862db28:   sub    $0x10,%rsp
            0x00007f03d862db2c:   cmpl   $0x1,0x20(%r15)
  0.37%     0x00007f03d862db34:   jne    0x00007f03d862dbb2
  0.52%     0x00007f03d862db3a:   movl   $0x1,0xc(%rsi)
  1.15%     0x00007f03d862db41:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@5 (line 101)
  5.43%     0x00007f03d862db47:   mov    0xc(%rsi),%r10d              ;*getfield field0 {reexecute=0 rethrow=0 return_oop=0}
                                                                      ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@10 (line 102)
            0x00007f03d862db4b:   test   %rdx,%rdx
         ╭  0x00007f03d862db4e:   je     0x00007f03d862db85
         │  0x00007f03d862db50:   movl   $0x1,0x10(%rsi)
         │  0x00007f03d862db57:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@21 (line 103)
 40.38%  │  0x00007f03d862db5d:   mov    0x10(%rsi),%r11d
  0.57%  │  0x00007f03d862db61:   movl   $0x1,0x14(%rsi)
         │  0x00007f03d862db68:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@37 (line 105)
 26.34%  │  0x00007f03d862db6e:   mov    0x14(%rsi),%r11d             ;*invokestatic consumeCompiler {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - org.openjdk.jmh.infra.Blackhole::consume@7 (line 380)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::updater@45 (line 106)
  0.16%  │  0x00007f03d862db72:   add    $0x10,%rsp
         │  0x00007f03d862db76:   pop    %rbp
         │  0x00007f03d862db77:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007f03d862db7e:   ja     0x00007f03d862db9c
         │  0x00007f03d862db84:   ret    
         ↘  0x00007f03d862db85:   mov    $0xfffffff6,%esi
            0x00007f03d862db8a:   mov    %r10d,%ebp
            0x00007f03d862db8d:   xchg   %ax,%ax
            0x00007f03d862db8f:   call   0x00007f03d7e6e580           ; ImmutableOopMap {}
....................................................................................................
 79.55%  <total for region 1>

....[Hottest Region 2]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub, version 926 (31 bytes) 

                                                                       ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0}
                                                                       ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@27 (line 192)
             0x00007f03d86304b8:   mov    $0x1,%ebp
             0x00007f03d86304bd:   test   %r10d,%r10d
         ╭   0x00007f03d86304c0:   jne    0x00007f03d8630507           ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         │                                                             ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@30 (line 192)
         │   0x00007f03d86304c2:   nopl   0x0(%rax)
         │   0x00007f03d86304c9:   nopl   0x0(%rax)                    ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
         │                                                             ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@33 (line 193)
         │↗  0x00007f03d86304d0:   mov    0x40(%rsp),%rsi
  1.30%  ││  0x00007f03d86304d5:   mov    0x38(%rsp),%rdx
  1.62%  ││  0x00007f03d86304da:   nop
         ││  0x00007f03d86304db:   call   0x00007f03d7e65780           ; ImmutableOopMap {[0]=Oop [48]=Oop [56]=Oop [64]=Oop }
         ││                                                            ;*invokevirtual updater {reexecute=0 rethrow=0 return_oop=0}
         ││                                                            ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@17 (line 190)
         ││                                                            ;   {optimized virtual_call}
         ││  0x00007f03d86304e0:   nopl   0x1000250(%rax,%rax,1)       ;*invokevirtual updater {reexecute=0 rethrow=0 return_oop=0}
         ││                                                            ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@17 (line 190)
         ││                                                            ;   {other}
  2.66%  ││  0x00007f03d86304e8:   mov    (%rsp),%r10
  7.98%  ││  0x00007f03d86304ec:   movzbl 0x94(%r10),%r10d             ;*ifeq {reexecute=0 rethrow=0 return_oop=0}
         ││                                                            ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@30 (line 192)
  0.37%  ││  0x00007f03d86304f4:   mov    0x458(%r15),%r11
         ││  0x00007f03d86304fb:   add    $0x1,%rbp                    ; ImmutableOopMap {[0]=Oop [48]=Oop [56]=Oop [64]=Oop }
         ││                                                            ;*ifeq {reexecute=1 rethrow=0 return_oop=0}
         ││                                                            ; - (reexecute) red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@30 (line 192)
         ││  0x00007f03d86304ff:   test   %eax,(%r11)                  ;   {poll}
         ││  0x00007f03d8630502:   test   %r10d,%r10d
         │╰  0x00007f03d8630505:   je     0x00007f03d86304d0           ;*aload_1 {reexecute=0 rethrow=0 return_oop=0}
         │                                                             ; - red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub@33 (line 193)
         ↘   0x00007f03d8630507:   movabs $0x7f03ee6c8b90,%r10
             0x00007f03d8630511:   call   *%r10
....................................................................................................
 13.93%  <total for region 2>

....[Hottest Regions]...............................................................................
 79.55%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 (82 bytes) 
 13.93%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub, version 926 (31 bytes) 
  1.51%     [kernel.kallsyms]  finish_task_switch.isra.0 (43 bytes) 
  0.21%     [kernel.kallsyms]  futex_wait_queue (0 bytes) 
  0.21%     [kernel.kallsyms]  __perf_event_task_sched_in (0 bytes) 
  0.16%     [kernel.kallsyms]  entry_SYSCALL_64_safe_stack (22 bytes) 
  0.16%             libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable (46 bytes) 
  0.16%             libc.so.6  syscall (7 bytes) 
  0.10%     [kernel.kallsyms]  __wake_up_common_lock (15 bytes) 
  0.10%     [kernel.kallsyms]  pipe_write (27 bytes) 
  0.10%     [kernel.kallsyms]  _raw_spin_unlock_irq (0 bytes) 
  0.10%             libjvm.so  _ZN13RelocIterator10initializeEP14CompiledMethodPhS2_ (2 bytes) 
  0.10%             libc.so.6  __strlen_evex (6 bytes) 
  0.10%  ld-linux-x86-64.so.2  _dl_update_slotinfo (7 bytes) 
  0.05%     [kernel.kallsyms]  __task_pid_nr_ns (0 bytes) 
  0.05%     [kernel.kallsyms]  schedule_tail (0 bytes) 
  0.05%     [kernel.kallsyms]  update_cfs_group (0 bytes) 
  0.05%     [kernel.kallsyms]  __update_load_avg_se (0 bytes) 
  0.05%     [kernel.kallsyms]  exit_to_user_mode_prepare (0 bytes) 
  0.05%     [kernel.kallsyms]  smp_call_function_many_cond (0 bytes) 
  3.13%  <...other 60 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 79.55%           c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updater, version 900 
 13.93%           c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updater_jmhTest::updater_avgt_jmhStub, version 926 
  1.51%     [kernel.kallsyms]  finish_task_switch.isra.0 
  0.26%                        <unknown> 
  0.21%     [kernel.kallsyms]  __perf_event_task_sched_in 
  0.21%     [kernel.kallsyms]  futex_wait_queue 
  0.16%             libc.so.6  syscall 
  0.16%     [kernel.kallsyms]  entry_SYSCALL_64_safe_stack 
  0.16%             libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable 
  0.10%     [kernel.kallsyms]  _raw_spin_unlock_irq 
  0.10%  ld-linux-x86-64.so.2  _dl_update_slotinfo 
  0.10%             libc.so.6  __strlen_evex 
  0.10%             libjvm.so  _ZN13RelocIterator10initializeEP14CompiledMethodPhS2_ 
  0.10%     [kernel.kallsyms]  __fget_light 
  0.10%     [kernel.kallsyms]  pipe_write 
  0.10%     [kernel.kallsyms]  __wake_up_common_lock 
  0.05%     [kernel.kallsyms]  schedule_tail 
  0.05%             libc.so.6  __printf_buffer 
  0.05%     [kernel.kallsyms]  cap_vm_enough_memory 
  0.05%     [kernel.kallsyms]  _raw_spin_lock_irq 
  2.87%  <...other 55 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 93.48%           c2, level 4
  4.12%     [kernel.kallsyms]
  0.94%             libjvm.so
  0.83%             libc.so.6
  0.26%                      
  0.16%           interpreter
  0.16%  ld-linux-x86-64.so.2
....................................................................................................
 99.95%  <totals>



# JMH version: 1.34
# VM version: JDK 21, Java HotSpot(TM) 64-Bit Server VM, 21+35-LTS-2513
# VM invoker: /home/forked_franz/.sdkman/candidates/java/21-oracle/bin/java
# VM options: -javaagent:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/lib/idea_rt.jar=36413:/home/forked_franz/.local/share/JetBrains/Toolbox/apps/intellij-idea-ultimate/bin -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8
# Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable)
# Warmup: 10 iterations, 200 ms each
# Measurement: 10 iterations, 200 ms each
# Timeout: 10 min per iteration
# Threads: 1 thread, will synchronize iterations
# Benchmark mode: Average time, time/op
# Benchmark: red.hat.puzzles.concurrent.UpdaterUtilsCost.updaterUtil

# Run progress: 75.00% complete, ETA 00:00:15
# Fork: 1 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 14.222 ns/op
# Warmup Iteration   2: 12.013 ns/op
# Warmup Iteration   3: 12.391 ns/op
# Warmup Iteration   4: 12.084 ns/op
# Warmup Iteration   5: 10.732 ns/op
# Warmup Iteration   6: 10.322 ns/op
# Warmup Iteration   7: 10.839 ns/op
# Warmup Iteration   8: 10.988 ns/op
# Warmup Iteration   9: 10.316 ns/op
# Warmup Iteration  10: 10.321 ns/op
Iteration   1: 11.227 ns/op
Iteration   2: 10.397 ns/op
Iteration   3: 10.718 ns/op
Iteration   4: 11.391 ns/op
Iteration   5: 11.382 ns/op
Iteration   6: 11.391 ns/op
Iteration   7: 11.389 ns/op
Iteration   8: 11.379 ns/op
Iteration   9: 10.275 ns/op
Iteration  10: 11.410 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 

# Run progress: 87.50% complete, ETA 00:00:07
# Fork: 2 of 2
# Preparing profilers: LinuxPerfAsmProfiler 
# Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console
# Warmup Iteration   1: 12.904 ns/op
# Warmup Iteration   2: 11.972 ns/op
# Warmup Iteration   3: 12.157 ns/op
# Warmup Iteration   4: 11.804 ns/op
# Warmup Iteration   5: 11.428 ns/op
# Warmup Iteration   6: 11.292 ns/op
# Warmup Iteration   7: 10.799 ns/op
# Warmup Iteration   8: 10.847 ns/op
# Warmup Iteration   9: 10.912 ns/op
# Warmup Iteration  10: 10.844 ns/op
Iteration   1: 10.827 ns/op
Iteration   2: 10.802 ns/op
Iteration   3: 10.811 ns/op
Iteration   4: 10.800 ns/op
Iteration   5: 10.808 ns/op
Iteration   6: 11.111 ns/op
Iteration   7: 10.816 ns/op
Iteration   8: 10.818 ns/op
Iteration   9: 10.755 ns/op
Iteration  10: 11.335 ns/op
# Processing profiler results: LinuxPerfAsmProfiler 


Result "red.hat.puzzles.concurrent.UpdaterUtilsCost.updaterUtil":
  10.992 ±(99.9%) 0.306 ns/op [Average]
  (min, avg, max) = (10.275, 10.992, 11.410), stdev = 0.353
  CI (99.9%): [10.686, 11.299] (assumes normal distribution)

Secondary result "red.hat.puzzles.concurrent.UpdaterUtilsCost.updaterUtil:·asm":
PrintAssembly processed: 219562 total address lines.
Perf output processed (skipped 4.201 seconds):
 Column 1: cycles (1898 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 (10 bytes) 

            0x00007fbac462bd33:   cmp    %r11,%rax
         ╭  0x00007fbac462bd36:   jne    0x00007fbac462bd5e           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
         │  0x00007fbac462bd38:   mov    0x10(%r9),%r10               ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
         │  0x00007fbac462bd3c:   mov    0x8(%rsp),%r11d
  2.90%  │  0x00007fbac462bd41:   mov    %r11d,(%rbx,%r10,1)
  0.95%  │  0x00007fbac462bd45:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
 61.64%  │  0x00007fbac462bd4b:   add    $0x40,%rsp
         │  0x00007fbac462bd4f:   pop    %rbp
         │  0x00007fbac462bd50:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007fbac462bd57:   ja     0x00007fbac462be20
         │  0x00007fbac462bd5d:   ret    
         ↘  0x00007fbac462bd5e:   cmp    $0x20,%r10d
            0x00007fbac462bd62:   jne    0x00007fbac462bd85
            0x00007fbac462bd64:   cmp    %rax,%rsi
....................................................................................................
 65.49%  <total for region 1>

....[Hottest Regions]...............................................................................
 65.49%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 (10 bytes) 
  4.06%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 (4 bytes) 
  3.95%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 (0 bytes) 
  3.32%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updaterUtil_jmhTest::updaterUtil_avgt_jmhStub, version 927 (14 bytes) 
  2.74%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 898 (0 bytes) 
  2.63%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 (4 bytes) 
  2.63%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 901 (0 bytes) 
  2.37%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 901 (40 bytes) 
  2.16%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 898 (0 bytes) 
  1.48%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 901 (4 bytes) 
  1.32%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 899 (7 bytes) 
  1.11%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 899 (0 bytes) 
  1.00%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 900 (0 bytes) 
  0.95%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 900 (0 bytes) 
  0.47%   [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.42%                      <unknown> (0 bytes) 
  0.26%   [kernel.kallsyms]  __perf_event_task_sched_in (0 bytes) 
  0.21%   [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.21%                      <unknown> (0 bytes) 
  0.16%   [kernel.kallsyms]  _raw_spin_lock (0 bytes) 
  3.00%  <...other 53 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 76.13%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 896 
  6.48%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 901 
  4.90%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 898 
  3.32%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updaterUtil_jmhTest::updaterUtil_avgt_jmhStub, version 927 
  2.42%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 899 
  1.95%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 900 
  0.79%                      <unknown> 
  0.68%   [kernel.kallsyms]  finish_task_switch.isra.0 
  0.26%   [kernel.kallsyms]  __perf_event_task_sched_in 
  0.16%   [kernel.kallsyms]  _raw_spin_lock 
  0.11%   [kernel.kallsyms]  _raw_spin_unlock_irq 
  0.11%           libc.so.6  syscall 
  0.11%   [kernel.kallsyms]  sysvec_call_function 
  0.11%   [kernel.kallsyms]  asm_sysvec_apic_timer_interrupt 
  0.05%           libc.so.6  __printf_buffer 
  0.05%         c1, level 3  java.io.ObjectOutputStream::writeObject0, version 950 
  0.05%           libc.so.6  _IO_fflush 
  0.05%   [kernel.kallsyms]  PageHeadHuge 
  0.05%   [kernel.kallsyms]  selinux_file_permission 
  0.05%   [kernel.kallsyms]  __get_task_ioprio 
  2.11%  <...other 40 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 95.21%         c2, level 4
  2.85%   [kernel.kallsyms]
  0.79%                    
  0.47%           libjvm.so
  0.42%           libc.so.6
  0.11%         interpreter
  0.05%      hsdis-amd64.so
  0.05%         c1, level 3
....................................................................................................
 99.95%  <totals>

PrintAssembly processed: 219596 total address lines.
Perf output processed (skipped 3.985 seconds):
 Column 1: cycles (1921 events)

Hottest code regions (>10.00% "cycles" events):

....[Hottest Region 1]..............................................................................
c2, level 4, red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 894 (10 bytes) 

            0x00007f6e1862bcb3:   cmp    %r11,%rax
         ╭  0x00007f6e1862bcb6:   jne    0x00007f6e1862bcde           ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
         │  0x00007f6e1862bcb8:   mov    0x10(%r9),%r10               ;*getfield offset {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@10 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
         │  0x00007f6e1862bcbc:   mov    0x8(%rsp),%r11d
  2.71%  │  0x00007f6e1862bcc1:   mov    %r11d,(%rbx,%r10,1)
  2.60%  │  0x00007f6e1862bcc5:   lock addl $0x0,-0x40(%rsp)          ;*invokevirtual putIntVolatile {reexecute=0 rethrow=0 return_oop=0}
         │                                                            ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::set@14 (line 501)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost$Updater::set@6 (line 34)
         │                                                            ; - red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater@3 (line 68)
 59.50%  │  0x00007f6e1862bccb:   add    $0x40,%rsp
         │  0x00007f6e1862bccf:   pop    %rbp
         │  0x00007f6e1862bcd0:   cmp    0x450(%r15),%rsp             ;   {poll_return}
         │  0x00007f6e1862bcd7:   ja     0x00007f6e1862bda0
         │  0x00007f6e1862bcdd:   ret    
         ↘  0x00007f6e1862bcde:   cmp    $0x20,%r10d
            0x00007f6e1862bce2:   jne    0x00007f6e1862bd05
            0x00007f6e1862bce4:   cmp    %rax,%rsi
....................................................................................................
 64.81%  <total for region 1>

....[Hottest Regions]...............................................................................
 64.81%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 894 (10 bytes) 
  8.07%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 894 (45 bytes) 
  4.58%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updaterUtil_jmhTest::updaterUtil_avgt_jmhStub, version 926 (14 bytes) 
  3.96%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 894 (4 bytes) 
  2.39%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 900 (4 bytes) 
  2.13%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 900 (6 bytes) 
  1.93%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 899 (0 bytes) 
  1.46%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 900 (4 bytes) 
  1.41%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 899 (0 bytes) 
  0.94%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 897 (0 bytes) 
  0.94%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 898 (7 bytes) 
  0.78%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 897 (0 bytes) 
  0.62%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 900 (0 bytes) 
  0.57%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 898 (7 bytes) 
  0.42%   [kernel.kallsyms]  finish_task_switch.isra.0 (0 bytes) 
  0.42%                      <unknown> (0 bytes) 
  0.31%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable (38 bytes) 
  0.26%   [kernel.kallsyms]  exit_to_user_mode_prepare (2 bytes) 
  0.16%   [kernel.kallsyms]  mutex_lock (30 bytes) 
  0.16%   [kernel.kallsyms]  __entry_text_start (9 bytes) 
  3.64%  <...other 63 warm regions...>
....................................................................................................
 99.95%  <totals>

....[Hottest Methods (after inlining)]..............................................................
 76.83%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::setViaUpdater, version 894 
  6.61%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost::updaterUtil, version 900 
  4.58%         c2, level 4  red.hat.puzzles.concurrent.jmh_generated.UpdaterUtilsCost_updaterUtil_jmhTest::updaterUtil_avgt_jmhStub, version 926 
  3.33%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$3::updater, version 899 
  1.72%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$1::updater, version 897 
  1.51%         c2, level 4  red.hat.puzzles.concurrent.UpdaterUtilsCost$2::updater, version 898 
  0.83%                      <unknown> 
  0.42%   [kernel.kallsyms]  finish_task_switch.isra.0 
  0.31%           libjvm.so  _ZN14ElfSymbolTable6lookupEPhPiS1_S1_P16ElfFuncDescTable 
  0.26%   [kernel.kallsyms]  exit_to_user_mode_prepare 
  0.21%   [kernel.kallsyms]  pipe_write 
  0.16%   [kernel.kallsyms]  mutex_lock 
  0.16%   [kernel.kallsyms]  avc_has_perm_noaudit 
  0.16%           libjvm.so  _ZN9xmlStream10write_textEPKcm.part.0 
  0.16%   [kernel.kallsyms]  __entry_text_start 
  0.10%           libc.so.6  __printf_buffer 
  0.10%         interpreter  aload  25 aload  
  0.10%           libc.so.6  __GI___pthread_enable_asynccancel 
  0.10%   [kernel.kallsyms]  __x64_sys_write 
  0.05%   [kernel.kallsyms]  schedule 
  2.24%  <...other 43 warm methods...>
....................................................................................................
 99.95%  <totals>

....[Distribution by Source]........................................................................
 94.64%         c2, level 4
  2.55%   [kernel.kallsyms]
  1.20%           libjvm.so
  0.83%                    
  0.42%           libc.so.6
  0.16%         interpreter
  0.10%         c1, level 3
  0.05%      perf-13075.map
....................................................................................................
 99.95%  <totals>



# Run complete. Total time: 00:01:00

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment