[racket] Using the profiler effectively?

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Sep 5 19:03:04 EDT 2011

Just now, Matthias Felleisen wrote:
> On Sep 4, 2011, at 8:28 PM, Eli Barzilay wrote:
> > Just now, Danny Yoo wrote:
> >> 
> >> But I don't know how to interpret the results I'm getting back from
> >> the profiler yet.  I guess I'm trying to say: I'm illiterate: I
> >> don't know how to read the textual output of the profiler, and need
> >> some help.
> > 
> > The output is a conventional one.  (It's not completely compatible
> > with gprof (I've based it on the output from Allegro Lisp), but it's
> > close enough that it woudn't be hard to adapt it.)
> Eli, your sentence and parenthetical remark are not an answer to
> Danny's question.

Right -- that part was not an answer, but an indication that looking
around for explanations on how to read any profiler's output would
help.  Later on I tried to explain some of his output, and of course,
having someone else improve the documentation will be helpful.

> I will say I was equally stumped when I used the profiler, and i
> thank Robby for explaining bits and pieces to me.
> In general, the entire answer suggests that there is serious room
> for improvement. Sadly the whole problem sounds like a problem of
> presenting information in a useful and easily consumable manner --
> which isn't PLT's strong point.

In that case my answer was successful...  Presenting the information
in a useful way *is* the main problem here.  Doing that via a plain
text file is making it particularly challenging.

> When I see such things, I sure wish we had an "HCI department" :-)

That would help, obviously, since I don't have good ideas on how to
improve the textual output.  That's why I said that a good direction
is to produce some output that existing profiler visualization tools
can use -- my guess is that there are projects that did considerable
work on that already.  A quick search got me here:


which has a number of pointers that look useful.  It also looks like
graphviz is the most popular recommendation, so perhaps that's the
best way to go -- slapping a GUI or an HTML rendering around it.

(And in case it wasn't too clear -- if anyone is interested in taking
this, I'll be very happy to help from the profiler's side.)

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.