[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
statprof working with guile-vm
From: |
Andy Wingo |
Subject: |
statprof working with guile-vm |
Date: |
Mon, 02 Feb 2009 23:45:37 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
Dudes and dudettes. Statprof works for profiling guile-vm. If you ask
me, that's pretty sweet.
Here's a profile of loading (oop goops). It's long because, well,
syncase... also I had to increase the sampling frequency because
otherwise the results were really unstable.
scheme@(guile-user)> (use-modules (statprof))
scheme@(guile-user)> (with-statprof #:hz 1000 (resolve-module '(oop goops)))
% cumulative self
time seconds seconds name
15.46 0.05 0.05 eqv?
10.31 0.14 0.04 write-bytecode
3.09 0.09 0.01 glil->assembly
3.09 0.01 0.01 memv
3.09 0.01 0.01 module-make-local-var!
2.06 0.17 0.01 for-each
2.06 0.09 0.01 map
2.06 0.02 0.01 %init-goops-builtins
2.06 0.01 0.01 record-accessor
2.06 0.01 0.01 lookup-transformer
2.06 0.01 0.01 record-predicate
2.06 0.01 0.01 comp
1.03 0.34 0.00 dynamic-wind
1.03 0.03 0.00 translate-1
1.03 0.02 0.00 add-method!
1.03 0.01 0.00 assoc-ref
1.03 0.01 0.00 make-glil-program
1.03 0.01 0.00 comp
1.03 0.00 0.00 syntmp-write-134
1.03 0.00 0.00 syntmp-fk-20
1.03 0.00 0.00 syntmp-fk-31
1.03 0.00 0.00 syntmp-write-byte-18
1.03 0.00 0.00 syntmp-fk-15
1.03 0.00 0.00 syntmp-fk-24
1.03 0.00 0.00 syntmp-write-byte-18
1.03 0.00 0.00 syntmp-fk-35
1.03 0.00 0.00 syntmp-fk-35
1.03 0.00 0.00 syntmp-fk-14
1.03 0.00 0.00 compute-closure-level
1.03 0.00 0.00 syntmp-fk-28
1.03 0.00 0.00 syntmp-fk-13
1.03 0.00 0.00 finish
1.03 0.00 0.00 syntmp-fk-30
1.03 0.00 0.00 comp
1.03 0.00 0.00 dump
1.03 0.00 0.00 syntmp-fk-25
1.03 0.00 0.00 syntmp-fk-18
1.03 0.00 0.00 syntmp-fk-34
1.03 0.00 0.00 syntmp-fk-33
1.03 0.00 0.00 lp
1.03 0.00 0.00 lp
1.03 0.00 0.00 syntmp-fk-13
1.03 0.00 0.00 syntmp-fk-20
1.03 0.00 0.00 syntmp-fk-35
1.03 0.00 0.00 loop
1.03 0.00 0.00 syntmp-fk-14
1.03 0.00 0.00 dump
1.03 0.00 0.00 syntmp-fk-20
1.03 0.00 0.00 syntmp-write-139
1.03 0.00 0.00 loop
1.03 0.00 0.00 syntmp-fk-13
1.03 0.00 0.00 dump
1.03 0.00 0.00 dump
1.03 0.00 0.00 syntmp-fk-34
1.03 0.00 0.00 syntmp-fk-30
1.03 0.00 0.00 close-binding
1.03 0.00 0.00 syntmp-fk-22
1.03 0.00 0.00 syntmp-fk-28
1.03 0.00 0.00 syntmp-fk-22
1.03 0.00 0.00 syntmp-fk-20
1.03 0.00 0.00 syntmp-fk-21
0.00 0.34 0.00 load-compiled/vm
0.00 0.30 0.00 save-module-excursion
0.00 0.30 0.00 load-file
0.00 0.30 0.00 compute-entry-with-cmethod
0.00 0.30 0.00 compile-method/vm
0.00 0.30 0.00 compile-fold
0.00 0.30 0.00 memoize-method!
0.00 0.29 0.00 make-instance
0.00 0.29 0.00 initialize
0.00 0.14 0.00 compile-bytecode
0.00 0.13 0.00 %goops-loaded
0.00 0.13 0.00 make-extended-generic
0.00 0.13 0.00 compute-cmethod
0.00 0.13 0.00 make-next-method
0.00 0.11 0.00 ensure-generic
0.00 0.09 0.00 compile-assembly
0.00 0.09 0.00 compile-asm
0.00 0.05 0.00 byte-length
0.00 0.04 0.00 call-with-ghil-bindings
0.00 0.03 0.00 compile-glil
0.00 0.03 0.00 codegen
0.00 0.02 0.00 lp
0.00 0.02 0.00 lp
0.00 0.01 0.00 lp
0.00 0.01 0.00 lp
0.00 0.01 0.00 comp
0.00 0.01 0.00 lp
0.00 0.01 0.00 lp
0.00 0.01 0.00 lp
0.00 0.01 0.00 lp
0.00 0.01 0.00 retrans
0.00 0.01 0.00 lp
0.00 0.01 0.00 syntmp-fk-810
0.00 0.01 0.00 retrans
0.00 0.01 0.00 comp
0.00 0.01 0.00 call-with-deferred-observers
0.00 0.01 0.00 lp
0.00 0.01 0.00 comp
0.00 0.01 0.00 retrans
0.00 0.01 0.00 make-glil-var
0.00 0.01 0.00 retrans
0.00 0.01 0.00 retrans
0.00 0.01 0.00 retrans
0.00 0.01 0.00 assoc-ref-or-acons
0.00 0.01 0.00 retrans
0.00 0.01 0.00 syntmp-fk-782
0.00 0.01 0.00 comp
0.00 0.00 0.00 loop
0.00 0.00 0.00 syntmp-fk-810
0.00 0.00 0.00 comp
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 push-call!
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 lp
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 lp
0.00 0.00 0.00 lp
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 syntmp-fk-810
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 lp
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 push-call!
0.00 0.00 0.00 retrans
0.00 0.00 0.00 lp
0.00 0.00 0.00 comp
0.00 0.00 0.00 finish
0.00 0.00 0.00 retrans
0.00 0.00 0.00 retrans
0.00 0.00 0.00 comp
0.00 0.00 0.00 resolve-interface
0.00 0.00 0.00 retrans
0.00 0.00 0.00 module-export!
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-33
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-31
0.00 0.00 0.00 call-with-ghil-environment
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-26
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-30
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 retrans
0.00 0.00 0.00 finish
0.00 0.00 0.00 syntmp-fk-29
0.00 0.00 0.00 retrans
0.00 0.00 0.00 write-string
0.00 0.00 0.00 push-call!
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 write-char
0.00 0.00 0.00 syntmp-fk-810
0.00 0.00 0.00 syntmp-fk-810
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-35
0.00 0.00 0.00 syntmp-fk-782
0.00 0.00 0.00 lp
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 retrans
0.00 0.00 0.00 loop
0.00 0.00 0.00 retrans
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 push-call!
0.00 0.00 0.00 syntmp-fk-23
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 retrans
0.00 0.00 0.00 lp
0.00 0.00 0.00 retrans
0.00 0.00 0.00 retrans
0.00 0.00 0.00 retrans
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 lp
0.00 0.00 0.00 push-call!
0.00 0.00 0.00 loop
0.00 0.00 0.00 for-each*
0.00 0.00 0.00 write-string
0.00 0.00 0.00 syntmp-fk-23
0.00 0.00 0.00 write-char
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-17
0.00 0.00 0.00 lp
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 syntmp-fk-31
0.00 0.00 0.00 retrans
0.00 0.00 0.00 retrans
0.00 0.00 0.00 syntmp-fk-13
0.00 0.00 0.00 syntmp-fk-27
0.00 0.00 0.00 syntmp-fk-19
0.00 0.00 0.00 comp-push
0.00 0.00 0.00 retrans
---
Sample count: 97
Total time: 0.34 seconds (7/50 seconds in GC)
$1 = #<directory (oop goops) b7259830>
I'm not yet sure what to make of this. It seems like the compiler itself
can be sped up by a factor of two or so, which sounds nice. We'll see.
Anyway, glad to see that statprof works with the new vm.
Andy
--
http://wingolog.org/
- statprof working with guile-vm,
Andy Wingo <=