This is a utility module to aid the construction of
CreateProcess
structures with profiling parameters.
- data ProfParam
- data Breakdown
- = BCostCentreStack
- | BModule
- | BDescription
- | BType
- | BRetainer
- | BBiography
- data Restriction
- = RCCStackTop
- | RCCStackAny
- | RModule
- | RDescription
- | RType
- | RRetainer
- | RBiography
- processToProfile :: FilePath -> Maybe FilePath -> [String] -> [ProfParam] -> CreateProcess
Documentation
The possible types of parameters.
PPBreakdown Breakdown | The type of breakdown. |
PPRestriction Restriction [String] | An additional filter on the runtime side. |
PPInterval Float | Sampling interval in seconds. |
PPIncludeThreads | Whether to include memory taken up by threads. |
PPNameLength Int | The maximum length of cost centre stack names. |
PPRetainerLimit Int | Retainer set size limit. |
The possible types of breakdowns.
BCostCentreStack | Breakdown by cost centre stack (origin of the data). |
BModule | Breakdown by module (code responsible for the data). |
BDescription | Breakdown by closure description (constructor name or some unique identifier). |
BType | Breakdown by type (or an approximation if it is not known exactly). |
BRetainer | Breakdown by retainer set (effectively the entities that hold a direct reference to the data in question). |
BBiography | Breakdown by biography (phase of an object's lifetime). |
data Restriction Source
The possible filters. Note that these are imposed by the runtime, so we cannot override them on the application side.
RCCStackTop | Show only closures with one of the given names on the top of the cost centre stack. |
RCCStackAny | Show only closures with one of the given names somewhere in the cost centre stack. |
RModule | Show only closures produced by one of the given modules. |
RDescription | Show only closures with a description that matches one of the given names. |
RType | Show only closures with one of the given types. |
RRetainer | Show only closures with retainer sets that contain at least one cost centre stack with a given name on the top. |
RBiography | Show only closures with one of the specified biographies, which must come from the set {lag, drag, void, use}. |
:: FilePath | The executable to profile (relative paths start from the working directory). |
-> Maybe FilePath | An optional working directory (inherited from the parent if not given). |
-> [String] | The list of parameters to pass to the program. |
-> [ProfParam] | Profiling parameters. |
-> CreateProcess | The resulting structure. |
A helper function to create a CreateProcess
structure.