View Javadoc
1   package io.netty5.handler.codec.http2.jmh_generated;
2   
3   import java.util.List;
4   import java.util.concurrent.atomic.AtomicInteger;
5   import java.util.Collection;
6   import java.util.ArrayList;
7   import java.util.concurrent.TimeUnit;
8   import org.openjdk.jmh.annotations.CompilerControl;
9   import org.openjdk.jmh.runner.InfraControl;
10  import org.openjdk.jmh.infra.ThreadParams;
11  import org.openjdk.jmh.results.BenchmarkTaskResult;
12  import org.openjdk.jmh.results.Result;
13  import org.openjdk.jmh.results.ThroughputResult;
14  import org.openjdk.jmh.results.AverageTimeResult;
15  import org.openjdk.jmh.results.SampleTimeResult;
16  import org.openjdk.jmh.results.SingleShotResult;
17  import org.openjdk.jmh.util.SampleBuffer;
18  import org.openjdk.jmh.annotations.Mode;
19  import org.openjdk.jmh.annotations.Fork;
20  import org.openjdk.jmh.annotations.Measurement;
21  import org.openjdk.jmh.annotations.Threads;
22  import org.openjdk.jmh.annotations.Warmup;
23  import org.openjdk.jmh.annotations.BenchmarkMode;
24  import org.openjdk.jmh.results.RawResults;
25  import org.openjdk.jmh.results.ResultRole;
26  import java.lang.reflect.Field;
27  import org.openjdk.jmh.infra.BenchmarkParams;
28  import org.openjdk.jmh.infra.IterationParams;
29  import org.openjdk.jmh.infra.Blackhole;
30  import org.openjdk.jmh.infra.Control;
31  import org.openjdk.jmh.results.ScalarResult;
32  import org.openjdk.jmh.results.AggregationPolicy;
33  import org.openjdk.jmh.runner.FailureAssistException;
34  
35  import io.netty5.handler.codec.http2.jmh_generated.HpackDecoderBenchmark_jmhType;
36  public final class HpackDecoderBenchmark_decode_jmhTest {
37  
38      byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
39      byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
40      byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
41      byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
42      byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
43      byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
44      byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
45      byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
46      byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
47      byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
48      byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
49      byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
50      byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
51      byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
52      byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
53      byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
54      int startRndMask;
55      BenchmarkParams benchmarkParams;
56      IterationParams iterationParams;
57      ThreadParams threadParams;
58      Blackhole blackhole;
59      Control notifyControl;
60  
61      public BenchmarkTaskResult decode_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
62          this.benchmarkParams = control.benchmarkParams;
63          this.iterationParams = control.iterationParams;
64          this.threadParams    = threadParams;
65          this.notifyControl   = control.notifyControl;
66          if (this.blackhole == null) {
67              this.blackhole = new Blackhole("Today's password is swordfish. I understand instantiating Blackholes directly is dangerous.");
68          }
69          if (threadParams.getSubgroupIndex() == 0) {
70              RawResults res = new RawResults();
71              HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0 = _jmh_tryInit_f_hpackdecoderbenchmark0_0(control);
72  
73              control.preSetup();
74  
75  
76              control.announceWarmupReady();
77              while (control.warmupShouldWait) {
78                  l_hpackdecoderbenchmark0_0.decode(blackhole);
79                  res.allOps++;
80              }
81  
82              notifyControl.startMeasurement = true;
83              decode_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_hpackdecoderbenchmark0_0);
84              notifyControl.stopMeasurement = true;
85              control.announceWarmdownReady();
86              try {
87                  while (control.warmdownShouldWait) {
88                      l_hpackdecoderbenchmark0_0.decode(blackhole);
89                      res.allOps++;
90                  }
91              } catch (Throwable e) {
92                  if (!(e instanceof InterruptedException)) throw e;
93              }
94              control.preTearDown();
95  
96              if (control.isLastIteration()) {
97                  l_hpackdecoderbenchmark0_0.teardown();
98                  f_hpackdecoderbenchmark0_0 = null;
99              }
100             res.allOps += res.measuredOps;
101             int batchSize = iterationParams.getBatchSize();
102             int opsPerInv = benchmarkParams.getOpsPerInvocation();
103             res.allOps *= opsPerInv;
104             res.allOps /= batchSize;
105             res.measuredOps *= opsPerInv;
106             res.measuredOps /= batchSize;
107             BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);
108             results.add(new ThroughputResult(ResultRole.PRIMARY, "decode", res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));
109             this.blackhole.evaporate("Yes, I am Stephen Hawking, and know a thing or two about black holes.");
110             return results;
111         } else
112             throw new IllegalStateException("Harness failed to distribute threads among groups properly");
113     }
114 
115     public static void decode_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0) throws Throwable {
116         long operations = 0;
117         long realTime = 0;
118         result.startTime = System.nanoTime();
119         do {
120             l_hpackdecoderbenchmark0_0.decode(blackhole);
121             operations++;
122         } while(!control.isDone);
123         result.stopTime = System.nanoTime();
124         result.realTime = realTime;
125         result.measuredOps = operations;
126     }
127 
128 
129     public BenchmarkTaskResult decode_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
130         this.benchmarkParams = control.benchmarkParams;
131         this.iterationParams = control.iterationParams;
132         this.threadParams    = threadParams;
133         this.notifyControl   = control.notifyControl;
134         if (this.blackhole == null) {
135             this.blackhole = new Blackhole("Today's password is swordfish. I understand instantiating Blackholes directly is dangerous.");
136         }
137         if (threadParams.getSubgroupIndex() == 0) {
138             RawResults res = new RawResults();
139             HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0 = _jmh_tryInit_f_hpackdecoderbenchmark0_0(control);
140 
141             control.preSetup();
142 
143 
144             control.announceWarmupReady();
145             while (control.warmupShouldWait) {
146                 l_hpackdecoderbenchmark0_0.decode(blackhole);
147                 res.allOps++;
148             }
149 
150             notifyControl.startMeasurement = true;
151             decode_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_hpackdecoderbenchmark0_0);
152             notifyControl.stopMeasurement = true;
153             control.announceWarmdownReady();
154             try {
155                 while (control.warmdownShouldWait) {
156                     l_hpackdecoderbenchmark0_0.decode(blackhole);
157                     res.allOps++;
158                 }
159             } catch (Throwable e) {
160                 if (!(e instanceof InterruptedException)) throw e;
161             }
162             control.preTearDown();
163 
164             if (control.isLastIteration()) {
165                 l_hpackdecoderbenchmark0_0.teardown();
166                 f_hpackdecoderbenchmark0_0 = null;
167             }
168             res.allOps += res.measuredOps;
169             int batchSize = iterationParams.getBatchSize();
170             int opsPerInv = benchmarkParams.getOpsPerInvocation();
171             res.allOps *= opsPerInv;
172             res.allOps /= batchSize;
173             res.measuredOps *= opsPerInv;
174             res.measuredOps /= batchSize;
175             BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);
176             results.add(new AverageTimeResult(ResultRole.PRIMARY, "decode", res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));
177             this.blackhole.evaporate("Yes, I am Stephen Hawking, and know a thing or two about black holes.");
178             return results;
179         } else
180             throw new IllegalStateException("Harness failed to distribute threads among groups properly");
181     }
182 
183     public static void decode_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0) throws Throwable {
184         long operations = 0;
185         long realTime = 0;
186         result.startTime = System.nanoTime();
187         do {
188             l_hpackdecoderbenchmark0_0.decode(blackhole);
189             operations++;
190         } while(!control.isDone);
191         result.stopTime = System.nanoTime();
192         result.realTime = realTime;
193         result.measuredOps = operations;
194     }
195 
196 
197     public BenchmarkTaskResult decode_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
198         this.benchmarkParams = control.benchmarkParams;
199         this.iterationParams = control.iterationParams;
200         this.threadParams    = threadParams;
201         this.notifyControl   = control.notifyControl;
202         if (this.blackhole == null) {
203             this.blackhole = new Blackhole("Today's password is swordfish. I understand instantiating Blackholes directly is dangerous.");
204         }
205         if (threadParams.getSubgroupIndex() == 0) {
206             RawResults res = new RawResults();
207             HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0 = _jmh_tryInit_f_hpackdecoderbenchmark0_0(control);
208 
209             control.preSetup();
210 
211 
212             control.announceWarmupReady();
213             while (control.warmupShouldWait) {
214                 l_hpackdecoderbenchmark0_0.decode(blackhole);
215                 res.allOps++;
216             }
217 
218             notifyControl.startMeasurement = true;
219             int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond
220             int batchSize = iterationParams.getBatchSize();
221             int opsPerInv = benchmarkParams.getOpsPerInvocation();
222             SampleBuffer buffer = new SampleBuffer();
223             decode_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_hpackdecoderbenchmark0_0);
224             notifyControl.stopMeasurement = true;
225             control.announceWarmdownReady();
226             try {
227                 while (control.warmdownShouldWait) {
228                     l_hpackdecoderbenchmark0_0.decode(blackhole);
229                     res.allOps++;
230                 }
231             } catch (Throwable e) {
232                 if (!(e instanceof InterruptedException)) throw e;
233             }
234             control.preTearDown();
235 
236             if (control.isLastIteration()) {
237                 l_hpackdecoderbenchmark0_0.teardown();
238                 f_hpackdecoderbenchmark0_0 = null;
239             }
240             res.allOps += res.measuredOps * batchSize;
241             res.allOps *= opsPerInv;
242             res.allOps /= batchSize;
243             res.measuredOps *= opsPerInv;
244             BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);
245             results.add(new SampleTimeResult(ResultRole.PRIMARY, "decode", buffer, benchmarkParams.getTimeUnit()));
246             this.blackhole.evaporate("Yes, I am Stephen Hawking, and know a thing or two about black holes.");
247             return results;
248         } else
249             throw new IllegalStateException("Harness failed to distribute threads among groups properly");
250     }
251 
252     public static void decode_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0) throws Throwable {
253         long realTime = 0;
254         long operations = 0;
255         int rnd = (int)System.nanoTime();
256         int rndMask = startRndMask;
257         long time = 0;
258         int currentStride = 0;
259         do {
260             rnd = (rnd * 1664525 + 1013904223);
261             boolean sample = (rnd & rndMask) == 0;
262             if (sample) {
263                 time = System.nanoTime();
264             }
265             for (int b = 0; b < batchSize; b++) {
266                 if (control.volatileSpoiler) return;
267                 l_hpackdecoderbenchmark0_0.decode(blackhole);
268             }
269             if (sample) {
270                 buffer.add((System.nanoTime() - time) / opsPerInv);
271                 if (currentStride++ > targetSamples) {
272                     buffer.half();
273                     currentStride = 0;
274                     rndMask = (rndMask << 1) + 1;
275                 }
276             }
277             operations++;
278         } while(!control.isDone);
279         startRndMask = Math.max(startRndMask, rndMask);
280         result.realTime = realTime;
281         result.measuredOps = operations;
282     }
283 
284 
285     public BenchmarkTaskResult decode_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
286         this.benchmarkParams = control.benchmarkParams;
287         this.iterationParams = control.iterationParams;
288         this.threadParams    = threadParams;
289         this.notifyControl   = control.notifyControl;
290         if (this.blackhole == null) {
291             this.blackhole = new Blackhole("Today's password is swordfish. I understand instantiating Blackholes directly is dangerous.");
292         }
293         if (threadParams.getSubgroupIndex() == 0) {
294             HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0 = _jmh_tryInit_f_hpackdecoderbenchmark0_0(control);
295 
296             control.preSetup();
297 
298 
299             notifyControl.startMeasurement = true;
300             RawResults res = new RawResults();
301             int batchSize = iterationParams.getBatchSize();
302             decode_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_hpackdecoderbenchmark0_0);
303             control.preTearDown();
304 
305             if (control.isLastIteration()) {
306                 l_hpackdecoderbenchmark0_0.teardown();
307                 f_hpackdecoderbenchmark0_0 = null;
308             }
309             int opsPerInv = control.benchmarkParams.getOpsPerInvocation();
310             long totalOps = opsPerInv;
311             BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);
312             results.add(new SingleShotResult(ResultRole.PRIMARY, "decode", res.getTime(), benchmarkParams.getTimeUnit()));
313             this.blackhole.evaporate("Yes, I am Stephen Hawking, and know a thing or two about black holes.");
314             return results;
315         } else
316             throw new IllegalStateException("Harness failed to distribute threads among groups properly");
317     }
318 
319     public static void decode_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, HpackDecoderBenchmark_jmhType l_hpackdecoderbenchmark0_0) throws Throwable {
320         long realTime = 0;
321         result.startTime = System.nanoTime();
322         for (int b = 0; b < batchSize; b++) {
323             if (control.volatileSpoiler) return;
324             l_hpackdecoderbenchmark0_0.decode(blackhole);
325         }
326         result.stopTime = System.nanoTime();
327         result.realTime = realTime;
328     }
329 
330     
331     HpackDecoderBenchmark_jmhType f_hpackdecoderbenchmark0_0;
332     
333     HpackDecoderBenchmark_jmhType _jmh_tryInit_f_hpackdecoderbenchmark0_0(InfraControl control) throws Throwable {
334         if (control.isFailing) throw new FailureAssistException();
335         HpackDecoderBenchmark_jmhType val = f_hpackdecoderbenchmark0_0;
336         if (val == null) {
337             val = new HpackDecoderBenchmark_jmhType();
338                 Field f;
339                 f = io.netty5.handler.codec.http2.HpackDecoderBenchmark.class.getDeclaredField("limitToAscii");
340                 f.setAccessible(true);
341                 f.set(val, Boolean.valueOf(control.getParam("limitToAscii")));
342                 f = io.netty5.handler.codec.http2.HpackDecoderBenchmark.class.getDeclaredField("sensitive");
343                 f.setAccessible(true);
344                 f.set(val, Boolean.valueOf(control.getParam("sensitive")));
345                 f = io.netty5.handler.codec.http2.HpackDecoderBenchmark.class.getDeclaredField("size");
346                 f.setAccessible(true);
347                 f.set(val, io.netty5.handler.codec.http2.HpackHeadersSize.valueOf(control.getParam("size")));
348             val.setup();
349             f_hpackdecoderbenchmark0_0 = val;
350         }
351         return val;
352     }
353 
354 
355 }
356