SearchRealDataBenchmark Class — netty Architecture
Architecture documentation for the SearchRealDataBenchmark class in SearchRealDataBenchmark.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD be3c3597_b7fe_668e_fae4_63fa169a1033["SearchRealDataBenchmark"] 0c42c586_7e6b_a42e_8dc3_ef1cc4273c7a["SearchRealDataBenchmark.java"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|defined in| 0c42c586_7e6b_a42e_8dc3_ef1cc4273c7a b410de5e_f718_2b0c_4798_8e9266704c53["setup()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| b410de5e_f718_2b0c_4798_8e9266704c53 c394b796_1620_6832_38cc_d670bfdb82a1["invocationSetup()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| c394b796_1620_6832_38cc_d670bfdb82a1 e173e440_ea9e_8554_3257_501bb04f890b["teardown()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| e173e440_ea9e_8554_3257_501bb04f890b 7acb48af_fa38_c67f_ceda_9098dfbc02e1["findFirst()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| 7acb48af_fa38_c67f_ceda_9098dfbc02e1 478adf83_933e_c1a0_b536_38b0953b6084["findFirstFromIndex()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| 478adf83_933e_c1a0_b536_38b0953b6084 f5295a2a_fb66_921c_317c_16c5b456a304["findAll()"] be3c3597_b7fe_668e_fae4_63fa169a1033 -->|method| f5295a2a_fb66_921c_317c_16c5b456a304
Relationship Graph
Source Code
microbench/src/main/java/io/netty/microbench/search/SearchRealDataBenchmark.java lines 47–152
@OutputTimeUnit(TimeUnit.MILLISECONDS)
@Warmup(iterations = 5)
@Measurement(iterations = 5)
@Fork(1)
public class SearchRealDataBenchmark extends AbstractMicrobenchmark {
public enum Algorithm {
AHO_CORASIC {
@Override
SearchProcessorFactory newFactory(byte[] needle) {
return AbstractMultiSearchProcessorFactory.newAhoCorasicSearchProcessorFactory(needle);
}
},
KMP {
@Override
SearchProcessorFactory newFactory(byte[] needle) {
return AbstractSearchProcessorFactory.newKmpSearchProcessorFactory(needle);
}
},
BITAP {
@Override
SearchProcessorFactory newFactory(byte[] needle) {
return AbstractSearchProcessorFactory.newBitapSearchProcessorFactory(needle);
}
};
abstract SearchProcessorFactory newFactory(byte[] needle);
}
@Param
public Algorithm algorithm;
@Param
public ByteBufType bufferType;
private ByteBuf haystack;
private SearchProcessorFactory[] searchProcessorFactories;
private SearchProcessorFactory searchProcessorFactory;
private static final byte[][] NEEDLES = {
"Thank You".getBytes(),
"* Does not exist *".getBytes(),
"<li>".getBytes(),
"<body>".getBytes(),
"</li>".getBytes(),
"github.com".getBytes(),
" Does not exist 2 ".getBytes(),
"</html>".getBytes(),
"\"https://".getBytes(),
"Netty 4.1.45.Final released".getBytes()
};
private int needleId, searchFrom, haystackLength;
@Setup
public void setup() throws IOException {
File haystackFile = ResourcesUtil.getFile(SearchRealDataBenchmark.class, "netty-io-news.html");
byte[] haystackBytes = Files.readAllBytes(haystackFile.toPath());
haystack = bufferType.newBuffer(haystackBytes);
needleId = 0;
searchFrom = 0;
haystackLength = haystack.readableBytes();
searchProcessorFactories = new SearchProcessorFactory[NEEDLES.length];
for (int i = 0; i < NEEDLES.length; i++) {
searchProcessorFactories[i] = algorithm.newFactory(NEEDLES[i]);
}
}
@Setup(Level.Invocation)
public void invocationSetup() {
needleId = (needleId + 1) % searchProcessorFactories.length;
searchProcessorFactory = searchProcessorFactories[needleId];
}
@TearDown
public void teardown() {
haystack.release();
}
@Benchmark
Source
Frequently Asked Questions
What is the SearchRealDataBenchmark class?
SearchRealDataBenchmark is a class in the netty codebase, defined in microbench/src/main/java/io/netty/microbench/search/SearchRealDataBenchmark.java.
Where is SearchRealDataBenchmark defined?
SearchRealDataBenchmark is defined in microbench/src/main/java/io/netty/microbench/search/SearchRealDataBenchmark.java at line 47.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free