UNPKG

@specs-feup/clava

Version:

A C/C++ source-to-source compiler written in Typescript

83 lines 2.95 kB
import MemoiTarget from "./MemoiTarget.js"; /** * Library to instrument applications with the memoiprof profiling library. * * @param targetSig - The signature of the target funtion * @param id - Unique ID representing this function * @param reportDir - Path to the directory where the report will be saved (does not need trailing /) */ export default class MemoiProf { private target; private id; private reportDir; /** * Options for memoiprof. */ private memoiprofOptions; constructor(target: MemoiTarget, id: string, reportDir: string); setSampling(samplingKind: SamplingKind, samplingRate: number): void; setPeriodicReporting(periodicReportKind: boolean, periodicReportRate: number): void; setCulling(cullingKind: boolean, cullingRatio: number): void; setApprox(approxKind: boolean, approxBits: number): void; /** * Profiles all calls of the target function. This includes making a single * wrapper for all calls and adding the memoization profiling code inside this * wrapper. * */ profAll(): void; /** * Profiles each call to the target function separately. This includes * making a wrapper for each call and adding the memoization profiling code * inside the wrapper. * */ profEach(): void; private memoiInstrumentWrapper; private memoiSetup; private memoiAddCallSiteInfo; } export declare enum SamplingKind { RANDOM = "random", FIXED = "fixed", OFF = "off" } /** * Class used to store memoiprof options. * */ export declare class MemoiprofOptions { private _samplingKind; private _samplingRate; private _periodicReportKind; private _periodicReportRate; private _cullingKind; private _cullingRatio; private _approxKind; private _approxBits; get samplingKind(): SamplingKind; get samplingRate(): number; get periodicReportKind(): boolean; get periodicReportRate(): number; get cullingKind(): boolean; get cullingRatio(): number; get approxKind(): boolean; get approxBits(): number; /** * Supported samplingKind values are: 'random', 'fixed', 'off'. * For 1/x sampling, samplingRate should be x. * */ setSampling(samplingKind: SamplingKind, samplingRate: number): void; /** * Supported periodicReportKind values are: true, false. * periodicReportRate is the number of calls between writes of periodic reports. * */ setPeriodicReporting(periodicReportKind: boolean, periodicReportRate: number): void; /** * Supported cullingKind values are: true, false. * cullingRatio is the threshold (% of calls) for printing to the JSON. * */ setCulling(cullingKind: boolean, cullingRatio: number): void; /** * Supported approxKind values are: true, false. * */ setApprox(approxKind: boolean, approxBits: number): void; } //# sourceMappingURL=MemoiProf.d.ts.map