Home→Forums→MonoBrick EV3 Firmware→benchmark test: HaWe brickbench – for C# / Mono?
- This topic has 43 replies, 4 voices, and was last updated 9 years, 8 months ago by Helmut Wunder.
-
AuthorPosts
-
August 29, 2014 at 14:18 #4718
Anders SøborgKeymasterHi
Is there some sort of official table that I can refer to on the website?
/Anders
August 30, 2014 at 09:25 #4726
Helmut WunderParticipanthi,
here I listed the current most updated results:
http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64772and this is where I listed my ANSI C reference code for EV3 (gpp C/C++ plus John Hansen’s BricxCC brickOS API):
http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095&start=60#p64494subsequently you can find different other programming platforms (partially some benchmark parts missing):
NXC code for NXT: code by myself,
C/C++ nxtOSEK code for NXT: ported by Martin Aumair,
RobotC code for NXT and EV3: ported by Xander Soldaat,
Java/leJOS code for NXT and EV3: ported by Andy Shaw
C#/Mono code for EV3: ported by Vlad Ruzov
Sketch C code for Arduino Due: ported by “ArduFe”- This reply was modified 10 years, 2 months ago by Helmut Wunder.
September 5, 2014 at 21:00 #4788
Helmut WunderParticipanthi,
are there updates by the latest C#/Mono release plus missing display benchmarks ?September 6, 2014 at 11:54 #4789
Vlad RuzovParticipanthi,
I will try to move forward with display benchmarks on this weekend.September 7, 2014 at 19:38 #4806
Helmut WunderParticipanthi Vlad,
a very good job – I’m honored to see that you took the challenge for completing the benchmark test!
as I wrote already here…: http://www.monobrick.dk/forums/topic/lcd-extensions/#post-4805 😉November 9, 2014 at 21:34 #4964
Vlad RuzovParticipantHi,
I`m not sure that drawing functions are needed on the LegoBrick but I have done its for complete HW brickbench test.
Not so far Anders merged LcdDraw to the firmware and today Ifinally had the time for finish the test.
I hope that Helmut will looking into this message and will update results table on his site.The full test source can be found here: https://github.com/vladru/MonoBrickBench
The application can be builded in Xamarin studio 5.5.3 with MonoBrick firmware Add-In.
If you will try to open this project in Visual Studio you will catch unsupported format error. Probably this issue caused by using of Xamarin Add-In.Below the timing (in milliseconds) of steps that was missing in the previous C# test release:
Display_text test (5 loops): 395, 242, 268, 259, 262
Graphics test (5 loops): 475, 180, 182, 172, 199November 10, 2014 at 20:28 #4969
Helmut WunderParticipanthey,
thank you for contributing!
By these benchmarks now Mono/C# reached a new highscore !
😎ps, BTW:
here are 3 examples where graphic screen output was needed:Astar: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6619&p=55745&
Speech recognition: http://www.mindstormsforum.de/viewtopic.php?f=70&t=6386&p=53924
PID regulation tuning: http://www.mindstormsforum.de/viewtopic.php?f=25&t=7521&p=62137#p61930
- This reply was modified 10 years ago by Helmut Wunder.
November 10, 2014 at 22:09 #4973
Helmut WunderParticipantps, forgot:
visualization of cam object detection :
February 13, 2015 at 15:27 #5250
Helmut WunderParticipanthi,
a recent note:
a bug has been reported to the float_math benchmark where NANs have been generated, so an additional line
s=s*s
has been added at the end.so the updated procedure would be supposed to look as follows:
// updated sub-test for HaWeBench 1.9.0 C#/Mono static void TestFloatMath() { double s = 3.141592; int y; for (y = 0; y < 5000; ++y) { s *= Math.Sqrt(s); // <<<<< no issue any longer s = Math.Sin(s); s *= Math.Cos(10.5 * s); s = Math.Sqrt(s); // <<< hopefully no additional issue now :-/ s = Math.Exp(s); s *= s; // <<<<<<<<<<<<< new line !!!!!!!!!!!!!!!!! } //return s; }
On some platforms the new benchmarks (1.0.9) already have been updated by minor changes, RobotC, C#, and leJOS still pending yet.
thanks for your interest,
kind regards,
HelmutFebruary 13, 2015 at 20:41 #5251
Helmut WunderParticipantunfortunately the NAN bug still was not fixed yet, the sub test has been fixed again – now all intermediate values have been controlled and verified, no NANs any more. This is the corrected current sub test code for float and transcendental functions:
static void TestFloatMath() { double s = 3.141592; int y; for (y = 0; y < 1000; ++y) { s *= Math.Sqrt(s); s = Math.Sin(s); s = Math.Exp(s); s *= s; } //return s; }
February 17, 2015 at 19:57 #5252
Helmut WunderParticipantBTW,
how much non-volatile memory for code + stored data is available by Mono on the EV3?As just a user reported, on the original Lego flash only 5M are free, same 5M non-volaitle memory are free for excutables compiled by gpp C and CSLite toolcahins – the rest is used for OS and VM.
If Mono is booting by a SD card (e.g. 4GB or 16GB): how much memory is free for variables or program code over all at most?BTW 2:
the fixed leJOS benchmark has been published, but for the fixed adapted benchmarks the runtimes haven’t changed so much.
http://www.mindstormsforum.de/viewtopic.php?f=71&t=8095#p64772Updated Mono benchmarks would be very much appreciated though! 🙂
BTW 3:
Another new programming language has appeared on the horizon: EV3-Basic, made just for kids and beginners, targeting the Lego lms2012 VM by MS Small Basic and homebrewed DLLs for autonomous and remote programs:https://github.com/c0pperdragon/EV3Basic
http://www.mindstormsforum.de/viewtopic.php?f=25&t=8529#p66211share and enjoy!
- This reply was modified 9 years, 9 months ago by Helmut Wunder.
February 17, 2015 at 20:00 #5253
Anders SøborgKeymasterHi Guys
Thanks a lot for all your hard work. Right now I am on vacation. But I will have a look at it once I get back. Keep up the good work.
/Anders
February 21, 2015 at 11:36 #5263
Helmut WunderParticipanthi,
would please be someone so kind and test the new benchmark, after replacing the old float-Test
in this test program class
https://github.com/vladru/MonoBrickBenchby the new one?
static void TestFloatMath() { double s = 3.141592; int y; for (y = 0; y < 1000; ++y) { s *= Math.Sqrt(s); s = Math.Sin(s); s = Math.Exp(s); s *= s; } //return s; }
February 28, 2015 at 11:10 #5274
Helmut WunderParticipanthey y’all,
what about a new test run ?March 2, 2015 at 13:46 #5275
Anders SøborgKeymasterHi Helmut
I will try and have a look at it tonight. Thanks a lot for your effort.
/Anders
-
AuthorPosts
You must be logged in to reply to this topic.
Follow