Linked by Owen Anderson on Mon 19th Apr 2004 05:43 UTC
General Development For years the development scene has been dominated by the C family of languages, primarily C itself and its immediate successor C++. Recent years have given rise to other C-descendents, however, such as Sun's Java and Microsoft's C#.
Permalink for comment
To read all comments associated with this story, please click here.
@Allan Sandfeld
by Rayiner Hashem on Mon 19th Apr 2004 14:43 UTC

It should also be noted that advanced GCs give you a lot of flexibility. Take, for example, the MPS (Memory Pool System):

http://www.ravenbrook.com/project/mps/doc/2002-01-30/ismm2002-paper...

It allows for multiple pools of memory to exist for different purposes. Eg: you can have a generational GC'ed pool for general-purpose allocation, a manual heap for objects that should not be collected, a special slab allocator pool for fixed-sized objects, etc. Since a kernel allocates mainly fixed-size objects (see Linux's slab allocator) you could use the pool allocator for most allocations, and use the GC'ed heap for temporary objects. Since the heap would then be quite small, GC would take almost no time at all, and latency would not be a factor.

@the_trapper: It should be noted that there is no reason to believe that a GC would slow down a kernel any more than it would slow down a regular program, which is little to none. It would probably have a significant impact on latency, but you can get around that by disabling GC on critical paths.