comp.lang.ada
 help / color / mirror / Atom feed
From: reason67@my-deja.com
Subject: Re: Apex vs GNAT on solaris
Date: 1999/12/07
Date: 1999-12-07T00:00:00+00:00	[thread overview]
Message-ID: <82hjta$7tt$1@nnrp1.deja.com> (raw)
In-Reply-To: 82hiuj$74o$1@nnrp1.deja.com


>       1.3 15 iterations of 100 delays of 0.0 in 100 tasks.

-=-=-=-=-=-=-=-=-

with Ada.Calendar;
with Ada.Text_Io;
with Common_Utilities;

procedure Aaaa_1_3_Timing_Test is

    package Long_Float_Io is new Ada.Text_Io.Float_Io (Long_Float);

    Compiler : constant String := "Apex";
    Instances : constant := 15;
    Iterations : constant := 100;
    Task_Number : constant := 100;

    type Time_Stamp_Type is array (0 .. Iterations) of
Ada.Calendar.Time;


    task type Time_Context_Switches is
        entry Start;
    end Time_Context_Switches;
    for Time_Context_Switches'Storage_Size use 100000;

    type Timer_Array_Type is array (1 .. Task_Number) of
Time_Context_Switches;
    Timer : Timer_Array_Type;

    task Controller is
        entry Finish (Biggest : in Long_Float; Average : in Long_Float);
    end Controller;

    task body Time_Context_Switches is
        Biggest : Long_Float := -1.0;
        Average : Long_Float := 0.0;
        Length : Long_Float;
        Time_Stamp : Time_Stamp_Type;

    begin
        Forever:
            loop
                Biggest := -1.0;
                Average := 0.0;

                select
                    accept Start;
                or
                    terminate;
                end select;

                Time_Stamp (0) := Ada.Calendar.Clock;
                for Index in 1 .. Iterations loop
                    delay 0.0;
                    Time_Stamp (Index) := Ada.Calendar.Clock;
                end loop;

                for Index in 1 .. Iterations loop
                    Length := Long_Float
                                 (Ada.Calendar."-" (Time_Stamp (Index),
                                                    Time_Stamp (Index -
1)));

                    if Biggest < Length then
                        Biggest := Length;
                    end if;

                    Average := Average + Length;

                end loop;

                Average := Average / Long_Float (Iterations);

                Controller.Finish (Biggest => Biggest, Average =>
Average);

            end loop Forever;
    end Time_Context_Switches;

    task body Controller is
        Local_Biggest : Long_Float := -1.0;
        Local_Average : Long_Float := 0.0;
        Instance_Length : Integer;
    begin
        Ada.Text_Io.Put_Line ("::: [Aaaa_1_3_Timing_Test]");

        Ada.Text_Io.Put_Line
           (Compiler & " tasking timing test running " &
            Common_Utilities.Strip_Spaces (Integer'Image (Instances)) &
            " instances of " &
            Common_Utilities.Strip_Spaces (Integer'Image (Iterations)) &
            " delays of 0, in " &
            Common_Utilities.Strip_Spaces (Integer'Image (Task_Number))
&
            " tasks");

        Instance_Length := Common_Utilities.Strip_Spaces
                              (Integer'Image (Instances))'Length;

        for Counter in 1 .. Instances loop
            for Index in 1 .. Task_Number loop
                Timer (Index).Start;
            end loop;

            Local_Biggest := -1.0;
            Local_Average := 0.0;

            for Index in 1 .. Task_Number loop
                accept Finish (Biggest : in Long_Float;
                               Average : in Long_Float) do
                    if Biggest > Local_Biggest then
                        Local_Biggest := Biggest;
                    end if;

                    Local_Average := Average + Local_Average;
                end Finish;

            end loop;

            Local_Average := Local_Average / Long_Float (Task_Number);

            Ada.Text_Io.Put ("Instance " & Common_Utilities.String_Of
                                              (Number => Counter,
                                               Length =>
Instance_Length,
                                               Show_Leading_Zeros =>
False) &
                             ": Maximum time => ");
            Long_Float_Io.Put
               (Item => Local_Biggest, Fore => 1, Aft => 4, Exp => 0);
            Ada.Text_Io.Put (Ascii.Ht & Ascii.Ht & "Average time => ");
            Long_Float_Io.Put
               (Item => Local_Average, Fore => 1, Aft => 4, Exp => 0);
            Ada.Text_Io.New_Line;
        end loop;

        Ada.Text_Io.Put_Line ("::: [Aaaa_1_3_Timing_Test has
finished]");
    end Controller;

begin
    null;
end Aaaa_1_3_Timing_Test;

-=-=-=-=-=-=-=-=-=

Apex tasking timing test running 15 instances of 100 delays of 0, in 100
tasks
Instance  1: Maximum time => 0.1668		Average time => 0.0000
Instance  2: Maximum time => 0.0076		Average time => 0.0000
Instance  3: Maximum time => 0.0023		Average time => 0.0000
Instance  4: Maximum time => 0.0103		Average time => 0.0000
Instance  5: Maximum time => 0.0026		Average time => 0.0000
Instance  6: Maximum time => 0.0027		Average time => 0.0000
Instance  7: Maximum time => 0.0022		Average time => 0.0000
Instance  8: Maximum time => 0.0139		Average time => 0.0000
Instance  9: Maximum time => 0.0006		Average time => 0.0000
Instance 10: Maximum time => 0.0103		Average time => 0.0000
Instance 11: Maximum time => 0.0089		Average time => 0.0000
Instance 12: Maximum time => 0.0026		Average time => 0.0000
Instance 13: Maximum time => 0.0110		Average time => 0.0000
Instance 14: Maximum time => 0.0050		Average time => 0.0000
Instance 15: Maximum time => 0.0117		Average time => 0.0000

GNAT tasking timing test running 15 instances of 100 delays of 0, in 100
tasks
Instance  1: Maximum time => 0.0152		Average time => 0.0011
Instance  2: Maximum time => 0.0130		Average time => 0.0012
Instance  3: Maximum time => 0.0143		Average time => 0.0013
Instance  4: Maximum time => 0.0142		Average time => 0.0013
Instance  5: Maximum time => 0.0139		Average time => 0.0013
Instance  6: Maximum time => 0.0681		Average time => 0.0012
Instance  7: Maximum time => 0.1722		Average time => 0.0001
Instance  8: Maximum time => 0.0036		Average time => 0.0001
Instance  9: Maximum time => 0.1307		Average time => 0.0001
Instance 10: Maximum time => 0.1089		Average time => 0.0001
Instance 11: Maximum time => 0.0988		Average time => 0.0001
Instance 12: Maximum time => 0.0907		Average time => 0.0001
Instance 13: Maximum time => 0.0141		Average time => 0.0001
Instance 14: Maximum time => 0.0333		Average time => 0.0001
Instance 15: Maximum time => 0.0318		Average time => 0.0001


Sent via Deja.com http://www.deja.com/
Before you buy.




  parent reply	other threads:[~1999-12-07  0:00 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-12-07  0:00 Apex vs GNAT on solaris reason67
1999-12-07  0:00 ` reason67
1999-12-07  0:00 ` Robert Dewar
1999-12-07  0:00   ` reason67
1999-12-08  0:00     ` Robert Dewar
1999-12-08  0:00       ` reason67
1999-12-08  0:00         ` Larry Kilgallen
1999-12-08  0:00         ` Robert Dewar
1999-12-08  0:00         ` Robert A Duff
1999-12-07  0:00   ` Roger Racine
1999-12-07  0:00     ` David Starner
1999-12-08  0:00       ` Robert Dewar
1999-12-07  0:00     ` Jean-Pierre Rosen
1999-12-07  0:00     ` Larry Kilgallen
1999-12-07  0:00     ` Samuel T. Harris
1999-12-08  0:00     ` Ted Dennison
1999-12-08  0:00     ` Robert Dewar
1999-12-08  0:00       ` Robert A Duff
1999-12-08  0:00       ` Roger Racine
1999-12-08  0:00         ` Larry Kilgallen
1999-12-08  0:00           ` Roger Racine
1999-12-08  0:00             ` tmoran
1999-12-08  0:00             ` Larry Kilgallen
1999-12-09  0:00         ` Robert Dewar
1999-12-09  0:00           ` Roger Racine
1999-12-09  0:00             ` Larry Kilgallen
1999-12-10  0:00               ` Robert Dewar
1999-12-09  0:00             ` Mike Silva
1999-12-10  0:00               ` Robert Dewar
1999-12-16  0:00             ` Stefan Skoglund
1999-12-07  0:00 ` reason67
1999-12-07  0:00 ` reason67
1999-12-07  0:00   ` Robert Dewar
1999-12-07  0:00     ` reason67
1999-12-08  0:00       ` Robert Dewar
1999-12-08  0:00         ` reason67
1999-12-07  0:00     ` Vladimir Olensky
1999-12-07  0:00       ` Vladimir Olensky
1999-12-09  0:00       ` Geoff Bull
1999-12-09  0:00         ` Vladimir Olensky
1999-12-10  0:00           ` Vladimir Olensky
1999-12-09  0:00         ` Vladimir Olensky
1999-12-07  0:00 ` reason67 [this message]
1999-12-07  0:00 ` reason67
1999-12-07  0:00   ` Robert Dewar
1999-12-07  0:00     ` reason67
1999-12-07  0:00 ` reason67
1999-12-07  0:00 ` reason67
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox