PATH:
opt
/
alt
/
ruby19
/
lib64
/
ruby
/
1.9.1
module Profiler__ # internal values @@start = @@stack = @@map = nil PROFILE_PROC = proc{|event, file, line, id, binding, klass| case event when "call", "c-call" now = Process.times[0] @@stack.push [now, 0.0] when "return", "c-return" now = Process.times[0] key = [klass, id] if tick = @@stack.pop data = (@@map[key] ||= [0, 0.0, 0.0, key]) data[0] += 1 cost = now - tick[0] data[1] += cost data[2] += cost - tick[1] @@stack[-1][1] += cost if @@stack[-1] end end } module_function def start_profile @@start = Process.times[0] @@stack = [] @@map = {} set_trace_func PROFILE_PROC end def stop_profile set_trace_func nil end def print_profile(f) stop_profile total = Process.times[0] - @@start if total == 0 then total = 0.01 end data = @@map.values data = data.sort_by{|x| -x[2]} sum = 0 f.printf " %% cumulative self self total\n" f.printf " time seconds seconds calls ms/call ms/call name\n" for d in data sum += d[2] f.printf "%6.2f %8.2f %8.2f %8d ", d[2]/total*100, sum, d[2], d[0] f.printf "%8.2f %8.2f %s\n", d[2]*1000/d[0], d[1]*1000/d[0], get_name(*d[3]) end f.printf "%6.2f %8.2f %8.2f %8d ", 0.0, total, 0.0, 1 # ??? f.printf "%8.2f %8.2f %s\n", 0.0, total*1000, "#toplevel" # ??? end def get_name(klass, id) name = klass.to_s || "" if klass.kind_of? Class name += "#" else name += "." end name + id.id2name end private :get_name end
[+]
rinda
[+]
yaml
[-] rational.rb
[edit]
[-] matrix.rb
[edit]
[+]
rdoc
[-] shell.rb
[edit]
[-] ostruct.rb
[edit]
[-] scanf.rb
[edit]
[+]
ripper
[+]
dl
[-] gserver.rb
[edit]
[-] rdoc.rb
[edit]
[-] getoptlong.rb
[edit]
[-] thread.rb
[edit]
[-] sync.rb
[edit]
[+]
syck
[-] delegate.rb
[edit]
[-] open-uri.rb
[edit]
[-] json.rb
[edit]
[-] rubygems.rb
[edit]
[-] openssl.rb
[edit]
[+]
json
[-] debug.rb
[edit]
[+]
irb
[-] digest.rb
[edit]
[-] yaml.rb
[edit]
[-] forwardable.rb
[edit]
[-] weakref.rb
[edit]
[-] benchmark.rb
[edit]
[-] profiler.rb
[edit]
[-] uri.rb
[edit]
[-] English.rb
[edit]
[-] timeout.rb
[edit]
[+]
rbconfig
[-] tracer.rb
[edit]
[-] resolv.rb
[edit]
[+]
uri
[-] tsort.rb
[edit]
[-] find.rb
[edit]
[-] logger.rb
[edit]
[-] psych.rb
[edit]
[+]
psych
[-] ubygems.rb
[edit]
[-] profile.rb
[edit]
[-] optparse.rb
[edit]
[+]
matrix
[-] pp.rb
[edit]
[+]
test
[-] date.rb
[edit]
[-] cmath.rb
[edit]
[-] ripper.rb
[edit]
[-] fiddle.rb
[edit]
[+]
drb
[+]
rake
[+]
webrick
[-] cgi.rb
[edit]
[-] pathname.rb
[edit]
[+]
xmlrpc
[-] mutex_m.rb
[edit]
[+]
rss
[+]
racc
[-] complex.rb
[edit]
[+]
..
[-] prettyprint.rb
[edit]
[-] csv.rb
[edit]
[-] kconv.rb
[edit]
[-] securerandom.rb
[edit]
[+]
fiddle
[-] abbrev.rb
[edit]
[-] resolv-replace.rb
[edit]
[+]
digest
[-] mathn.rb
[edit]
[+]
rexml
[-] e2mmap.rb
[edit]
[-] shellwords.rb
[edit]
[-] rss.rb
[edit]
[-] time.rb
[edit]
[+]
openssl
[+]
date
[-] dl.rb
[edit]
[-] fileutils.rb
[edit]
[-] socket.rb
[edit]
[+]
net
[-] monitor.rb
[edit]
[-] tempfile.rb
[edit]
[-] syck.rb
[edit]
[-] un.rb
[edit]
[-] mkmf.rb
[edit]
[-] base64.rb
[edit]
[-] thwait.rb
[edit]
[-] webrick.rb
[edit]
[-] erb.rb
[edit]
[-] rake.rb
[edit]
[+]
shell
[-] expect.rb
[edit]
[-] open3.rb
[edit]
[+]
cgi
[-] tmpdir.rb
[edit]
[-] ipaddr.rb
[edit]
[-] pstore.rb
[edit]
[-] singleton.rb
[edit]
[+]
rubygems
[-] set.rb
[edit]
[-] observer.rb
[edit]
[-] drb.rb
[edit]
[-] irb.rb
[edit]
[-] prime.rb
[edit]
[+]
x86_64-linux
[+]
optparse