[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Chicken-users] System load

From: Joerg F. Wittenberger
Subject: [Chicken-users] System load
Date: 16 Jan 2003 12:52:29 +0100

Hi Felix and all,

I'm fighting the sad fact, that Askemos runs much, much faster on
rscheme than on chicken.  Profiling reveals no obvious holes in the
Askemos code.  But I came across a few issues and I *feel* something
is wrong with the multi threading (and chickenlib based asynchronous
i/o).  I'd propose to do a few changes.

Unfortunately I need more information about the virtual machine
chicken implements.  Could we have an overview please.

What do these things, are they compiled into native Code?
##sys#setslot   (I guess I know)
##sys#setislot  (I have no idea)

The heavy use of ##sys#slot et. al. poses a problem to me: I can't
read the source in a reasonable time.  Are there any reasons (besides
lazyness ;-) not to use define-constant (or or a macro or what ever is
replaced by chicken with a slot number; which type of definition
should I use here)?

I've been told, that allocations would be cheap with chicken, but I
guess at least in the ##sys#schedule it's worth to save them.  The
##sys#ready-queue-* is a misnomer, it's somehow the whole thread
queue.  Can I have a ready queue, which is just that, i.e, a test
(null? ##sys#ready-queue) => #t would mean 'the current thread is the
only one ready to run'.  I need a constant time predicate here for
proper handling of select(2).

Is there other code, which I would break, if I would go to change a
few things.  Please drop me a note, what I want to look at.

Best regards


The worst of harm may often result from the best of intentions.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]