forwarded message from Christian Tismer (fwd)

Wiger Ulf ulf.wiger@REDACTED
Fri Apr 18 01:36:18 CEST 2003


Of course, it's always difficult to know exactly what's being
tested, and in this case also difficult to know what hardware
was used.

The erlang processor, ECOMP, could task switch in just a few
clock cycles, so it would have been up to it.

Regular erlang? Well, on my measly 400 MHz Pentium running
Windows 98, I measure about 800,000 context switches/s, which
does not compare (even though it probably suffices for most
applications). That's two erlang processes yielding to each other
in a tight loop.

Writing a simple call dispatcher, that calls a function object in each
loop (I suspect it's more similar to what Stackless Python does,
but don't really know anything about it), I register slightly over 2
million/s.

OK, cute, but what is the application?

/Uffe


From: "Bijan Parsia" <bparsia@REDACTED>

> Is Erlang up to this challenge?
>
> > Let me simply end this pamphlete with some simple sentences:
> > Stackless Python is more capable of tasklets switching than any
> > other light-weight threading software package.
> > If anyone disagrees, please give me a runnable counter-example.
> >
> > Here are some impressive site-specific time measurements, which
> > especially show, that 20.000.000 cframe tasklet switches per
> > second are really, really hard to beat.
> >
> > Pythonon Win32:
> >
> > D:\slpdev\src\2.2\src\Stackless\test>..\..\pcbuild\python taskspeed.py
> > 10000000 frame switches      took 3.83061 seconds, rate =    2610551/s
> > 10000000 frame softswitches  took 2.40112 seconds, rate =    4164718/s
> > 10000000 cfunction calls     took 2.13033 seconds, rate =    4694098/s
> > 10000000 cframe softswitches took 0.49296 seconds, rate =   20285627/s
> > 10000000 cframe switches     took 1.98907 seconds, rate =    5027486/s
> > 10000000 cframe 100 words    took 3.93737 seconds, rate =    2539768/s
> > The penalty per stack word is about 0.980 percent of raw switching.
> > Stack size of initial stub   = 14
> > Stack size of frame tasklet  = 58
> > Stack size of cframe tasklet = 35




More information about the erlang-questions mailing list