Guile Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: gc notes available
Greg Harvey <Greg.Harvey@thezone.net> writes:
> Mikael Djurfeldt <mdj@nada.kth.se> writes:
>
> > Should I really need to do all dynamic GUI stuff in C code?
>
> Definately not. But, is it going to be generating that much garbage
> that the gc will be invoked so many times as to slow the thing down
> noticably?>
> [...]
> This is a desire for very short, unnoticable pauses, and that's the
> goal anyway.
If I can't notice the GC pauses in the behaviour of the GUI, then
*I'm* happy (although I can imagine that better-than-human realtime
performance could be wished by other types of applications).
But I have one additional wish (I haven't yet had time to read your
text, so I don't know if you address this problem): When Guile
switches to real threading (POSIX threads) we'll have to stop all
threads, using mutices, before GC with the current collector.
> > May I ask: How important is *performance* in a scripting language?
>
> Important, but not the most vital bit in most uses. The main benefit
> to a scripting language is the programming time it saves.
> [...]
Exactly. This is what I meant when I wrote the question. (But it
seems to me that both you and thi interpreted it differently. The
last lines of my letter was supposed to mean: Slowing down Guile a
little may be worth the cost if it makes Guile useful for new classes
of tasks, like those dependent upon realtime performance.)
> It doesn't matter to me whether it takes 5 ms or 5 seconds to start
> up
(This is really a different issue than the one we discuss above.)
I don't agree. While performance may not be the most important thing
in a scripting language it is extremely important that it doesn't take
5 s to start up. I want to write Guile scripts to use as tools
from the command line. That kind of scripts has do startup swiftly.
I would get crazy if commands like `ls' and `cd' took 5 s to start.
Many of my bourne shell scripts are tools on the same level. An
example of the kind of scripts I'm referring to is a "module" command
which I've written in Guile. I use it to switch between different
versions of packages by altering environment variables like PATH,
LD_LIBRARY_PATH etc.
But I don't think we have to worry much longer about start up time in
Guile. Gary is rewriting I/O---that will be a big boost. Eventually,
when we get the new module system and have had time to do a bit of
restructuring, startup time will be acceptable.
/mdj
Guile Home |
Main Index |
Thread Index