org.openjdk.jmh.annotations.Group#org.openjdk.jmh.infra.Control源码实例Demo

下面列出了org.openjdk.jmh.annotations.Group#org.openjdk.jmh.infra.Control 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: hashed-wheel-timer   文件: AbstractBenchmark.java
@Benchmark
public void timerThroughputTest(Control ctrl) throws InterruptedException {
  counterDown.set(times);
  for (int i = 0; i < times; i++) {
    timer.schedule(new Runnable() {
                     @Override
                     public void run() {
                       counterDown.decrementAndGet();
                     }
                   },
                   delay,
                   TimeUnit.MILLISECONDS);
  }

  while (!ctrl.stopMeasurement && counterDown.get() > 0) {
    // spin
  }

}
 
@Benchmark
@Group("trackDelayed")
public void trackWithDelayedAcks(Control control, TrackerState trackerState) throws Exception {
  if (!control.stopMeasurement) {
    final AcknowledgableWatermark wmark = new AcknowledgableWatermark(new DefaultCheckpointableWatermark(
        "0", new LongWatermark(trackerState._index)));
    trackerState._watermarkTracker.track(wmark);
    trackerState._index++;
    int delay = trackerState._random.nextInt(10);
    trackerState._executorService.schedule(new Runnable() {
      @Override
      public void run() {
        wmark.ack();
      }
    }, delay, TimeUnit.MILLISECONDS);
  }
}
 
@Benchmark
@Group("scheduledDelayed")
public void scheduledDelayedAcks(Control control, TrackerState trackerState) throws Exception {
  if (!control.stopMeasurement) {
    final AcknowledgableWatermark wmark = new AcknowledgableWatermark(new DefaultCheckpointableWatermark(
        "0", new LongWatermark(trackerState._index)));
    trackerState._index++;
    int delay = trackerState._random.nextInt(10);
    trackerState._executorService.schedule(new Runnable() {
      @Override
      public void run() {
        wmark.ack();
      }
    }, delay, TimeUnit.MILLISECONDS);
  }
}
 
@Benchmark
@Group("scheduledNoRandom")
public void scheduledNoRandomDelayedAcks(Control control, TrackerState trackerState) throws Exception {
  if (!control.stopMeasurement) {
    final AcknowledgableWatermark wmark = new AcknowledgableWatermark(new DefaultCheckpointableWatermark(
        "0", new LongWatermark(trackerState._index)));
    trackerState._index++;
    int delay = 10;
    trackerState._executorService.schedule(new Runnable() {
      @Override
      public void run() {
        wmark.ack();
      }
    }, delay, TimeUnit.MILLISECONDS);
  }
}
 
源代码5 项目: JCTools   文件: MpscProxyChannelBenchmark.java
@Benchmark
@Group("tenMixedArgs")
@GroupThreads(PRODUCER_THREADS)
public boolean tenMixedArgsCaller(final Control control, final CallerCounters counters) {
    this.waitStrategy.control = control;
    try {
        this.proxy.tenMixedArgs(this.intArg,
                this.objArg,
                this.longArg,
                this.customType0,
                this.doubleArg,
                this.customType1,
                this.floatArg,
                this.customType2,
                this.booleanArg,
                this.customType3);
        counters.callsFailed = this.waitStrategy.retries;
        return true;
    } catch (final StoppedException e) {
        return false;
    }
}
 
源代码6 项目: JCTools   文件: SpscProxyChannelBenchmark.java
@Benchmark
@Group("tenMixedArgs")
@GroupThreads(PRODUCER_THREADS)
public boolean tenMixedArgsCaller(final Control control, final CallerCounters counters) {
    this.waitStrategy.control = control;
    try {
        this.proxy.tenMixedArgs(this.intArg,
                this.objArg,
                this.longArg,
                this.customType0,
                this.doubleArg,
                this.customType1,
                this.floatArg,
                this.customType2,
                this.booleanArg,
                this.customType3);
        counters.callsFailed = this.waitStrategy.retries;
        return true;
    } catch (final StoppedException e) {
        return false;
    }
}
 
源代码7 项目: jmh-playground   文件: JMHSample_18_Control.java
@Benchmark
@Group("pingpong")
public void ping(Control cnt) {
    while (!cnt.stopMeasurement && !flag.compareAndSet(false, true)) {
        // this body is intentionally left blank
    }
}
 
源代码8 项目: jmh-playground   文件: JMHSample_18_Control.java
@Benchmark
@Group("pingpong")
public void pong(Control cnt) {
    while (!cnt.stopMeasurement && !flag.compareAndSet(true, false)) {
        // this body is intentionally left blank
    }
}
 
源代码9 项目: java-Kcp   文件: MpmcBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(PRODUCER_THREADS_NUMBER)
public void write(Control control) {
    while (!control.stopMeasurement && !queue.offer(1L)) {
    }
}
 
源代码10 项目: java-Kcp   文件: MpmcBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(CONSUMER_THREADS_NUMBER)
public void read(Control control) {
    while (!control.stopMeasurement && queue.poll() == null) {
    }
}
 
源代码11 项目: java-Kcp   文件: MpscBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(PRODUCER_THREADS_NUMBER)
public void write(Control control) {
    while (!control.stopMeasurement && !queue.offer(1L)) {
    }
}
 
源代码12 项目: java-Kcp   文件: SignalBenchmark.java
@Benchmark
@GroupThreads(1)
@Group("signal")
public void signal(Control control) {
    try {
        signalLock.lock();
        signalCondition.signal();
    }finally {
        signalLock.unlock();
    }
}
 
源代码13 项目: java-Kcp   文件: SignalBenchmark.java
@Benchmark
@GroupThreads(1)
@Group("signal")
public void await(Control control) {
    try {
        signalLock.lock();
        signalCondition.await();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } finally {
        signalLock.unlock();
    }
}
 
源代码14 项目: java-Kcp   文件: SignalBenchmark.java
@Benchmark
@GroupThreads(1)
@Group("signalAll")
public void signalAll(Control control) {
    try {
        signaAlllLock.lock();
        signalAllCondition.signal();
    }finally {
        signaAlllLock.unlock();
    }
}
 
源代码15 项目: java-Kcp   文件: SignalBenchmark.java
@Benchmark
@GroupThreads(1)
@Group("signalAll")
public void awaitForSignalAll(Control control) {
    try {
        signaAlllLock.lock();
        signalAllCondition.await();
    } catch (InterruptedException e) {
        e.printStackTrace();
    } finally {
        signaAlllLock.unlock();
    }
}
 
源代码16 项目: java-Kcp   文件: VolatileAtomicBenchmark.java
@Benchmark
@GroupThreads(3)
@Group("GROUP_NAME")
public void volatileRead(Control control) {
    int b = vol;
    b++;
}
 
源代码17 项目: java-Kcp   文件: VolatileAtomicBenchmark.java
@Benchmark
@GroupThreads(3)
@Group("GROUP_NAME1")
public void atmoicRead(Control control) {
    int c = atomicInteger.get();
    c++;
}
 
源代码18 项目: java-Kcp   文件: MpscaBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(PRODUCER_THREADS_NUMBER)
public void write(Control control) {
    while (!control.stopMeasurement && !queue.offer(1L)) {
    }
}
 
源代码19 项目: hashed-wheel-timer   文件: AbstractBenchmark.java
@Benchmark
public void multiTimerTest(Control ctrl) throws InterruptedException {
  int threads = 10;
  counterDown.set(times * threads);
  for (int i = 0; i < threads; i++) {
    final int idx = i;
    new Thread(new Runnable() {
      @Override
      public void run() {
        try {
          Thread.sleep(10 * idx);
        } catch (InterruptedException e) {
        }
        for (int j = 0; j < times; j++) {
          timer.schedule(new Runnable() {
                           @Override
                           public void run() {
                             counterDown.decrementAndGet();
                           }
                         },
                         delay,
                         TimeUnit.MILLISECONDS);
        }
      }
    }).start();
  }

  while (!ctrl.stopMeasurement && counterDown.get() > 0) {
    // spin
  }

}
 
源代码20 项目: hashed-wheel-timer   文件: NettyTimerBenchmark.java
public void timerThroughputTest(Control ctrl) throws InterruptedException {
  counterDown.set(times);
  for (int i = 0; i < times; i++) {
    timer.newTimeout((TimerTask) (v) -> counterDown.decrementAndGet(),
                     delay,
                     TimeUnit.MILLISECONDS);
  }

  while (!ctrl.stopMeasurement && counterDown.get() > 0) {
    // spin
  }

}
 
源代码21 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("primitive")
@GroupThreads(1)
@Benchmark
public void send1(Control control) {
    SpscIntArrayQueue q = queue;
    while (!q.offer(1) && !control.stopMeasurement) {
    }
}
 
源代码22 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("primitive")
@GroupThreads(1)
@Benchmark
public void recv1(Control control) {
    final SpscIntArrayQueue q = queue;
    while (!control.stopMeasurement && q.poll() == 0) {
        ;
    }
}
 
源代码23 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("fastflow")
@GroupThreads(1)
@Benchmark
public void send4(Control control) {
    SpscIntArrayQueueAtomic q = queueFastflow;
    while (!q.offer(1) && !control.stopMeasurement) {
    }
}
 
源代码24 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("fastflow")
@GroupThreads(1)
@Benchmark
public void recv4(Control control) {
    final SpscIntArrayQueueAtomic q = queueFastflow;
    while (!control.stopMeasurement && q.poll() == 0) {
        ;
    }
}
 
源代码25 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("boxed")
@GroupThreads(1)
@Benchmark
public void send2(Control control) {
    SpscArrayQueue<Integer> q = queueBoxed;
    while (!q.offer(1) && !control.stopMeasurement) {
    }
}
 
源代码26 项目: akarnokd-misc   文件: SpscIntArrayQueueXPerf.java
@Group("boxed")
@GroupThreads(1)
@Benchmark
public void recv2(Control control) {
    SpscArrayQueue<Integer> q = queueBoxed;
    while (!control.stopMeasurement && q.poll() == null) {
    }
}
 
@Benchmark
@Group("trackImmediate")
public void trackImmediateAcks(Control control, TrackerState trackerState) throws Exception {
  if (!control.stopMeasurement) {
    AcknowledgableWatermark wmark = new AcknowledgableWatermark(new DefaultCheckpointableWatermark(
        "0", new LongWatermark(trackerState._index)));
    trackerState._watermarkTracker.track(wmark);
    trackerState._index++;
    wmark.ack();
  }
}
 
源代码28 项目: tutorials   文件: MpmcBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(PRODUCER_THREADS_NUMBER)
public void write(Control control) {
    //noinspection StatementWithEmptyBody
    while (!control.stopMeasurement && !queue.offer(1L)) {
        // Is intentionally left blank
    }
}
 
源代码29 项目: tutorials   文件: MpmcBenchmark.java
@Benchmark
@Group(GROUP_NAME)
@GroupThreads(CONSUMER_THREADS_NUMBER)
public void read(Control control) {
    //noinspection StatementWithEmptyBody
    while (!control.stopMeasurement && queue.poll() == null) {
        // Is intentionally left blank
    }
}
 
源代码30 项目: JCTools   文件: SpscChannelThroughputTest.java
@Benchmark
  @Group("busy")
  @GroupThreads(1)
  public void writeBusy(Control cnt) {
      ChannelProducer<Ping> lProducer = producer;
while (!lProducer.claim()) {
      	if (cnt.stopMeasurement) {
      		return;// drop out of spinning if the benchmark iteration is done
      	}
      }
  	Ping element = lProducer.currentElement();
      element.setValue(writeValue);
      lProducer.commit();
  }