We already have GHC.Stats. It would be nice if it was put there.
On Thu, Jul 31, 2014 at 6:55 PM, Austin Seipp <[email protected]> wrote: > The 'safe' mark was just an oversight from me - I don't really think > it matters, considering it's only called once at startup anyway. > Similarly I imagine the oversight is negligible in the Criterion or > ekg case. > > And also, take note the conditional is very specific; you want > COLLECT_GC_STATS only when NO_GC_STATS is the current setting - if you > unconditionally force COLLECT_GC_STATS, then things like `+RTS > -sstderr -RTS` will no longer work. I mention this because I messed it > up originally. :) > > Given we already use this in GHC, and other users want it, it's > probably reasonable to put such an interface in `base` somewhere, e.g. > > data GCStatisticsOption = NoStatistics | CollectStatistics | > VerboseStatistics ... > > getGcStatistics :: IO GcStatisticsOption > setGcStatistics :: GcStatisticsOption -> IO () > modifyGcStatistics :: (GcStatisticsOption -> GcStatisticsOption) -> IO () > > or something like that. > > The special case inside GHC could then be handled with such an API I suppose. > > > On Thu, Jul 31, 2014 at 11:41 AM, Johan Tibell <[email protected]> wrote: >> Indeed. I filed a bug earlier today to make use of this. >> >> On Thu, Jul 31, 2014 at 6:15 PM, Edward Kmett <[email protected]> wrote: >>> Interesting. >>> >>> I suppose ekg could also (ab)use this. >>> >>> Johan? >>> >>> -Edward >>> >>> >>> On Thu, Jul 31, 2014 at 5:51 AM, Simon Marlow <[email protected]> wrote: >>>> >>>> Hey Bryan, >>>> >>>> Sorry for the delay. >>>> >>>> >>>> On 15/07/14 01:57, Bryan O'Sullivan wrote: >>>>> >>>>> I spent a bit of time over the weekend trying to figure out how to force >>>>> the RTS to collect GC statistics, but was unable to do so. >>>>> >>>>> I'm currently working on enriching criterion's ability to gather data, >>>>> among which I'd like to see GC statistics. If I try to obtain GC stats >>>>> using criterion when I'm not running the benchmark app with +RTS -T, I >>>>> get an exception. >>>>> >>>>> Is there a way to allow criterion to forcibly enable stats collection? >>>>> My efforts to do so have gotten me nowhere. It would be unfortunate if I >>>>> had to tell users of criterion that they should always run with +RTS -T >>>>> or add a -rtsopts clause, as they'll simply forget. >>>>> >>>>> And while I'm asking, why does GHC not simply collect GC stats by >>>>> default? Collecting them seems to have zero cost, from what I can see? >>>> >>>> >>>> So you can do this in the same way as GHC. See >>>> >>>> >>>> https://phabricator.haskell.org/diffusion/GHC/browse/master/ghc/hschooks.c;6fa6caad0cb4ba99b2c0b444b0583190e743dd63$18-28 >>>> >>>> Which is imported into Haskell like this: >>>> >>>> >>>> https://phabricator.haskell.org/diffusion/GHC/browse/master/ghc/Main.hs;6fa6caad0cb4ba99b2c0b444b0583190e743dd63$847-848 >>>> >>>> I'm not sure why it's marked "safe", but it doesn't hurt. >>>> >>>> This API is kind-of public, in the sense that we deliberately expose it >>>> via the Rts.h header, and I'll try not to break it gratuitously. >>>> >>>> Cheers, >>>> Simon >>>> >>>> _______________________________________________ >>>> ghc-devs mailing list >>>> [email protected] >>>> http://www.haskell.org/mailman/listinfo/ghc-devs >>> >>> >> _______________________________________________ >> ghc-devs mailing list >> [email protected] >> http://www.haskell.org/mailman/listinfo/ghc-devs >> > > > > -- > Regards, > > Austin Seipp, Haskell Consultant > Well-Typed LLP, http://www.well-typed.com/ _______________________________________________ ghc-devs mailing list [email protected] http://www.haskell.org/mailman/listinfo/ghc-devs
