home *** CD-ROM | disk | FTP | other *** search
-
- -- PERFORMANCE MEASUREMENT : Measure simple "while" loop time
- -- loop is run 100 times
- -- time reported is for once through
-
- with REMOTE_GLOBAL ; use REMOTE_GLOBAL ; -- control optimization
- with ITERATION ; -- obtain stable measurement
- with PIWG_IO ; -- output results
-
- procedure L000002 is -- main procedure to execute
-
- CPU_TIME : DURATION ; -- CPU time for one feature execution
- WALL_TIME : DURATION ; -- WALL time for one feature execution
- CHECK_TIMES : constant := 100 ; -- inside loop count and check
- ITERATION_COUNT : INTEGER ; -- set and varied by ITERATION package
- STABLE : BOOLEAN ; -- true when measurement stable
- CASE_COUNT : constant := 100 ;
- I : INTEGER ;
-
- begin
-
- ITERATION.START_CONTROL ; -- dummy to bring in pages on some machines
-
- delay 0.5 ; -- wait for stable enviornment on some machines
-
- ITERATION.INITIALIZE ( ITERATION_COUNT ) ;
-
- loop -- until stable measurement, ITERATION_COUNT increases each time
-
- --
- -- Control loop
- --
- ITERATION.START_CONTROL ;
- for J in 1 .. ITERATION_COUNT loop
- GLOBAL := 0 ;
- for INSIDE_LOOP in 1 .. CHECK_TIMES loop
- GLOBAL := GLOBAL + A_ONE ; -- something to do
- REMOTE ; -- that can not be pulled out of loop
- GLOBAL := GLOBAL + A_ONE ; -- repeated here 100 times
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- GLOBAL := GLOBAL + A_ONE ;
- REMOTE ;
- end loop ;
- end loop ;
- GLOBAL := GLOBAL / CASE_COUNT ;
- ITERATION.STOP_CONTROL ( GLOBAL , CHECK_TIMES ) ;
-
- --
- -- Test loop
- --
- ITERATION.START_TEST ;
- for J in 1 .. ITERATION_COUNT loop
- GLOBAL := 0 ;
- for INSIDE_LOOP in 1 .. CHECK_TIMES loop
- I := 1 ;
- while I <= 100 loop
- GLOBAL := GLOBAL + A_ONE ; -- same computation as above
- REMOTE ; -- now in loop
- I := I + 1 ;
- end loop ;
- end loop ;
- end loop ;
- GLOBAL := GLOBAL / CASE_COUNT ;
- ITERATION.STOP_TEST ( GLOBAL , CHECK_TIMES ) ;
- ITERATION.TEST_STABLE ( ITERATION_COUNT , STABLE ) ;
- exit when STABLE ;
- end loop ;
- --
- ITERATION.FEATURE_TIMES ( CPU_TIME , WALL_TIME ) ;
- CPU_TIME := DURATION ( CPU_TIME / CASE_COUNT ) ;
- WALL_TIME := DURATION ( WALL_TIME / CASE_COUNT ) ;
-
- --
- -- Printout
- --
- PIWG_IO.PIWG_OUTPUT ( "L000002" , "Iteration" ,
- CPU_TIME , WALL_TIME , ITERATION_COUNT ,
- "Simple ""while"" loop time " ,
- "while I <= 100 loop " ,
- "time reported is for once through loop " ) ;
-
- end L000002 ;
-