I've taken some statistics on how the boehm gc performs with our current application, it has terrible worst case performance, often stopping for hundreds of mS at a time. I tried calling GC_enable_incremental() but that seems to cause the code to explode. I don't have any idea how to obtain similar statistics for the refcounting gc, which is also non-realtime. Perhaps it is in fact worse than boehm in this regard. Over-all CPU usage is significantly less with boehm, but a lot can happen in 300mS of a garbage collection. I don't think it's feasable compiling the pypy interpreter with refcounting, it takes a truly vast amount of time (some hours...) It would be good using the pypy interpreter to script our rpython codebase, but this gc issue seems to be a blocker. Simon.
Hi Simon, On Tue, Jan 29, 2008 at 09:06:22AM -0800, Simon Burton wrote:
I've taken some statistics on how the boehm gc performs with our current application, it has terrible worst case performance, often stopping for hundreds of mS at a time.
What is the context? It's unclear to me if you're talking about PyPy the Python interpreter, another stand-alone RPython program, or a CPython extension module translated from RPython. In all cases but the latter you should definitely try our own GCs instead of Boehm. The generational GC in particular, while not real-time in any sense of the word, is probably the one with the least amount of long pauses - most collections are very quick. A bientot, Armin
On Mon, 4 Feb 2008 11:58:12 +0100 Armin Rigo <arigo@tunes.org> wrote:
Hi Simon,
On Tue, Jan 29, 2008 at 09:06:22AM -0800, Simon Burton wrote:
I've taken some statistics on how the boehm gc performs with our current application, it has terrible worst case performance, often stopping for hundreds of mS at a time.
What is the context? It's unclear to me if you're talking about PyPy the Python interpreter, another stand-alone RPython program, or a CPython extension module translated from RPython.
Either of the first two.
In all cases but the latter you should definitely try our own GCs instead of Boehm. The generational GC in particular, while not real-time in any sense of the word, is probably the one with the least amount of long pauses - most collections are very quick.
I am hoping to be working with top of tree again soon and will let you know what i find. thankyou, Simon.
A bientot,
Armin
participants (2)
-
Armin Rigo -
Simon Burton