guile-user
[Top][All Lists]
Advanced

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

Profiling guile code - best solution? (from FAQ, list, etc.)


From: Rob Browning
Subject: Profiling guile code - best solution? (from FAQ, list, etc.)
Date: 20 Mar 2001 11:35:51 -0600
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7

So I read the FAQ and looked through the past several months of the
list and was trying to figure out which if the profiling options
mentioned, if any would be our best choice.  Here's where I've gotten
so far.  From the FAQ:

  Is there a Scheme code profiler that works with Guile?

  Keisuke Nishida asks and answers his own question, supplying a patch
  to implement such a profiler. Hmm, how would that look on a
  call-graph? (smile)

This solution requires a modified guile eval.c, which is a little
awkward, but acceptable if this is the best solution.  Keisuke also
mentions on the list recently that he has better support for profiling
in his VM, but that's not (AFAIK) an option yet.

  Because profiling and tracing have similar requirements, Mikael
  Djurfeldt mentions apply-frame-handler and enter-frame-handler,
  which are used in the guile (ice-9 debug) module. Use the forms
  (trap-enable 'apply-frame) and (trap-enable 'enter-frame) to enable
  calling the respective handlers.

Also in the mail wrt the VM and profiling, Keisuke seemed to indicate
that he wasn't able to get very far with this approach.

  Harvey Stein posts version 0.9 of wrappers.scm, a library for
  wrapping functions and executing forms, useful for implementing
  tracing and profiling.

This one at first glance looks like it would be the easiest to deal
with, since it's just a .scm file, but I haven't tried it yet.

So is there a currently "recommended solution"?  If so, we should
probably update the FAQ.  If not, then I'll play around and see what I
can get working, probably starting with Harvey Stein's code.

Thanks

-- 
Rob Browning <address@hidden> PGP=E80E0D04F521A094 532B97F5D64E3930



reply via email to

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