-- Performers.mesa
-- Edited by Paul Rovner on 7-Jan-82 15:57:49
DIRECTORY
Plotter USING [Create],
RealEvent USING [CreateTimerDrivenStream],
RTProcess USING [StartWatchingFaults, GetTotalPageFaults],
SafeStorage USING [NWordsAllocated],
Timer USING[Seconds];
Performers: PROGRAM
IMPORTS Plotter, RealEvent, RTProcess, SafeStorage
= BEGIN
samplingInterval: Timer.Seconds = 5;
nEvents: NAT = 100;
-- SAMPLING PROCEDURES
WordsAllocatedSampler: PROC[s: REF ANY] RETURNS[REAL] =
{RETURN[SafeStorage.NWordsAllocated[]];
};
PageFaultSampler: PROC[s: REF ANY] RETURNS[REAL] =
{RETURN[RTProcess.GetTotalPageFaults[]];
};
-- START HERE...Create performance plotters
[] ← Plotter.Create[label: "wordsPerSecHistory",
autoRepaint: TRUE,
nEvents: nEvents,
plotValueDifferences: TRUE,
plotValuePerSecond: TRUE,
eventSource: RealEvent.CreateTimerDrivenStream[interval: samplingInterval, sampler: WordsAllocatedSampler]];
[] ← Plotter.Create[label: "pageFaultsPerSecHistory",
autoRepaint: TRUE,
nEvents: nEvents,
plotValueDifferences: TRUE,
plotValuePerSecond: TRUE,
eventSource: RealEvent.CreateTimerDrivenStream[interval: samplingInterval, sampler: PageFaultSampler]];
RTProcess.StartWatchingFaults[];
END.