To LUGNET HomepageTo LUGNET News HomepageTo LUGNET Guide Homepage
 Help on Searching
 
Post new message to lugnet.robotics.rcxOpen lugnet.robotics.rcx in your NNTP NewsreaderTo LUGNET News Traffic PageSign In (Members)
 Robotics / RCX / 2845
2844  |  2846
Subject: 
FW: Another Challenge. Performance Comparison
Newsgroups: 
lugnet.robotics.nxt, lugnet.robotics.rcx
Date: 
Mon, 29 Jan 2007 13:17:43 GMT
Viewed: 
4258 times
  
Dick,

2 questions:

1) Regarding the benchmark code used for performance analysis.
How about something which will require intense sensor feedback? How about
simple alignment code? I really want to stick with RCX for teaching as kids
have to do a lot more work to gain the accuracy.

2) As I understand, the RobotC is still in beta.  Will the final first
release include event driven calls?

--Elizabeth


-----Original Message-----
From: news-gateway@lugnet.com [mailto:news-gateway@lugnet.com] On Behalf Of
Dick Swan
Sent: Sunday, January 21, 2007 7:57 AM
To: lugnet.robotics@lugnet.com; lugnet.robotics.nxt@lugnet.com
Subject: RE: Another Challenge. Performance Comparison


> Claude Baumann wrote on Sunday, January 21, 2007 5:30 AM
> 
> I would like to ask for participating in my "another comparison"
> thread challenge, to compare the performences in ultimative tasks of
> different environments and firmware types. This would be more
> fruitful.

Here's my distilled summary of relative execution speeds of various
Mindstorms products / environments. All data is normalized to the
fastest performance.

Relative   Platform     Product
  Speed
   1X        NXT        RobotC
   2X        NXT        Robolab
  15X        NXT        NXT-G

5-10X        RCX        BrickOS
  10X        RCX        RobotC
  20X        RCX        Robolab
500X        RCX        Original LEGO firmware

Above is a blend of a number of different measurements for "real" tasks.

It's very difficult to come up with a true comparison when looking at
speeds of individual instructions in the different VMs because there's
so much difference in the power of the underlying "opcodes". For
example, a register oriented instruction set "X += Y" (RobotC, Robolab,
LUA) might take a single opcode whereas in a stack oriented instruction
set (LeJOS?) it might take four opcodes (PUSH, PUSH, ADD, POP) to
accomplish the same thing. Stack based instruction sets are "best" with
some other atrributes.

I have execution times for individual opcodes for RobotC and NXT-G.
[NXT-G measurements are thanks to Brian Davis]. Because of above, you
can't do a direct comparison. Here's timing for simple arithmetic
operations:

1. RobotC on NXT:  2 to 5 microseconds
2. RobotC on RCX: 15 to 50 microseconds
3. NXT-G:         30 microseconds + operand lookup.

The RobotC timings include operand lookup. NXT-G does not when the
operand is sensor variable or motor encoder which can take another 100s
(or 1000s for ultrasonic) of microseconds to look up.



1 Message in This Thread:

Entire Thread on One Page:
Nested:  All | Brief | Compact | Dots
Linear:  All | Brief | Compact
    

©2005 LUGNET. All rights reserved. - hosted by steinbruch.info GbR