[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