profiling a constructor?

Richard Eisenberg rae at richarde.dev
Sat May 23 12:58:30 UTC 2020


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.

Thanks!
Richard


More information about the ghc-devs mailing list