> Why is the FreeBSD Rotor version so slow?  If it is a Rotor thing, then
the device might need lots of cycles; if the CLI uses an interpreter instead
of  JIT, it seems like it might have to be a very fast interpreter.

If you break down the overhead I would assume it's coming from the
Activation process where code is being loaded, and then jitted for the first
time, as well as the overhead of the GC and the PAL, but I would have a hard
time thinking that Rotor and other similar VM's would require super fast
processors to work reasonably on the type of applications you would want to
run on an embedded device.

I can't imagine the overhead would be coming predominantly from the clock
cycles of the EE itself, maybe it's the inefficiencies of the PAL that you
are noticing as opposed to the inefficiencies of the EE itself.

Memory on the other hand is definitely a biggie.

Consequently you definitely wouldn't want to use a Switch Loop Interpreter,
that would indeed be very slow, but there has been quite a number of
advances in the Smalltalk Community with respect to high performance Virtual
Machine Interpreters.

With respect to Rotor I am a little more worried about the size of the Rotor
implementation of the VM and the minimum required libraries to get a simple
program running.

A while back I saw a talk on the Compact Framework and the presenter stated
that the CE implementation was designed from the ground up for the embedded
device profile meaning the data structures used to implement the EE, the set
functionality with respect to instructions provided by the EE itself, the
chosen libraries were all based on scenarios of a small device context which
could then fit on the potential resources provided by the embedded device.

I see the some of the potential MODs as the following:
    1. Custom Jitter to an "internal" Single Byte Instruction Set
    2. Threaded Code Interpreter
    3. Obvious pruning of the libraries

I don't know the details of the CE CLI implementation to know if they chose
a different object representation to cut down on the per class space
overhead.

Personally I am very interested in seeing more information on what some of
the MODS should be to get Rotor to run on a small scale system for example
P3 600, 32 MEGs of RAM and a 4 GB hard drive.

Yahya

Reply via email to