home *** CD-ROM | disk | FTP | other *** search
- -- PERFORMANCE MEASUREMENT : Coding Style Feature
- -- Logical equation vs if test
-
- with REMOTE_GLOBAL ; use REMOTE_GLOBAL ;
- with ITERATION ;
- with PIWG_IO ;
-
- procedure F000001 is -- main procedure to execute
-
- CPU_TIME : DURATION ;
- WALL_TIME : DURATION ;
- CHECK_TIMES : constant := 100 ;
- ITERATION_COUNT : INTEGER ;
- ITS_OK : BOOLEAN ;
- FLAG : BOOLEAN ;
- VALUE : INTEGER ;
- --
-
- begin
-
- VALUE := 50 ;
- FLAG := TRUE ;
-
- 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 ;
- -- FLAG := VALUE < GLOBAL ; -- feature being measured
- REMOTE ;
- FLAG := not FLAG ;
- end loop ;
- end loop ;
- ITERATION.STOP_CONTROL ( GLOBAL , CHECK_TIMES ) ;
-
- if FLAG then -- be sure FLAG computed
- GLOBAL := 1 ;
- REMOTE ;
- end if ;
-
- --
- -- Test loop
- --
- ITERATION.START_TEST ;
- for J in 1 .. ITERATION_COUNT loop
- GLOBAL := 0 ;
- for INSIDE_LOOP in 1 .. CHECK_TIMES loop
- GLOBAL := GLOBAL + A_ONE ;
- FLAG := VALUE < GLOBAL ; -- feature being measured
- REMOTE ;
- FLAG := not FLAG ;
- end loop ;
- end loop ;
- ITERATION.STOP_TEST ( GLOBAL , CHECK_TIMES ) ;
-
- if FLAG then -- be sure FLAG computed
- GLOBAL := 1 ;
- REMOTE ;
- end if ;
-
- ITERATION.TEST_STABLE ( ITERATION_COUNT , ITS_OK ) ;
- exit when ITS_OK ;
- end loop ;
- --
- ITERATION.FEATURE_TIMES ( CPU_TIME , WALL_TIME ) ;
-
- --
- -- Printout
- --
- PIWG_IO.PIWG_OUTPUT ( "F000001" , "Style" ,
- CPU_TIME , WALL_TIME , ITERATION_COUNT ,
- " Time to set a boolean flag using a logical equation" ,
- " a local and a global integer are compared " ,
- " compare this test with F000002" ) ;
-
- end F000001 ;
-