|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 9163 (0x23cb)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
-- PERFORMANCE MEASUREMENT : Measure simple loop with "exit"
-- 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 L000003 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;
loop
Global := Global + A_One; -- same computation as above
Remote; -- now in loop
I := I + 1;
exit when I > 100;
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 ("L000003", "Iteration", Cpu_Time, Wall_Time,
Iteration_Count, "Simple ""exit"" loop time ",
" loop I:=I+1; exit when I>100; end loop;",
"time reported is for once through loop ");
end L000003;