|  | 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: 1555 (0x613)
    Types: TextFile
    Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13
    └─⟦124ff5788⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─⟦129cab021⟧ »DATA« 
        └─⟦this⟧ 
└─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16
    └─⟦6f12a12be⟧ »DATA« 
        └─⟦this⟧ 
└─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04
    └─⟦d65440be7⟧ »DATA« 
        └─⟦this⟧ 
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11
    └─⟦129cab021⟧ »DATA« 
        └─⟦e24fb53b7⟧ 
            └─⟦this⟧ 
with Many_Objects_Frames;
with Many_Objects_Kbs;
with Many_Objects_Rules;
with Output_Stream;
with Text_Io;
use Many_Objects_Frames;
use Many_Objects_Kbs;
use Output_Stream;
procedure Many_Objects_Benchmark is
    package Duration_Io is new Text_Io.Fixed_Io (Duration);  
    procedure Infere_On_Many_Objects is
       new Kbs.Rule_Base.Infere (Do_Action => Many_Objects_Rules.Do_Action);
    procedure Test_With (Iterations, Objects : Positive) is
    begin
        States.Add ((Value          => 0,
                     Max_Iterations => Iterations,
                     Max_Objects    => Objects));
        Numbers.Add ((Value => 0));
        Infere_On_Many_Objects;
        Text_Io.Put (Integer'Image (Objects) & " Obj,");
        Text_Io.Put (Integer'Image (Iterations) & " Iter: Time =>");
        Duration_Io.Put (Kbs.Rule_Base.Elapsed_Time, Fore => 3, Aft => 2);  
        Text_Io.Put (", inferences =>" & Integer'Image
                                            (Kbs.Rule_Base.Inference_Count));
        Text_Io.Put (", firings per second =>" &
                     Integer'Image (Kbs.Rule_Base.Firings_Per_Second));
        Text_Io.New_Line;  
        Kbs.Fact_Base.Make_Empty;
    end Test_With;
begin
    for I in 1 .. Kbs.Rule_Base.Count loop
        Kbs.Rule_Base.Put (I, Standard_Output);
    end loop;
    Test_With (Iterations => 10, Objects => 10);
    Test_With (Iterations => 100, Objects => 10);
    Test_With (Iterations => 100, Objects => 30);
    Test_With (Iterations => 100, Objects => 100);
end Many_Objects_Benchmark;