Chapter 4. Stellar Benchmarks
A microbenchmarking utility is included to assist in executing microbenchmarks for Stellar functions.
The utility can be executed via maven using the `exec` plugin, like so, from the `metron-common` directory:
mvn -DskipTests clean package && \ mvn exec:java -Dexec.mainClass="org.apache.metron.common.stellar.benchmark.StellarMicrobenchmark" -Dexec.args="..."
where exec.args
can be one of the following:
-e,--expressions <FILE> Stellar expressions -h,--help Generate Help screen -n,--num_times <NUM> Number of times to run per expression (after warmup). Default: 1000 -o,--output <FILE> File to write output. -p,--percentiles <NUM> Percentiles to calculate per run. Default: 50.0,75.0,95.0,99.0 -v,--variables <FILE> File containing a JSON Map of variables to use -w,--warmup <NUM> Number of times for warmup per expression. Default: 100
For instance, to run with a set of Stellar expression in file
/tmp/expressions.txt
:
``` # simple functions TO_UPPER('john') TO_LOWER(name) # math functions 1 + 2*(3 + int_num) / 10.0 1.5 + 2*(3 + double_num) / 10.0 # conditionals if ('foo' in ['foo']) OR one == very_nearly_one then 'one' else 'two' 1 + 2*(3 + int_num) / 10.0 #Network funcs DOMAIN_TO_TLD(domain) DOMAIN_REMOVE_SUBDOMAINS(domain)
And variables in file /tmp/variables.json
:
{ "name" : "john", "int_num" : 1, "double_num" : 17.5, "one" : 1, "very_nearly_one" : 1.000001, "domain" : "www.google.com" }
Written to file /tmp/output.txt
would be the following command:
mvn -DskipTests clean package && \ mvn exec:java -Dexec.mainClass="org.apache.metron.common.stellar.benchmark.StellarMicrobenchmark" \ -Dexec.args="-e /tmp/expressions.txt -v /tmp/variables.json -o ./output.json"