Class SpeedTestComplex
- java.lang.Object
-
- com.singularsys.jepexamples.diagnostics.SpeedTestComplex
-
public class SpeedTestComplex extends java.lang.Object
Compares the speed of evaluation between different evaluation schemes. The standard class compares BigDecimal, Jep (with default Fast evaluator), the old StandardEvaluator, and RealEvaluator.If you have some nice complicated examples, I'd love to hear about them to see if we can tune things up. - rich
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SpeedTestComplex.EvaluationConfig
Basic class to set the evaluation contextstatic class
SpeedTestComplex.JepConfig
Standard Jep configuration (with FastEvaluator)static class
SpeedTestComplex.JepConfig3_4
Standard Jep configuration (with FastEvaluator)static class
SpeedTestComplex.JepConfig3_5
static class
SpeedTestComplex.JepConfig3_5NC
static class
SpeedTestComplex.JepConfigNoChecks
Standard Jep configuration (with FastEvaluator)static class
SpeedTestComplex.OldConfig
Configuration using the StandardEvaluatorstatic class
SpeedTestComplex.Outputter
Different output methodsstatic class
SpeedTestComplex.PostfixConfig
Configuration using the RealEvaluatorstatic class
SpeedTestComplex.RatioOutputter
Print detailed ratios for each run.static class
SpeedTestComplex.RealConfig
Configuration using the RealEvaluatorstatic class
SpeedTestComplex.TabOutputter
Print output tab separated.static class
SpeedTestComplex.ThreadSafeConfig
Configuration using the RealEvaluatorstatic class
SpeedTestComplex.UncheckedConfig
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<SpeedTestComplex.EvaluationConfig>
configs
int
nDeriv
int
num_itts
int
num_vals
int
num_warmup
protected SpeedTestComplex.Outputter
outputter
protected long[]
totalTimes
-
Constructor Summary
Constructors Constructor Description SpeedTestComplex(SpeedTestComplex.Outputter outputter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addConfig(SpeedTestComplex.EvaluationConfig config)
Adds a new EvaluationConfig to be be run for comparison.void
doAll(java.lang.String[] eqns, java.lang.String[] varNames)
Run speed comparison for a set of equations.void
doAll(java.lang.String eqn, java.lang.String[] varNames)
Run speed comparison for a single equation.void
fini()
void
init()
static void
main(java.lang.String[] args)
Main method, executes all speed tests.void
runTests()
A standard set of tests.
-
-
-
Field Detail
-
num_itts
public int num_itts
-
num_warmup
public int num_warmup
-
num_vals
public int num_vals
-
nDeriv
public int nDeriv
-
configs
protected final java.util.List<SpeedTestComplex.EvaluationConfig> configs
-
outputter
protected SpeedTestComplex.Outputter outputter
-
totalTimes
protected long[] totalTimes
-
-
Constructor Detail
-
SpeedTestComplex
public SpeedTestComplex(SpeedTestComplex.Outputter outputter)
- Parameters:
outputter
-
-
-
Method Detail
-
init
public void init()
-
fini
public void fini()
-
doAll
public void doAll(java.lang.String eqn, java.lang.String[] varNames)
Run speed comparison for a single equation.- Parameters:
eqn
- The equation to testvarNames
- an array of variable names which will be set to random values.
-
doAll
public void doAll(java.lang.String[] eqns, java.lang.String[] varNames)
Run speed comparison for a set of equations.- Parameters:
eqns
-varNames
-
-
addConfig
public void addConfig(SpeedTestComplex.EvaluationConfig config)
Adds a new EvaluationConfig to be be run for comparison.- Parameters:
config
-
-
main
public static void main(java.lang.String[] args)
Main method, executes all speed tests. Arguments '-pause' causes the program to wait for keyboard input before running test, useful use in profilers. Or a number specifying number of iterations to run.- Parameters:
args
- Can contain '-pause' or NUM
-
runTests
public void runTests()
A standard set of tests.
-
-