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