profiling a constructor?

Ben Gamari ben at
Sat May 23 13:21:20 UTC 2020

Yes, you can use +RTS -hT, which is available even in the non-profiled runtime. This breaks down the heap by closure type.   Of course,  you don't have visibility into the source of the allocation, but this is often still quite useful. 

— Ben 

On May 23, 2020 8:58:30 AM EDT, Richard Eisenberg <rae at> wrote:
>Hi devs,
>Is there a way to count the number of times a particular constructor is
>allocated? I might want to know, say, the total number of cons cells
>allocated over the course of a program, or (in my actual case) the
>total number of FunTy cells allocated over the course of a program.
>I can try to do this with an SCC. But it's very clunky:
>* The constructor may be used in a number of places; each such place
>would need the SCC.
>* SCCs can interfere with optimizations. In my use case, this would
>negate the usefulness of the exercise entirely, as I think some of the
>structures I wish to observe should never come into being, due to
>optimizations (e.g. case-of-known-constructor after inlining).
>Surely, the RTS must be able to count the number of times a constructor
>is used. But is there any way to access such a feature? If others agree
>that this would sometimes be helpful, perhaps we can build the feature.
>Now is not the first time I've wanted this.
>ghc-devs mailing list
>ghc-devs at

Sent from my Android device with K-9 Mail. Please excuse my brevity.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the ghc-devs mailing list