Of interest is the code that performs the actual measurements. Any other code (such as job implementation or dispatching) that is required to demonstrate the rate tracking is helpful, but not the focus.

Multiple approaches are allowed (even preferable), so long as they can accomplish these goals:

 Run N seconds worth of jobs and/or Y jobs.
 Report at least three distinct times.

Be aware of the precision and accuracy limitations of your timing mechanisms, and document them if you can.

See also: System time, Time a function

 
PROGRAM RATE_COUNTER
 
!
! for rosettacode.org
!
 
!
! This is an example, replace with the task you want to  measure
!
PROCEDURE TASK_TO_MEASURE
  LOCAL I
    FOR I=1 TO 1000000 DO
    END FOR
END PROCEDURE
 
BEGIN
    PRINT("Method 1: Calculate reciprocal of elapsed time:")
    FOR TRIAL%=1 TO 3 DO
      START=TIMER
      TASK_TO_MEASURE
      FINISH=TIMER
      PRINT("Rate =";100/(FINISH-START);"per second")
    END FOR
 
    PRINT("Method 2: Count completed tasks in one minute:")
    FOR TRIAL%=1 TO 3 DO
      RUNS%=0
      FINISH=TIMER+60
      REPEAT
        TASK_TO_MEASURE
        IF TIMER<FINISH THEN RUNS%+=1 END IF
      UNTIL TIMER>=FINISH
      PRINT("Rate =";RUNS%;"per minute")
    END FOR
END PROGRAM
 