guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tracing and profiling at the repl


From: Neil Jerram
Subject: Re: tracing and profiling at the repl
Date: Tue, 22 Dec 2009 21:45:52 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux)

Andy Wingo <address@hidden> writes:

>     scheme@(guile-user)> ,tr (fibo 5)
>      #<program 8c74200 at system/vm/trace.scm:30:6 ()>
>     * #<program 8c74240 at <unknown port>:0:1 ()>
>     * fibo 5
>     ** fibo 4
>     *** fibo 3
>     **** fibo 2
>     **** fibo 1
>     *** fibo 2
>     ** fibo 3
>     *** fibo 2
>     *** fibo 1
>      #<program 8c741e0 at system/vm/trace.scm:31:6 ()>
>      vm-trace-off! #<vm 8904680>
>
> Sweet, no?

Hi Andy,

Interesting stuff!

But I'm not sure.  To me it seems less nice than the version that I
recently posted.

- Why are those #<program> and vm-trace-off! lines there?

- What if the function that you want to trace is not the one that you
  want to invoke at top level?

- What if you want to trace several functions within a given
  computation?

- Alternatively, if ,tr is supposed to mean "trace everything within
  this computation", why aren't there trace lines for the applications
  of `or', `=' and so on?

> We don't have return values here unfortunately, but that
> could be arranged.

Yes, I believe they are useful too.

> Now this too:
>
>     scheme@(guile-user)> ,pr (fibo 30)

What would someone typing that actually be looking for?  I would guess:
something about the timings of the internal parts of fibo ...

>     %     cumulative   self             
>     time   seconds     seconds      name
>     100.00      0.29      0.29  fibo
>       0.00      0.29      0.00  top-repl
>       0.00      0.29      0.00  call-with-backtrace
>       0.00      0.29      0.00  #<program 8caeb40 ()>
>       0.00      0.29      0.00  #<program 8ca10e0 opts>
>       0.00      0.29      0.00  start-repl
>       0.00      0.29      0.00  #<program 89f3420 at ice-9/boot-9.scm:3394:10 
> ()>
>       0.00      0.29      0.00  #<program 8ca13d0 at 
> system/repl/repl.scm:87:9 ()>
>     ---
>     Sample count: 23
>     Total time: 0.29 seconds (0 seconds in GC)

... but there is nothing here at a finer-grained level than fibo
itself.  So I'm afraid I don't see the usefulness, yet.

> Unfortunately (make-stack ...) doesn't actually do anything right now,
> so we see the whole continuation. Also unfortunately we don't see subrs
> on the stack, like dynamic-wind. But hopefully these problems will be
> fixed within a couple weeks.

Cool.  But I think the key thing is generating the internal information
that the user would really want.  Perhaps that requires a more complex
example.

Regards,
        Neil




reply via email to

[Prev in Thread] Current Thread [Next in Thread]