Home / Class/ ScheduledFutureTaskBenchmark Class — netty Architecture

ScheduledFutureTaskBenchmark Class — netty Architecture

Architecture documentation for the ScheduledFutureTaskBenchmark class in ScheduledFutureTaskBenchmark.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  dc7841cc_449e_6f86_0f29_5460e8059343["ScheduledFutureTaskBenchmark"]
  d19f1b23_f394_2b98_4724_e824c37525ff["ScheduledFutureTaskBenchmark.java"]
  dc7841cc_449e_6f86_0f29_5460e8059343 -->|defined in| d19f1b23_f394_2b98_4724_e824c37525ff
  9024ab95_3786_182f_e27a_e1d77c029982["stop()"]
  dc7841cc_449e_6f86_0f29_5460e8059343 -->|method| 9024ab95_3786_182f_e27a_e1d77c029982
  754636de_18ad_5e10_fee0_25788f6c4d51["cancelInOrder()"]
  dc7841cc_449e_6f86_0f29_5460e8059343 -->|method| 754636de_18ad_5e10_fee0_25788f6c4d51
  4ef1824e_d1ba_3236_423d_720a513faa4b["cancelInReverseOrder()"]
  dc7841cc_449e_6f86_0f29_5460e8059343 -->|method| 4ef1824e_d1ba_3236_423d_720a513faa4b

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/concurrent/ScheduledFutureTaskBenchmark.java lines 36–98

@State(Scope.Benchmark)
public class ScheduledFutureTaskBenchmark extends AbstractMicrobenchmark {

    static final EventLoop executor = new DefaultEventLoop();

    @State(Scope.Thread)
    public static class FuturesHolder {

        private static final Callable<Void> NO_OP = new Callable<Void>() {
            @Override
            public Void call() throws Exception {
                return null;
            }
        };

        @Param({ "100", "1000", "10000", "100000" })
        int num;

        final List<ScheduledFuture<Void>> futures = new ArrayList<ScheduledFuture<Void>>();

        @Setup(Level.Invocation)
        public void reset() {
            futures.clear();
            executor.submit(new Runnable() {
                @Override
                public void run() {
                    for (int i = 1; i <= num; i++) {
                        futures.add(executor.schedule(NO_OP, i, TimeUnit.HOURS));
                    }
                }
            }).syncUninterruptibly();
        }
    }

    @TearDown(Level.Trial)
    public void stop() throws Exception {
        executor.shutdownGracefully().syncUninterruptibly();
    }

    @Benchmark
    public Future<?> cancelInOrder(final FuturesHolder futuresHolder) {
        return executor.submit(new Runnable() {
            @Override
            public void run() {
                for (int i = 0; i < futuresHolder.num; i++) {
                    futuresHolder.futures.get(i).cancel(false);
                }
            }
        }).syncUninterruptibly();
    }

    @Benchmark
    public Future<?> cancelInReverseOrder(final FuturesHolder futuresHolder) {
        return executor.submit(new Runnable() {
            @Override
            public void run() {
                for (int i = futuresHolder.num - 1; i >= 0; i--) {
                    futuresHolder.futures.get(i).cancel(false);
                }
            }
        }).syncUninterruptibly();
    }
}

Frequently Asked Questions

What is the ScheduledFutureTaskBenchmark class?
ScheduledFutureTaskBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/concurrent/ScheduledFutureTaskBenchmark.java.
Where is ScheduledFutureTaskBenchmark defined?
ScheduledFutureTaskBenchmark is defined in microbench/src/main/java/io/netty/microbench/concurrent/ScheduledFutureTaskBenchmark.java at line 36.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free