Home / Class/ ResourceLeakDetectorRecordBenchmark Class — netty Architecture

ResourceLeakDetectorRecordBenchmark Class — netty Architecture

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

Entity Profile

Dependency Diagram

graph TD
  59314ad0_edda_e715_5a0d_3845b998cdee["ResourceLeakDetectorRecordBenchmark"]
  cf7d381e_b9bd_6c61_7a5e_86f9a568fc3c["ResourceLeakDetectorRecordBenchmark.java"]
  59314ad0_edda_e715_5a0d_3845b998cdee -->|defined in| cf7d381e_b9bd_6c61_7a5e_86f9a568fc3c
  9fd56f2f_fc26_fa45_fb76_0567240347fc["setup()"]
  59314ad0_edda_e715_5a0d_3845b998cdee -->|method| 9fd56f2f_fc26_fa45_fb76_0567240347fc
  abb322a5_e8b6_78bd_f833_ea76ac53d9f6["teardown()"]
  59314ad0_edda_e715_5a0d_3845b998cdee -->|method| abb322a5_e8b6_78bd_f833_ea76ac53d9f6
  d152c4b1_0950_3125_e7d3_9a2a4d4811e3["record()"]
  59314ad0_edda_e715_5a0d_3845b998cdee -->|method| d152c4b1_0950_3125_e7d3_9a2a4d4811e3
  4f9529bb_39a0_5b5e_1b5f_aca487f59e44["recordWithHint()"]
  59314ad0_edda_e715_5a0d_3845b998cdee -->|method| 4f9529bb_39a0_5b5e_1b5f_aca487f59e44

Relationship Graph

Source Code

microbench/src/main/java/io/netty/microbench/util/ResourceLeakDetectorRecordBenchmark.java lines 27–86

public class ResourceLeakDetectorRecordBenchmark extends AbstractMicrobenchmark {
    private static final Object TRACKED = new Object();
    private static final ResourceLeakHint HINT = new ResourceLeakHint() {
        @Override
        public String toHintString() {
            return "BenchmarkHint";
        }
    };

    @Param({ "8", "16" })
    private int recordTimes;
    private ResourceLeakDetector.Level level;

    ResourceLeakDetector<Object> detector = new ResourceLeakDetector<Object>(
            Object.class, 1, Integer.MAX_VALUE) {
        @Override
        protected void reportTracedLeak(String resourceType, String records) {
            // noop
        }

        @Override
        protected void reportUntracedLeak(String resourceType) {
            // noop
        }

        @Override
        protected void reportInstancesLeak(String resourceType) {
            // noop
        }
    };

    @Setup(Level.Trial)
    public void setup() {
        level = ResourceLeakDetector.getLevel();
        ResourceLeakDetector.setLevel(ResourceLeakDetector.Level.PARANOID);
    }

    @TearDown(Level.Trial)
    public void teardown() {
        ResourceLeakDetector.setLevel(level);
    }

    @Benchmark
    public boolean record() {
        ResourceLeakTracker<Object> tracker = detector.track(TRACKED);
        for (int i = 0 ; i < recordTimes; i++) {
            tracker.record();
        }
        return tracker.close(TRACKED);
    }

    @Benchmark
    public boolean recordWithHint() {
        ResourceLeakTracker<Object> tracker = detector.track(TRACKED);
        for (int i = 0 ; i < recordTimes; i++) {
            tracker.record(HINT);
        }
        return tracker.close(TRACKED);
    }
}

Frequently Asked Questions

What is the ResourceLeakDetectorRecordBenchmark class?
ResourceLeakDetectorRecordBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/util/ResourceLeakDetectorRecordBenchmark.java.
Where is ResourceLeakDetectorRecordBenchmark defined?
ResourceLeakDetectorRecordBenchmark is defined in microbench/src/main/java/io/netty/microbench/util/ResourceLeakDetectorRecordBenchmark.java at line 27.

Analyze Your Own Codebase

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

Try Supermodel Free