[m-rev.] for review: make the deep profiler work again

Simon Taylor stayl at cs.mu.OZ.AU
Wed Nov 20 17:49:26 AEDT 2002


On 20-Nov-2002, Zoltan Somogyi <zs at cs.mu.OZ.AU> wrote:
> Fergus I discussed this, and decided that the best fix was to change io.m
> to allow the standard I/O streams to be closed. The diff for that fix,
> and a diff to the NEWS file announcing the deep profiler follow.

You'll also need to update the section in NEWS file that says
what happens when the standard I/O streams are closed.

> Index: NEWS
> ===================================================================
> RCS file: /home/mercury1/repository/mercury/NEWS,v
> retrieving revision 1.279
> diff -u -b -r1.279 NEWS
> --- NEWS	4 Nov 2002 02:14:24 -0000	1.279
> +++ NEWS	20 Nov 2002 05:37:06 -0000
> @@ -32,6 +32,12 @@
>  * Declarative debugging.
>  * Support for transparent retries across I/O.
>  
> +A new profiler, which we call the Mercury deep profiler or mdprof:
> +* Supports both time and memory profiling.
> +* Gathers information about individual call sites as well as procedures.
> +* Eliminates the assumption that all calls to a procedure have equal cost.
> +* Allows users to explore the gathered data interactive with a web browser.

s/interactive/interactively/

> @@ -426,6 +432,47 @@
> +A new profiler, which we call the Mercury deep profiler or mdprof:
> +
> +* The old Mercury profiler is based on the technology of the standard Unix
> +  profiler gprof. This technology makes the assumption that all calls to a
> +  given C function (in Mercury, a given function or predicate in a given mode)
> +  have the same cost, whether the cost being measured is CPU time, memory cells
> +  allocated, memory words allocated etc. In C programs, this assumption is
> +  usually close enough to correct for the output of gprof to be useful. In
> +  Mercury, due to the presence of parametric polymorphism, different call sites
> +  are far more likely to have distinct performance characteristics than in C,
> +  so the output of a gprof-style profiler is usually not accurate enough to be
> +  useful.

I'd add "and higher-order programming" after "parametric polymorphism".

> +* The deep profiler gathers so much data that giving it to the user all at once
> +  would swamp the user with too much information. We therefore implemented the
> +  deep profiler as a CGI program. Users can use thus use a web browser to
                                               ^^^^^^^^^^^^
> +  explore the information contained in profiling data files.

> +* Further information about the deep profiler is available in the paper
> +  "Deep profiling: engineering a profiler for a declarative programming
> +  language" by Thomas C. Conway and Zoltan Somogyi, available from our web
> +  site.

Give the URL for the papers page?

Simon.
--------------------------------------------------------------------------
mercury-reviews mailing list
post:  mercury-reviews at cs.mu.oz.au
administrative address: owner-mercury-reviews at cs.mu.oz.au
unsubscribe: Address: mercury-reviews-request at cs.mu.oz.au Message: unsubscribe
subscribe:   Address: mercury-reviews-request at cs.mu.oz.au Message: subscribe
--------------------------------------------------------------------------



More information about the reviews mailing list