comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Profiling Ada applications using gprof
Date: Wed, 5 Dec 2018 18:27:50 +0100
Date: 2018-12-05T18:27:50+01:00	[thread overview]
Message-ID: <pu91qn$ndu$1@gioia.aioe.org> (raw)
In-Reply-To: 27bf087a-d64d-4e9f-89b8-e7a7df70f917@googlegroups.com

On 2018-12-05 17:05, joakimds@kth.se wrote:
> When Writing code oneself one could use select-statements to discover long running entry calls like:
> 
>     procedure Work is
>     begin
>        select
>           delay 1.0;
>           Ada.Text_IO.Put_Line ("Calling A.Stop takes too long time!");
>        then abort
>           A.Stop;
>        end select;
>     end Work;
> 
> But again, it would be cool if there was a way to discover long running entry calls by profiling (for example gprof).

This is not an entry call, it is asynchronous transfer of control (RM 
9.7.4).

Regarding entry calls, a long running call of a protected entry is a 
bug, protected actions must be instant, nothing to profile. For a task 
entry, it is maybe not a quite bug, but suspicious nonetheless. Though, 
I presume that both must be detectable by the profiler.

I guess you mean something completely different - times spent by a task 
in a queue of an entry, multiple entries if requeue happens. That would 
be a quite cool feature indeed.

The total time of an entry call as observed by the caller is

    time spent in the queues + execution time of the entry body

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2018-12-05 17:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-04 15:04 Profiling Ada applications using gprof joakimds
2018-12-04 19:41 ` Dennis Lee Bieber
2018-12-05 14:13 ` Petter Fryklund
2018-12-05 15:32   ` joakimds
2018-12-05 16:05     ` joakimds
2018-12-05 17:27       ` Dmitry A. Kazakov [this message]
2018-12-05 20:11   ` Dennis Lee Bieber
replies disabled

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