[Ns-developers] ns3: boehm garbage collection
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,
> may have limited usefulness in the long run in the low-level system. It
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
> good to prototype the system from top to bottom as soon as possible to
> 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.
Gustavo J. A. M. Carneiro
"The universe is always one step beyond logic."
More information about the Ns-developers