-- 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.