[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
/Jörg
--
The worst of harm may often result from the best of intentions.
- [Chicken-users] System load,
Joerg F. Wittenberger <=