Profiling C and Fortran at the statement level

Profiling C and Fortran at the statement level

Post by Mark R. Ludw » Fri, 20 Mar 1992 12:33:27



I have the desire to determine where an application is spending its
CPU time.  The standard tools have helped me find the routines, but
what I really need to know is which statements are executing the most.

I have the same application on the following platforms.  While I'd
prefer a tool which works on more than one, I'd be satisfied if it
worked on any of the first three.

        HP 9000/720; HP-UX A.08.07 A
        IBM RISC System/6000; AIX 3.2
        Apollo DN10000; Domain/OS 10.3
        Personal Iris; IRIX 3.3.1
        Sun-4/260; SunOS 4.1.1b
        VAX 3600; Ultrix 4.2

Thanks in advance for any tips/pointers.  I'll summarize on request.$$
--

                            "Seize the day next week at the latest." -- Boynton

 
 
 

Profiling C and Fortran at the statement level

Post by M.C.Whead » Wed, 25 Mar 1992 23:58:00



Quote:>I have the desire to determine where an application is spending its
>CPU time.  The standard tools have helped me find the routines, but
>what I really need to know is which statements are executing the most.

We market a tool called ``rtp'' which shows you where an application
is spending its time on a per-routine and per-line basis - it does
this in real time, whilst the target program is running.  It runs
under X on VAXstations (ultrix) and under X or SunView on the Sun3 or
Sun4.  Email me your surface mail address if you would like more details.
--
   __
  /  )        _/_
 /--<  . . __ /
/___/_(_/_/ _<__      Mark Wheadon.

 
 
 

Profiling C and Fortran at the statement level

Post by Van Snyd » Sun, 05 Apr 1992 03:16:44



Quote:>My post expressed the desire to determine where an application is
>spending its CPU time.  The standard tools have helped me find the
>routines, but what I really need to know is which statements are
>executing the most.

...
On my PC, Lahey Computer Systems is my favorite Fortran vendor.  They
built a profiler from their de*.  Their de* has hooks for
each line, entry and exit from a subprogram, conditions, ..., just
like xdb (or dbx, depending on vendor).  If the underlying machine has
a sufficiently accurate clock, one can build a profiler from a
de* by using the same machanism as "break on line", "break on
entry" and "break on exit."  I don't understand why these things
aren't more widely available.
--

 
 
 

Profiling C and Fortran at the statement level

Post by Dionys » Sat, 11 Apr 1992 21:14:42



>My post expressed the desire to determine where an application is
>spending its CPU time.
>----------------------------------------------------------------------

>    The VAX is not amongst your top 3, but Ultrix has a
>good tool called pixie.
>[[ Peter and I went back and forth a couple times before I realized that
>   this tool, pixie, turns out to be only on RISC/Ultrix.  It is
>   apparently not on the VAX architecture.  What added to the
>   confusion is that DEC's numbering scheme is not by itself unique.
>   Peter referred to his DEC 3100 which is decidedly different from
>   our VAX 3100. ]]

Ok, I did this.  I have a program the does a 'system()' call, works
with out pixie.

I run pixie on the executable, produce exectuable.pixie, and
executable.Addrs.  Everything appears ok up to here.

Then I run the pixie executable.

Everytime I does a 'system()' call, the pixie executable get a SEGV
  _dwmult (it does not give a file or line number).

Is there *any* way to get pixie to do debugging on this?  Am I doing
something wrong?

The machine is a DECstation 5000/something, running 4.2.

thanks
tim