[Ns-developers] ns3: boehm garbage collection

Gustavo Carneiro gjcarneiro at gmail.com
Wed Jan 31 09:58:17 PST 2007


On 1/31/07, craigdo at ee.washington.edu <craigdo at ee.washington.edu> wrote:
>
>
> >   OK, here are correct figures.  CPU time with GC is almost
> > double, virtual memory size is about the same, RSS is
> > slightly larger with GC.
> >
> >   I propose to finish this futile discussion and propose to
> > not use GC :-)
>
> I'm coming into this discussion late, but I agree with this
> perspective.  GC
> would be low on my list of priorities even if there were no performance
> impacts.  In an earlier message someone mentioned that python would be a
> higher priority and I also agree with that.


  It was I that suggested python, the same person that suggested boehm GC :)


In my experience, in system-level programming there tend to be caches of
> frequently allocated items and malloc / free tends to be an interim thing
> that is quickly optimized out.  Although GC may be convenient, and cool,
> it
> may have limited usefulness in the long run in the low-level system.  It
> is
>
nice for high-level programming, but certainly not a requirement.  If
> high-level programming ends up as scripting in python, it may not be an
> issue at all since python deals with GC in its own way.


  I agree but  I was trying to make the core NS code more easy to use even
from C++, since in many situations you can't afford to use python.  This
stemmed from the Packet parameter passing semantics discussion we had here a
couple of months back.


As far as the python interfaces go, I think that they are more important
> since python scripting is an architectural feature we want.  IMO it would
> be
> good to prototype the system from top to bottom as soon as possible to
> work
> out any surprises before proceeding to what I see as nice-to-have features
> like garbage collection.


  Yes, I really really want to have Python some day.

  But it's not true that we a top-down design is always the best.  Sometimes
a lower-layer requirement has a big impact on the higher-layer interfaces.
I prefer an evolutionary design, where you roughly design both higher layers
and lower layers first, then do further iterations to improve them.

  Thanks,

-- 
Gustavo J. A. M. Carneiro
"The universe is always one step beyond logic."


More information about the Ns-developers mailing list