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: 
3655 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
    

Custom Search

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