## Hardware & software used for performance testing

### mXparser performance tests - Raspberry PI 2 - JAVA 1.8 vs MONO 3.2.8

- Raspberry PI 2 + Raspbian Jessie
- ARMv7 quad-core ARM Cortex-A7 CPU 900 MHz
- 1GB
- Java version - 1.8.0
- MONO version - 3.2.8

Id | Oper / Task | Iter [#] | JAVA | MONO | [x] | Test descr |
---|---|---|---|---|---|---|

0 | 2+3 | 20 m | 111 th/s | 296 th/s | 0.4 x | Simple calculations - addition. Expression created once. Iteration: repeatedly recalculated same expression. |

1 | 2*3 | 20 m | 110 th/s | 334 th/s | 0.3 x | Simple calculations - multiplication. Expression created once. Iteration: repeatedly recalculated same expression. |

2 | 2/3 | 20 m | 109 th/s | 328 th/s | 0.3 x | Simple calculations - division. Expression created once. Iteration: repeatedly recalculated same expression. |

3 | 2^3 | 20 m | 110 th/s | 287 th/s | 0.4 x | Simple calculations - power. Expression created once. Iteration: repeatedly recalculated same expression. |

4 | sin(3) | 20 m | 67 th/s | 240 th/s | 0.3 x | Simple calculations - sinus. Expression created once. Iteration: repeatedly recalculated same expression. |

5 | 2+3+4 | 20 m | 53 th/s | 202 th/s | 0.3 x | Simple calculations - 2 additions. Expression created once. Iteration: repeatedly recalculated same expression. |

6 | 2+3+4+5 | 20 m | 32 th/s | 147 th/s | 0.2 x | Simple calculations - 3 additions. Expression created once. Iteration: repeatedlyrecalculated same expression. |

7 | 2+(3+4)+5 | 20 m | 24 th/s | 112 th/s | 0.2 x | Simple calculations - 3 additions + 1 parenthesis. Expression created once. Iteration: repeatedly recalculated same expression. |

8 | (2+3)+(4+5) | 20 m | 18 th/s | 93 th/s | 0.2 x | Simple calculations - 3 additions + 2 brackets. Expression created once. Iteration: repeatedly recalculated same expression. |

9 | 2+(3+(4+5)) | 20 m | 18 th/s | 93 th/s | 0.2 x | Simple calculations - 3 additions + 2 brackets. Expression created once. Iteration: repeatedly recalculated same expression. |

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

11 | 2+x | 20 m | 109 th/s | 322 th/s | 0.3 x | 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 | 6 th/s | 36 th/s | 0.2 x | 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 | 118 th/s | 76 th/s | 1.6 x | Creating constants: Iteration: Constant c = new Constant("c", 5) |

14 | Constant c = new Constant("c=5") | 100 th | 1.4 th/s | 0.3 th/s | 5.4 x | Creating constants: Iteration: Constant c = new Constant("c=5") |

15 | Argument x = new Argument("x". 5) | 1 m | 111 th/s | 78 th/s | 1.4 x | Creating arguments: Iteration: Argument x = new Argument("x", 5) |

16 | Argument x = new Argument("x=5") | 100 th | 1.4 th/s | 0.3 th/s | 5.4 x | Creating arguments: Iteration: Argument x = new Argument("x=5") |

17 | Function f = new Function("f". "x+y". "x". "y") | 1 m | 34 th/s | 24 th/s | 1.4 x | Creating functions: Iteration: Function f = new Function("f", "x+y", "x", "y") |

18 | Function f = new Function("f(x.y)=x+y") | 100 th | 0.7 th/s | 1.5 th/s | 0.5 x | 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 | 1.6 m/s | 1.2 m/s | 1.4 x | 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.2 th/s | 0.2 th/s | 0.8 x | 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