## Hardware & software used for performance testing

### mXparser performance tests - Windows 10 - JDK 1.5 vs 1.6 vs 1.7 vs 1.8

- Windows 10 64 bit (PC)
- Pentium (R) Dual-Core E5300 2.6 Ghz - OC to 3.5 GHz
- 4GB RAM DDR2
- Java 1.5 - 1.5.0_22
- Java 1.6 - 1.6.0_45
- Java 1.7 - 1.7.0_80
- Java 1.8 - 1.8.0_66
- Threads number - 2

Id | Oper / Task | Iter [#] | 1.5 | 1.6 | 1.7 | 1.8 | Test descr |
---|---|---|---|---|---|---|---|

0 | 2+3 | 20 m | 0.7 m/s | 7.3 m/s | 8.4 m/s | 8.6 m/s | Simple calculations - addition. Expression created once. Iteration: repeatedly recalculated same expression. |

1 | 2*3 | 20 m | 0.9 m/s | 7.2 m/s | 9.3 m/s | 9.5 m/s | Simple calculations - multiplication. Expression created once. Iteration: repeatedly recalculated same expression. |

2 | 2/3 | 20 m | 0.6 m/s | 7.4 m/s | 10.8 m/s | 7.7 m/s | Simple calculations - division. Expression created once. Iteration: repeatedly recalculated same expression. |

3 | 2^3 | 20 m | 2.2 m/s | 4.3 m/s | 8.1 m/s | 7.7 m/s | Simple calculations - power. Expression created once. Iteration: repeatedly recalculated same expression. |

4 | sin(3) | 20 m | 0.3 m/s | 4.7 m/s | 6.4 m/s | 4.6 m/s | Simple calculations - sinus. Expression created once. Iteration: repeatedly recalculated same expression. |

5 | 2+3+4 | 20 m | 0.3 m/s | 4.2 m/s | 6.0 m/s | 4.0 m/s | Simple calculations - 2 additions. Expression created once. Iteration: repeatedly recalculated same expression. |

6 | 2+3+4+5 | 20 m | 0.2 m/s | 2.5 m/s | 4.0 m/s | 3.7 m/s | Simple calculations - 3 additions. Expression created once. Iteration: repeatedlyrecalculated same expression. |

7 | 2+(3+4)+5 | 20 m | 0.1 m/s | 1.9 m/s | 3.0 m/s | 2.3 m/s | Simple calculations - 3 additions + 1 parenthesis. Expression created once. Iteration: repeatedly recalculated same expression. |

8 | (2+3)+(4+5) | 20 m | 0.1 m/s | 1.4 m/s | 2.3 m/s | 2.1 m/s | Simple calculations - 3 additions + 2 brackets. Expression created once. Iteration: repeatedly recalculated same expression. |

9 | 2+(3+(4+5)) | 20 m | 0.1 m/s | 1.4 m/s | 2.3 m/s | 2.0 m/s | Simple calculations - 3 additions + 2 brackets. Expression created once. Iteration: repeatedly recalculated same expression. |

10 | sin(2+(3*4)^2)/10 | 20 m | 0.2 m/s | 1.0 m/s | 1.5 m/s | 1.4 m/s | Combination of different operations. Expression created once. Iteration: repeatedly recalculated same expression. |

11 | 2+x | 20 m | 0.5 m/s | 7.9 m/s | 8.7 m/s | 6.7 m/s | Simple calculations - addition with argument. Expression created once, containing argument 'x'. Iteration: argument value is being modified (increased), then expression is recalculated |

12 | 3f(x.y)-(2x+3*y) |
2 m | 42 th/s | 522 th/s | 621 th/s | 343 th/s | User defined function f(x,y)=3x+4y. Expression &Function created once, containing argument 'x'. Iteration: argument value is being modified (increased), then expression is recalculated |

13 | Constant c = new Constant("c". 5) | 1 m | 0.5 m/s | 1.2 m/s | 1.2 m/s | 1.2 m/s | Creating constants: Iteration: Constant c = new Constant("c", 5) |

14 | Constant c = new Constant("c=5") | 100 th | 1.1 th/s | 12.7 th/s | 12.5 th/s | 10.8 th/s | Creating constants: Iteration: Constant c = new Constant("c=5") |

15 | Argument x = new Argument("x". 5) | 1 m | 0.5 m/s | 1.0 m/s | 1.1 m/s | 1.1 m/s | Creating arguments: Iteration: Argument x = new Argument("x", 5) |

16 | Argument x = new Argument("x=5") | 100 th | 1.4 th/s | 14.0 th/s | 14.1 th/s | 13.9 th/s | Creating arguments: Iteration: Argument x = new Argument("x=5") |

17 | Function f = new Function("f". "x+y". "x". "y") | 1 m | 160 th/s | 338 th/s | 360 th/s | 361 th/s | Creating functions: Iteration: Function f = new Function("f", "x+y", "x", "y") |

18 | Function f = new Function("f(x.y)=x+y") | 100 th | 1.6 th/s | 7.5 th/s | 8.0 th/s | 7.9 th/s | Creating functions: Iteration: Function f = new Function("f(x,y)=x+y") |

19 | Expression e = new Expression("sin(2+(3*4)^2)/10") | 1 m | 5.9 m/s | 5.4 m/s | 13.7 m/s | 8.1 m/s | Creating expressions: Iteration: Expression e = new Expression("sin(2+(3*4)^2)/10") |

20 | Expression e = new Expression("sin(2+(3*4)^2)/10") | 100 th | 0.3 th/s | 1.5 th/s | 1.6 th/s | 1.7 th/s | Creating expressions + checking syntax: Iteration: Expression e = new Expression("sin(2+(3*4)^2)/10") |

## Run your own performance tests

### JAVA

java -cp mxparser.jar org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests

### .NET - i.e.Β from the PowerShell

[Reflection.Assembly]::LoadFile("full\exact\path\to\mxparser.dll") [org.mariuszgromada.math.mxparser.regressiontesting.PerformanceTests]::Start()

## Enjoy π

Best regards,

*Mariusz Gromada*

Download latest release β v.4.4.0 Gemoni: bin + doc + src (.zip 12.2 MB)

Source code .zipSource code .tar.gz View on GitHubMathSpace.pl