[Haskell-cafe] Estimating the time to garbage collect

John Van Enk vanenkj at gmail.com
Fri May 1 09:29:41 EDT 2009

I think the problem becomes slightly easier if you can provide an upper
bound on the time GC will take. If I understand your problem domain, Neil,
you're most concerned with holding up other processes/partitions who are
expecting to have a certain amount of processing time per frame. If we can
give an upper bound to the GC time, then we can plan for it in the schedule
without upsetting the other processes.

I don't have an answer (though I'd love one), but I do think that asking for
an upper bound substantially simplifies the problem (though, I could be
wrong) and still gives you the characterisics you need to give a 'time to
On Fri, May 1, 2009 at 4:14 AM, Neil Davies <
semanticphilosopher at googlemail.com> wrote:

> Hi
> With the discussion on threads and priority, and given that (in Stats.c)
> there are lots of useful pieces of information that the run time system is
> collecting, some of which is already visible (like the total amount of
> memory mutated) and it is easy to make other measures available - it has
> raised this question in my mind:
> Given that you have access to that information (the stuff that comes out at
> the end of a run if you use +RTS -S) is it possible to estimate the time a
> GC will take before asking for one?
> Ignoring, at least for the moment, all the issues of paging, processor
> cache occupancy etc, what are the complexity drivers for the time to GC?
> I realise that it is going to depend on things like, volume of data
> mutated, count of objects mutated, what fraction of them are live etc - and
> even if it turns out that these things are very program specific then I have
> a follow-on question - what properties do you need from your program to be
> able to construct a viable estimate of GC time from a past history of such
> garbage collections?
> Why am I interested? There are all manners of 'real time' in systems, there
> is a vast class where a statistical bound (ie some sort of 'time to
> complete' CDF) is more than adequate for production use. If this is possible
> then it opens up areas where all the lovely properties of haskell can be
> exploited if only you had confidence in the timing behaviour.
> Cheers
> Neil
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20090501/8a95bd99/attachment.htm

More information about the Haskell-Cafe mailing list