Forum Replies Created
-
AuthorPosts
-
Vlad RuzovParticipantHello,
I have made some memory tests under C#.
Memavail() is not available in .Net platform but there are many other memory functions.
Unfortunately most of them does not working in Mono/C#.
At the end I decided simply try to allocate as many memory as possible.
As a result, I found that the maximum memory szie available for code and data is 42 megabytes.
The source code of the test program can be found here:
https://github.com/vladru/BrickMemory/archive/master.zipRegarding other points for Mono/C#:
12 – 17 : communication function are not implemented at present,
18: 64 bit.float – YES
19: >=4D arrays – YES
20: Recursions – YES
21: Multithreading – YES
22: API complete – ??
motors – YES
standard sensors (EV3 and NXT) – YES
some of HiTec sensors too (http://www.monobrick.dk/MonoBrickFirmwareDocumentation/annotated.html)
text screen – YES, graphic – whie NOT.
23: IDE – YES. Super powerful Xamarin Studio including debugger with breakpoints.So, as I can see at Mono/C# firmware sources the graphic functions will be implemented in the next firmware release and then I will try to make graphics test.
Regarding RobotC:
I have used ‘benchmak EV3.c’ from the standard RobotC installation (v.4.10) (http://robotc.net/download/lego/)
I will see into new 4.25 robotc release soon…/Vlad
Vlad RuzovParticipantThe example below works with old dll (from sd image) and does not work with dll that you provided.
using System; using System.Threading; using MonoBrickFirmware.Display; namespace HelloWorld { public static class Program { public static void Main( string[] args) { LcdConsole.WriteLine ("Hello World!"); Thread.Sleep (2000); } } }
Vlad RuzovParticipantIf I replace MonoBrickFirmware.dll in EV3 apps folder by dll that you provided then all standard examples ( LcdExample etc.) do not work properly. They put random pixels on the screen.
Vlad RuzovParticipantHi Max,
If I use DLL you provided OR build DLL from GitHub sources and use it then the brick LCD does not work properly – only random points shown instead of text.
May be it is required to do something else than DLL replacement ?Thank You. Vlad.
Vlad RuzovParticipantMartin,
I use Xamarin 5.2 with Mono 3.3.0 on win 7 for build EV3 Mono C# projects.
To avoid ‘System.Globalization.SortVersion’ build error You need uncheck ‘Use MSBuild engine’ option at Project -> <YourProjectName> Options -> General.
You can see more details here:
http://forums.xamarin.com/discussion/16467/build-failed-could-not-find-type-system-globalization-sortversionVlad.
Vlad RuzovParticipantHelmut,
please do not be alarmed – I was not embarrassed or offended by your post.Regardin test looping:
My assumption that the first loop runtime is not very important.
When the program control a real device (robot etc.) it have repeat management algorithm in a loop.
First loop runtime simlpe gives a delay at the start, but does not affect the response time in the future.
So, perhaps in the test results will be reasonable to publish average runtime of several (at least 5) loops…I will look to your questions and tasks and will try come back ASAP.
Thank you.
Vlad.
Vlad RuzovParticipantHello Helmut,
Thank you for interest in my work.1) I have added Copyright rules to the source code and have pushed changes to the GitHub repositories.
2) I have closed access to the google docs results table referenced above but I have no possibility to change previous post.
3) You can download compressed zip folder with sources here:
https://github.com/vladru/MonoBrickBench/archive/master.zipProgram.cs and RandM.cs are text files with C# code but all others files are needed for build solution.
3) The test was performed in a loop for show a difference between first and others runtimes.
The feature of Mono C# is that exe-file have no compilied executable code but have so-called P-Code which converted to machine-dependent code on the first call.
So the first run of any procedure or function takes longer runtime than the following.4) The current version of MonoBrick EV3 firmware have no some graphical functions like circle and filled ellipse so I did not make the graphics tests.
5) Please indicate where the requirements, specifications or clarification for tests and data at clauses 3, 10-21 can be found.
I would like also to pay attention that RobotC HW brickbench test runned on my EV3 brick has better results than those that are published on your site.
But at any case, the MonoBrick C# performance about 50 times higher than the RobotC performance.Regards, Vlad.
Vlad RuzovParticipantI have ported the HW brickbench benchmark test to the Monobrick C# and then run RobotC and C# test on my EV3 brick.
The final results are:- Integer add/subtr.
- Integer mult./div.
- Float operations
- Rnd.num.generation
- Matrix algebra
- Arrays shell sort.
- Toal milleseconds
More results can be found here:
https://docs.google.com/spreadsheets/d/1WpeffSpUEWKA_s7lOdseSbkDTSA1RQ_wzAI94Q_HLO0/edit?usp=sharingSource C# code of that test is kept at these Github repositories:
https://github.com/vladru/MonoBrickBench -
AuthorPosts
Follow