Archive

Archive for December, 2012

Comparing the performance of Jace.NET and NCalc

December 14, 2012 5 comments

I started the development on Jace because I wanted to develop a high performing mathematical formula execution engine that worked on all the major Microsoft platforms (.NET, Windows RT, Windows Phone 7.5 and Windows Phone 8). Jace was not the first such framework, other calculation engines existed already; like for example NCalc. Unfortunately, to my knowledge no engine was available that also supported newer platforms like Windows RT or Windows Phone.

I decided to compare the performance of Jace with an important competitor: NCalc. I downloaded NCalc 1.3.8.0 and Jace 0.7 using NuGet. Both engines were used with the default settings and were given the same 10 random generated formulas with 3 variables. Each function was executed ā€œnā€ times with random input.

The graph below clearly shows that Jace.NET greatly outperforms NCalc. The x-axis is showing the total number of formulas executed and the y-axis the total time in milliseconds.

Benchmark Jace.NET vs. NCalc (time in ms.)

As the developer behind Jace, I am very happy to notice that the time I have spent on the dynamic compiler of Jace is paying off. It is responsible for the high performance of execution. This dynamic compiler is available on all platforms Jace supports (.NET, Windows RT, Windows Phone 7.5 and Windows Phone 8) and it is the default setting.

The source of the application used for the benchmark can be found at:
https://skydrive.live.com/redir?resid=7A3CD9AFBD57E81E!761

Homepage NCalc:
http://ncalc.codeplex.com/

Homepage Jace.NET:
https://github.com/pieterderycke/Jace

Categories: Jace.NET