Update of /cvsroot/sbcl/sbcl
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv8951
22.214.171.124: grab-bag of SB-SPROF enhancements
* Added support for wallclock profiling. (Good for noticing waits
that do not incur run time penalties.)
* Added keyword arguments :SORT-ORDER (:ASCENDING or :DESCENDING) and
:SORT-BY (:SAMPLES or :CUMULATIVE-SAMPLES) to REPORT, defaulting to
:DESCENDING and :SAMPLES as before. Makes eyeballing flat reports
easier, since often cumulative samples are the ones one should pay
attention to (esp. for :CPU and :TIME profiling.)
* Added support for profiling specific threads. New default is to
profile only the current thread when using WITH-PROFILING, and all
threads when using START-PROFILING -- :THREADS argument to both
WITH-PROFILING and START-PROFILING can be used to specify other
either a specific list of threads to profile, or :ALL to profile
all threads. (In the future we might want to add eg. :CHILDREN to
** For :CPU profiling the signal handler simply filters out the
threads we are not profiling.
** For :ALLOC profiling, *ALLOC-SIGNAL* is now thread local, and
the profiler frobs the global *DEFAULT-ALLOC-SIGNAL* and local
*ALLOC-SIGNAL*s as needed. Before the runtime delivers the
allocation SIGPROF, it sets *ALLOC-SIGNAL* to T to prevent
problems with recursive allocation signals (seem better then
binding it in the handler, since we cannot really bind it quite
early enough no matter what we do.)
** For :TIME profiling, we set up a timer that uses SIGPROF and
pthread_kill to notify threads.
* Use system locking macros instead of separate WITHOUT-GCING and
WITHOUT-INTERRUPTS for cleanliness.
* Make REPORT report the correct sample/alloction interval, and list
the threads sampled.
RCS file: /cvsroot/sbcl/sbcl/NEWS,v
retrieving revision 1.1345
retrieving revision 1.1346
diff -u -d -r1.1345 -r1.1346
--- NEWS 30 May 2008 11:32:13 -0000 1.1345
+++ NEWS 30 May 2008 18:26:10 -0000 1.1346
@@ -1,5 +1,10 @@
;;;; -*- coding: utf-8; -*-
changes in sbcl-1.0.18 relative to 1.0.17:
+ * minor incompatible change: SB-SPROF:WITH-PROFILING now by default
+ profiles only the current thread.
+ * enhancement: SB-SPROF now has support for wallclock profiling,
+ and is also able to profile specific threads. REPORT output
+ has also additional sorting options.
* optimization: structure allocation has been improved
** constructors created by non-toplevel DEFSTRUCTs are ~40% faster.
** out of line constructors are ~10% faster.
RCS file: /cvsroot/sbcl/sbcl/version.lisp-expr,v
retrieving revision 1.3972
retrieving revision 1.3973
diff -u -d -r1.3972 -r1.3973
--- version.lisp-expr 30 May 2008 18:02:32 -0000 1.3972
+++ version.lisp-expr 30 May 2008 18:26:11 -0000 1.3973
@@ -17,4 +17,4 @@
;;; checkins which aren't released. (And occasionally for internal
;;; versions, especially for internal versions off the main CVS
;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)