[m-rev.] for review: deep profiling on the web page
Zoltan Somogyi
zs at cs.mu.OZ.AU
Thu Aug 2 16:34:59 AEST 2001
On 02-Aug-2001, David Jeffery <dgj at cs.mu.OZ.AU> wrote:
> I have installed the php documentation too ("apt-get install php3-doc").
> It is available as html in /usr/doc/php3-doc/
Thanks. I had a look at it, but did not find anything that would tell me
why I got syntax errors on the simple code I cut-and-pasted into globals.inc
from Pete's post.
Here is the interdiff for the changes I have made in response to review
comments. The new page looks good in both Netscape and lynx, and the links
to the demos work, so I will commit this tomorrow if there are no objections.
Zoltan.
diff -u deep_demo.inc deep_demo.inc
--- deep_demo.inc
+++ deep_demo.inc
@@ -16,12 +16,16 @@
because Mercury programs make much greater use of polymorphism
than C programs do.
+<p>
+
For example, the most expensive predicates in the Mercury compiler are
the predicates for searching 2-3-4 trees and for inserting into 2-3-4 trees.
However, these predicates are called (indirectly)
from many hundreds of places in the Mercury compiler,
some of which handle bigger trees than others.
+<p>
+
We designed the deep profiler specifically to meet the needs
of programs written in programming languages such as Mercury,
programs whose characteristics include
@@ -69,16 +73,22 @@
having the instrumented program record its profiling data in a file,
and postprocessing the contents of this file.
+<p>
+
You can ask for a program to be compiled with deep profiling instrumentation
-by compiling it in a grade that includes the grade component "profdeep",
-e.g. asm_fast.gc.profdeep.
-Deep profiling is not compatible with the old Mercury profiling grades,
+by using the `--deep-profiling' option to `mmc',
+or by including `GRADEFLAGS = --deep-profiling' in your `Mmakefile'.
+However, please note that
+deep profiling is not compatible with the old Mercury profiling grades,
and it is not (yet) implemented for grades (such as hlc grades)
that use the compiler's MLDS back end.
+<p>
+
Programs compiled with deep profiling can generate large amounts of data,
since deep profiling yields very detailed information.
-We have therefore implemented the postprocessing program as a web server.
+We have therefore implemented the postprocessing program
+as a CGI-based web service.
Its input is a stream of requests,
with each request specifying a data file,
the part the user wants to view,
@@ -98,13 +108,13 @@
<ul>
<li>
-<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof\??echo $root?/information/deep_demo/make_hlds.data">mmc -O2 make_hlds.m</a>:
+<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof?/home/mercury5/w3/information/deep_demo/make_hlds.data">mmc -O2 make_hlds.m</a>:
the profiled executable is the Mercury compiler,
and during the profiling run, it task was to compile make_hlds.m,
the largest module (about 8300 lines) in its own source code.
Though large, this module is straightforward to compile.
<li>
-<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof\??echo $root?/information/deep_demo/eliza.data">mmc -O2 eliza.m</a>:
+<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof?/home/mercury5/w3/information/deep_demo/eliza.data">mmc -O2 eliza.m</a>:
the profiled executable is the Mercury compiler,
and during the profiling run, it task was to compile eliza.m,
the Mercury implementation of the classic "AI" program,
@@ -112,7 +122,7 @@
Though small (625 lines), this module contains some constructs
that stress the Mercury compiler.
<li>
-<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof\??echo $root?/information/deep_demo/monte.data">monte</a>:
+<a href = "http://venus.cs.mu.oz.au/cgi-bin/mdprof?/home/mercury5/w3/information/deep_demo/monte.data">monte</a>:
the profiled executable is a program that
calculates the volume of a 3D shape using Monte Carlo methods.
This program uses higher order constructs quite intensively.
only in patch2:
--- include/menubar.inc 2001/04/03 06:44:48 1.15
+++ include/menubar.inc 2001/08/02 06:30:16
@@ -20,6 +20,8 @@
<BR>
<a href="<?echo $root?>/information/papers.html">Papers</a>
<BR>
+ <a href="<?echo $root?>/information/deep_demo.html">Deep profiler demo</a>
+ <BR>
 <a href="<?echo $root?>/information/developer.html">Developers</a>
<BR>
 <a href="<?echo $root?>/information/events.html">Events</a>
only in patch2:
--- include/information.inc 2001/03/29 00:23:57 1.2
+++ include/information.inc 2001/08/02 06:30:16
@@ -46,6 +46,10 @@
Papers and presentations on Mercury</a>
<li>
+ <a href = "information/deep_demo.html">
+ An overview and demo of the Mercury deep profiler</a>
+
+ <li>
<a href = "information/related.html">
Related projects</a>
--------------------------------------------------------------------------
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