mirror of
https://github.com/Stichting-MINIX-Research-Foundation/netbsd.git
synced 2025-09-12 16:46:33 -04:00
82 lines
4.4 KiB
Plaintext
82 lines
4.4 KiB
Plaintext
The following are examples of rb_cputime.d.
|
|
|
|
This script traces the on-CPU time of Ruby functions and prints a report.
|
|
Here it traces the example program, Code/Ruby/func_slow.rb
|
|
|
|
# rb_cputime.d
|
|
Tracing... Hit Ctrl-C to end.
|
|
^C
|
|
|
|
Count,
|
|
FILE TYPE NAME COUNT
|
|
. obj-new NoMemoryError 1
|
|
. obj-new SystemStackError 1
|
|
. obj-new ThreadGroup 1
|
|
. obj-new fatal 1
|
|
func_slow.rb func Object::func_a 1
|
|
func_slow.rb func Object::func_b 1
|
|
func_slow.rb func Object::func_c 1
|
|
. obj-new Object 3
|
|
func_slow.rb func IO::write 3
|
|
func_slow.rb func Module::method_added 3
|
|
func_slow.rb func Object::print 3
|
|
func_slow.rb func Fixnum::< 600003
|
|
func_slow.rb func Fixnum::+ 1200000
|
|
- total - 1800015
|
|
|
|
Elapsed times (us),
|
|
FILE TYPE NAME TOTAL
|
|
. obj-new SystemStackError 2
|
|
. obj-new NoMemoryError 2
|
|
. obj-new fatal 11
|
|
. obj-new ThreadGroup 12
|
|
. obj-new Object 19
|
|
|
|
Exclusive function on-CPU times (us),
|
|
FILE TYPE NAME TOTAL
|
|
func_slow.rb func Module::method_added 4
|
|
func_slow.rb func Object::print 57
|
|
func_slow.rb func IO::write 180
|
|
func_slow.rb func Object::func_a 405946
|
|
func_slow.rb func Fixnum::< 691125
|
|
func_slow.rb func Object::func_b 809970
|
|
func_slow.rb func Object::func_c 1225235
|
|
func_slow.rb func Fixnum::+ 1285200
|
|
- total - 4417721
|
|
|
|
Inclusive function on-CPU times (us),
|
|
FILE TYPE NAME TOTAL
|
|
func_slow.rb func Module::method_added 4
|
|
func_slow.rb func IO::write 180
|
|
func_slow.rb func Object::print 238
|
|
func_slow.rb func Fixnum::< 691125
|
|
func_slow.rb func Fixnum::+ 1285200
|
|
func_slow.rb func Object::func_c 2212572
|
|
func_slow.rb func Object::func_b 3683688
|
|
func_slow.rb func Object::func_a 4417717
|
|
|
|
You can see the results are printed in four sections.
|
|
|
|
The first section reports how many times each subroutine was called, and it's
|
|
type.
|
|
|
|
The second section reports on the on-CPU time of anything that was not of type
|
|
"func", in this case the only elements reported here are of type obj-new.
|
|
|
|
The exclusive function on-CPU times shows, amongst other results, that func_a
|
|
spent around 0.4 seconds on-CPU. This time excludes time spent in other
|
|
subroutines.
|
|
|
|
The inclusive function on-CPU times show that func_a spent around 4.4
|
|
seconds on-CPU. This includes the time spent in other subroutines called.
|
|
|
|
These on-CPU times are the time the thread spent running on a CPU, from when
|
|
the subroutine began to when it completed. This does not include time
|
|
spent off-CPU time such as sleeping for I/O or waiting for scheduling.
|
|
|
|
On-CPU times are useful for showing who is causing the CPUs to be busy.
|
|
See Notes/ALLoncpu_notes.txt for more details. Also see
|
|
Notes/ALLexclusive_notes.txt and Notes/ALLinclusive_notes.txt for a
|
|
detailed explanation of exclusive vs inclusive subroutine time.
|
|
|