ruby-prof 0.13.1 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES +14 -0
- data/README.rdoc +1 -1
- data/Rakefile +2 -3
- data/bin/ruby-prof +4 -4
- data/bin/ruby-prof-check-trace +45 -0
- data/doc/LICENSE.html +49 -88
- data/doc/README_rdoc.html +92 -106
- data/doc/Rack.html +47 -116
- data/doc/Rack/RubyProf.html +119 -174
- data/doc/RubyProf.html +184 -216
- data/doc/RubyProf/AbstractPrinter.html +131 -162
- data/doc/RubyProf/AggregateCallInfo.html +136 -166
- data/doc/RubyProf/CallInfo.html +113 -154
- data/doc/RubyProf/CallInfoPrinter.html +56 -123
- data/doc/RubyProf/CallInfoVisitor.html +87 -216
- data/doc/RubyProf/CallStackPrinter.html +222 -215
- data/doc/RubyProf/CallTreePrinter.html +91 -142
- data/doc/RubyProf/Cmd.html +115 -157
- data/doc/RubyProf/DotPrinter.html +88 -140
- data/doc/RubyProf/FlatPrinter.html +66 -129
- data/doc/RubyProf/FlatPrinterWithLineNumbers.html +69 -132
- data/doc/RubyProf/GraphHtmlPrinter.html +115 -166
- data/doc/RubyProf/GraphPrinter.html +58 -125
- data/doc/RubyProf/MethodInfo.html +147 -172
- data/doc/RubyProf/MultiPrinter.html +104 -150
- data/doc/RubyProf/Profile.html +125 -179
- data/doc/RubyProf/ProfileTask.html +117 -157
- data/doc/RubyProf/Test.html +115 -154
- data/doc/RubyProf/Thread.html +87 -147
- data/doc/created.rid +13 -14
- data/doc/examples/flat_txt.html +51 -90
- data/doc/examples/graph_html.html +852 -0
- data/doc/examples/graph_txt.html +64 -92
- data/doc/fonts.css +167 -0
- data/doc/fonts/Lato-Light.ttf +0 -0
- data/doc/fonts/Lato-LightItalic.ttf +0 -0
- data/doc/fonts/Lato-Regular.ttf +0 -0
- data/doc/fonts/Lato-RegularItalic.ttf +0 -0
- data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
- data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
- data/doc/images/add.png +0 -0
- data/doc/images/arrow_up.png +0 -0
- data/doc/images/delete.png +0 -0
- data/doc/images/tag_blue.png +0 -0
- data/doc/index.html +75 -65
- data/doc/js/darkfish.js +0 -15
- data/doc/js/search.js +20 -5
- data/doc/js/search_index.js +1 -1
- data/doc/rdoc.css +255 -218
- data/doc/table_of_contents.html +751 -353
- data/ext/ruby_prof/extconf.rb +20 -22
- data/ext/ruby_prof/rp_measure_allocations.c +9 -5
- data/ext/ruby_prof/rp_measure_gc_runs.c +8 -0
- data/ext/ruby_prof/rp_measure_gc_time.c +5 -2
- data/ext/ruby_prof/rp_measure_wall_time.c +1 -0
- data/ext/ruby_prof/rp_method.c +0 -9
- data/ext/ruby_prof/rp_method.h +1 -6
- data/ext/ruby_prof/ruby_prof.c +32 -112
- data/ext/ruby_prof/ruby_prof.h +9 -10
- data/lib/ruby-prof.rb +2 -1
- data/lib/ruby-prof/aggregate_call_info.rb +4 -6
- data/lib/ruby-prof/call_info_visitor.rb +42 -44
- data/lib/ruby-prof/printers/graph_html_printer.rb +0 -8
- data/lib/ruby-prof/profile.rb +4 -4
- data/lib/ruby-prof/rack.rb +47 -47
- data/lib/ruby-prof/task.rb +0 -0
- data/lib/ruby-prof/thread.rb +22 -22
- data/lib/ruby-prof/version.rb +3 -0
- data/ruby-prof.gemspec +7 -11
- data/test/call_info_test.rb +78 -78
- data/test/call_info_visitor_test.rb +31 -31
- data/test/fiber_test.rb +2 -2
- data/test/measure_gc_runs_test.rb +1 -1
- data/test/measure_process_time_test.rb +7 -6
- data/test/printers_test.rb +4 -8
- data/test/recursive_test.rb +5 -9
- data/test/test_helper.rb +1 -1
- data/test/unique_call_path_test.rb +7 -29
- data/test/yarv_test.rb +55 -0
- metadata +63 -55
- data/ext/ruby_prof/version.h +0 -7
- data/lib/ruby-prof/test.rb +0 -150
- data/test/exec_test.rb +0 -14
- data/test/test_suite.rb +0 -37
@@ -1,31 +1,31 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# encoding: UTF-8
|
3
|
-
|
4
|
-
require File.expand_path('../test_helper', __FILE__)
|
5
|
-
|
6
|
-
class CallInfoVisitorTest < Test::Unit::TestCase
|
7
|
-
def setup
|
8
|
-
# Need to use wall time for this test due to the sleep calls
|
9
|
-
RubyProf::measure_mode = RubyProf::WALL_TIME
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_visit
|
13
|
-
result = RubyProf.profile do
|
14
|
-
RubyProf::C1.hello
|
15
|
-
end
|
16
|
-
|
17
|
-
visitor = RubyProf::CallInfoVisitor.new(result.threads.first)
|
18
|
-
|
19
|
-
method_names = Array.new
|
20
|
-
|
21
|
-
visitor.visit do |call_info, event|
|
22
|
-
method_names << call_info.target.full_name if event == :enter
|
23
|
-
end
|
24
|
-
|
25
|
-
assert_equal(3, method_names.length)
|
26
|
-
assert_equal("CallInfoVisitorTest#test_visit", method_names[0])
|
27
|
-
assert_equal("<Class::RubyProf::C1>#hello", method_names[1])
|
28
|
-
assert_equal("Kernel#sleep", method_names[2])
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
require File.expand_path('../test_helper', __FILE__)
|
5
|
+
|
6
|
+
class CallInfoVisitorTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
# Need to use wall time for this test due to the sleep calls
|
9
|
+
RubyProf::measure_mode = RubyProf::WALL_TIME
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_visit
|
13
|
+
result = RubyProf.profile do
|
14
|
+
RubyProf::C1.hello
|
15
|
+
end
|
16
|
+
|
17
|
+
visitor = RubyProf::CallInfoVisitor.new(result.threads.first)
|
18
|
+
|
19
|
+
method_names = Array.new
|
20
|
+
|
21
|
+
visitor.visit do |call_info, event|
|
22
|
+
method_names << call_info.target.full_name if event == :enter
|
23
|
+
end
|
24
|
+
|
25
|
+
assert_equal(3, method_names.length)
|
26
|
+
assert_equal("CallInfoVisitorTest#test_visit", method_names[0])
|
27
|
+
assert_equal("<Class::RubyProf::C1>#hello", method_names[1])
|
28
|
+
assert_equal("Kernel#sleep", method_names[2])
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
data/test/fiber_test.rb
CHANGED
@@ -23,7 +23,7 @@ class FiberTest < Test::Unit::TestCase
|
|
23
23
|
end
|
24
24
|
while true
|
25
25
|
begin
|
26
|
-
|
26
|
+
enum.next
|
27
27
|
rescue StopIteration
|
28
28
|
break
|
29
29
|
end
|
@@ -62,4 +62,4 @@ class FiberTest < Test::Unit::TestCase
|
|
62
62
|
# RubyProf::CallInfoPrinter.new(@result).print
|
63
63
|
end
|
64
64
|
|
65
|
-
end
|
65
|
+
end
|
@@ -31,14 +31,15 @@ class MeasureProcessTimeTest < Test::Unit::TestCase
|
|
31
31
|
|
32
32
|
methods = result.threads.first.methods.sort.reverse
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
end
|
37
|
-
if RUBY_VERSION =~ /^(1\.9\.2|2\.0)/
|
38
|
-
assert_equal 15, methods.length
|
39
|
-
else
|
34
|
+
# WTF?
|
35
|
+
if RUBY_VERSION =~ /^1\.9\.3/
|
40
36
|
assert_equal 16, methods.length
|
37
|
+
elsif RUBY_VERSION =~ /^2\.0/
|
38
|
+
assert_equal 15, methods.length
|
39
|
+
else # if RUBY_VERSION =~ /^2\.1/
|
40
|
+
assert_equal 14, methods.length
|
41
41
|
end
|
42
|
+
# puts methods.map(&:full_name).inspect
|
42
43
|
|
43
44
|
# Check times
|
44
45
|
assert_equal("MeasureProcessTimeTest#test_primes", methods[0].full_name)
|
data/test/printers_test.rb
CHANGED
@@ -75,7 +75,7 @@ class PrintersTest < Test::Unit::TestCase
|
|
75
75
|
printer.print(output)
|
76
76
|
|
77
77
|
assert_match(/Thread ID: -?\d+/i, output)
|
78
|
-
assert_match(/Fiber ID: -?\d+/i, output)
|
78
|
+
assert_match(/Fiber ID: -?\d+/i, output)
|
79
79
|
assert_match(/Total: \d+\.\d+/i, output)
|
80
80
|
assert_match(/Object#run_primes/i, output)
|
81
81
|
output
|
@@ -88,12 +88,8 @@ class PrintersTest < Test::Unit::TestCase
|
|
88
88
|
assert_match(/called from/, output)
|
89
89
|
|
90
90
|
# should combine common parents
|
91
|
-
|
92
|
-
|
93
|
-
else
|
94
|
-
# 1.9 inlines it's Fixnum#- so we don't see as many
|
95
|
-
assert_equal(2, output.scan(/Object#is_prime/).length)
|
96
|
-
end
|
91
|
+
# 1.9 inlines it's Fixnum#- so we don't see as many
|
92
|
+
assert_equal(2, output.scan(/Object#is_prime/).length)
|
97
93
|
assert_no_match(/\.\/test\/prime.rb/, output) # don't use relative paths
|
98
94
|
end
|
99
95
|
|
@@ -113,7 +109,7 @@ class PrintersTest < Test::Unit::TestCase
|
|
113
109
|
printer.print(output)
|
114
110
|
|
115
111
|
assert_match(/Thread ID: -?\d+/i, output)
|
116
|
-
assert_match(/Fiber ID: -?\d+/i, output)
|
112
|
+
assert_match(/Fiber ID: -?\d+/i, output)
|
117
113
|
assert_match(/Total Time: \d+\.\d+/i, output)
|
118
114
|
assert_match(/Object#run_primes/i, output)
|
119
115
|
end
|
data/test/recursive_test.rb
CHANGED
@@ -111,11 +111,7 @@ class RecursiveTest < Test::Unit::TestCase
|
|
111
111
|
end
|
112
112
|
|
113
113
|
methods = result.threads.first.methods.sort.reverse
|
114
|
-
|
115
|
-
assert_equal(8, methods.length)
|
116
|
-
else
|
117
|
-
assert_equal(5, methods.length)
|
118
|
-
end
|
114
|
+
assert_equal(5, methods.length)
|
119
115
|
|
120
116
|
method = methods[0]
|
121
117
|
assert_equal('RecursiveTest#test_cycle', method.full_name)
|
@@ -161,7 +157,7 @@ class RecursiveTest < Test::Unit::TestCase
|
|
161
157
|
|
162
158
|
call_info = method.call_infos[1]
|
163
159
|
assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Integer#times', call_info.call_sequence)
|
164
|
-
assert_equal(1
|
160
|
+
assert_equal(1, call_info.children.length)
|
165
161
|
assert(call_info.recursive)
|
166
162
|
|
167
163
|
method = methods[3]
|
@@ -175,17 +171,17 @@ class RecursiveTest < Test::Unit::TestCase
|
|
175
171
|
assert_equal(3, method.call_infos.length)
|
176
172
|
call_info = method.call_infos[0]
|
177
173
|
assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial', call_info.call_sequence)
|
178
|
-
assert_equal(3
|
174
|
+
assert_equal(3, call_info.children.length)
|
179
175
|
assert(!call_info.recursive)
|
180
176
|
|
181
177
|
call_info = method.call_infos[1]
|
182
178
|
assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Object#render_partial', call_info.call_sequence)
|
183
|
-
assert_equal(1
|
179
|
+
assert_equal(1, call_info.children.length)
|
184
180
|
assert(call_info.recursive)
|
185
181
|
|
186
182
|
call_info = method.call_infos[2]
|
187
183
|
assert_equal('RecursiveTest#test_cycle->Object#render->Integer#times->Object#render_partial->Integer#times->Object#render_partial', call_info.call_sequence)
|
188
|
-
assert_equal(1
|
184
|
+
assert_equal(1, call_info.children.length)
|
189
185
|
assert(call_info.recursive)
|
190
186
|
|
191
187
|
method = methods[4]
|
data/test/test_helper.rb
CHANGED
@@ -13,7 +13,7 @@ if ENV["RM_INFO"] || ENV["TEAMCITY_VERSION"]
|
|
13
13
|
MiniTest::Reporters.use!
|
14
14
|
end
|
15
15
|
|
16
|
-
require "minitest/pride"
|
16
|
+
require "minitest/pride" if RUBY_VERSION == "1.9.3"
|
17
17
|
|
18
18
|
# To make testing/debugging easier, test within this source tree versus an installed gem
|
19
19
|
dir = File.dirname(__FILE__)
|
@@ -121,24 +121,14 @@ class UniqueCallPathTest < Test::Unit::TestCase
|
|
121
121
|
end
|
122
122
|
end
|
123
123
|
|
124
|
-
|
125
|
-
assert_equal(4, call_info_a.target.children.length)
|
126
|
-
else
|
127
|
-
assert_equal(2, call_info_a.target.children.length)
|
128
|
-
end
|
124
|
+
assert_equal(2, call_info_a.target.children.length)
|
129
125
|
|
130
126
|
children_of_a = children_of_a.sort do |c1, c2|
|
131
127
|
c1.target.full_name <=> c2.target.full_name
|
132
128
|
end
|
133
|
-
if RUBY_VERSION < '1.9'
|
134
|
-
assert_equal(2, children_of_a.length)
|
135
|
-
assert_equal("Fixnum#==", children_of_a[0].target.full_name)
|
136
|
-
assert_equal("UniqueCallPath#method_b", children_of_a[1].target.full_name)
|
137
|
-
else
|
138
|
-
assert_equal(1, children_of_a.length)
|
139
|
-
assert_equal("UniqueCallPath#method_b", children_of_a[0].target.full_name)
|
140
|
-
end
|
141
129
|
|
130
|
+
assert_equal(1, children_of_a.length)
|
131
|
+
assert_equal("UniqueCallPath#method_b", children_of_a[0].target.full_name)
|
142
132
|
end
|
143
133
|
|
144
134
|
def test_id2ref
|
@@ -199,26 +189,14 @@ class UniqueCallPathTest < Test::Unit::TestCase
|
|
199
189
|
end
|
200
190
|
end
|
201
191
|
|
202
|
-
|
203
|
-
assert_equal(4, call_info_a.target.children.length)
|
204
|
-
else
|
205
|
-
assert_equal(2, call_info_a.target.children.length)
|
206
|
-
end
|
192
|
+
assert_equal(2, call_info_a.target.children.length)
|
207
193
|
|
208
194
|
children_of_a = children_of_a.sort do |c1, c2|
|
209
195
|
c1.target.full_name <=> c2.target.full_name
|
210
196
|
end
|
211
197
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
assert_equal("Fixnum#==", children_of_a[0].target.full_name)
|
216
|
-
assert_equal(1, children_of_a[1].called)
|
217
|
-
assert_equal("UniqueCallPath#method_b", children_of_a[1].target.full_name)
|
218
|
-
else
|
219
|
-
assert_equal(1, children_of_a.length)
|
220
|
-
assert_equal(1, children_of_a[0].called)
|
221
|
-
assert_equal("UniqueCallPath#method_b", children_of_a[0].target.full_name)
|
222
|
-
end
|
198
|
+
assert_equal(1, children_of_a.length)
|
199
|
+
assert_equal(1, children_of_a[0].called)
|
200
|
+
assert_equal("UniqueCallPath#method_b", children_of_a[0].target.full_name)
|
223
201
|
end
|
224
202
|
end
|
data/test/yarv_test.rb
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# encoding: UTF-8
|
3
|
+
|
4
|
+
require File.expand_path('../test_helper', __FILE__)
|
5
|
+
|
6
|
+
# tests for bugs reported by users
|
7
|
+
class BugsTest < Test::Unit::TestCase
|
8
|
+
def setup
|
9
|
+
RubyProf::measure_mode = RubyProf::WALL_TIME
|
10
|
+
define_methods
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_array_push_unoptimized
|
14
|
+
a = nil
|
15
|
+
result = RubyProf.profile do
|
16
|
+
a = self.array_push_unoptimized
|
17
|
+
end
|
18
|
+
assert_equal 2, a.length
|
19
|
+
assert_equal ["BugsTest#test_array_push_unoptimized", "BugsTest#array_push_unoptimized", 'Array#<<', "Array#push"], result.threads.first.methods.map(&:full_name)
|
20
|
+
end
|
21
|
+
|
22
|
+
def test_array_push_optimized
|
23
|
+
a = nil
|
24
|
+
result = RubyProf.profile do
|
25
|
+
a = self.array_push_optimized
|
26
|
+
end
|
27
|
+
assert_equal 2, a.length
|
28
|
+
assert_equal ["BugsTest#test_array_push_optimized", "BugsTest#array_push_optimized", "Array#push"], result.threads.first.methods.map(&:full_name)
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
def define_methods
|
33
|
+
return if respond_to?(:array_push_optimized)
|
34
|
+
old_compile_option = RubyVM::InstructionSequence.compile_option
|
35
|
+
RubyVM::InstructionSequence.compile_option = {
|
36
|
+
:trace_instruction => true,
|
37
|
+
:specialized_instruction => false
|
38
|
+
}
|
39
|
+
self.class.class_eval <<-"EOM"
|
40
|
+
def array_push_unoptimized
|
41
|
+
a = []
|
42
|
+
a << 1
|
43
|
+
a.push 2
|
44
|
+
end
|
45
|
+
EOM
|
46
|
+
RubyVM::InstructionSequence.compile_option = old_compile_option
|
47
|
+
self.class.class_eval <<-"EOM"
|
48
|
+
def array_push_optimized
|
49
|
+
a = []
|
50
|
+
a << 1
|
51
|
+
a.push 2
|
52
|
+
end
|
53
|
+
EOM
|
54
|
+
end
|
55
|
+
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-prof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.14.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-01-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '4.0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '4.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake-compiler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rdoc
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
description: |
|
@@ -62,20 +62,54 @@ description: |
|
|
62
62
|
email: shugo@ruby-lang.org, cfis@savagexi.com, rogerdpack@gmail.com, skaes@railsexpress.de
|
63
63
|
executables:
|
64
64
|
- ruby-prof
|
65
|
+
- ruby-prof-check-trace
|
65
66
|
extensions:
|
66
67
|
- ext/ruby_prof/extconf.rb
|
67
68
|
extra_rdoc_files: []
|
68
69
|
files:
|
69
70
|
- CHANGES
|
70
71
|
- LICENSE
|
71
|
-
- Rakefile
|
72
72
|
- README.rdoc
|
73
|
-
-
|
73
|
+
- Rakefile
|
74
74
|
- bin/ruby-prof
|
75
|
+
- bin/ruby-prof-check-trace
|
76
|
+
- doc/LICENSE.html
|
77
|
+
- doc/README_rdoc.html
|
78
|
+
- doc/Rack.html
|
79
|
+
- doc/Rack/RubyProf.html
|
80
|
+
- doc/RubyProf.html
|
81
|
+
- doc/RubyProf/AbstractPrinter.html
|
82
|
+
- doc/RubyProf/AggregateCallInfo.html
|
83
|
+
- doc/RubyProf/CallInfo.html
|
84
|
+
- doc/RubyProf/CallInfoPrinter.html
|
85
|
+
- doc/RubyProf/CallInfoVisitor.html
|
86
|
+
- doc/RubyProf/CallStackPrinter.html
|
87
|
+
- doc/RubyProf/CallTreePrinter.html
|
88
|
+
- doc/RubyProf/Cmd.html
|
89
|
+
- doc/RubyProf/DotPrinter.html
|
90
|
+
- doc/RubyProf/FlatPrinter.html
|
91
|
+
- doc/RubyProf/FlatPrinterWithLineNumbers.html
|
92
|
+
- doc/RubyProf/GraphHtmlPrinter.html
|
93
|
+
- doc/RubyProf/GraphPrinter.html
|
94
|
+
- doc/RubyProf/MethodInfo.html
|
95
|
+
- doc/RubyProf/MultiPrinter.html
|
96
|
+
- doc/RubyProf/Profile.html
|
97
|
+
- doc/RubyProf/ProfileTask.html
|
98
|
+
- doc/RubyProf/Test.html
|
99
|
+
- doc/RubyProf/Thread.html
|
75
100
|
- doc/created.rid
|
76
101
|
- doc/examples/flat_txt.html
|
102
|
+
- doc/examples/graph_html.html
|
77
103
|
- doc/examples/graph_txt.html
|
104
|
+
- doc/fonts.css
|
105
|
+
- doc/fonts/Lato-Light.ttf
|
106
|
+
- doc/fonts/Lato-LightItalic.ttf
|
107
|
+
- doc/fonts/Lato-Regular.ttf
|
108
|
+
- doc/fonts/Lato-RegularItalic.ttf
|
109
|
+
- doc/fonts/SourceCodePro-Bold.ttf
|
110
|
+
- doc/fonts/SourceCodePro-Regular.ttf
|
78
111
|
- doc/images/add.png
|
112
|
+
- doc/images/arrow_up.png
|
79
113
|
- doc/images/brick.png
|
80
114
|
- doc/images/brick_link.png
|
81
115
|
- doc/images/bug.png
|
@@ -106,31 +140,7 @@ files:
|
|
106
140
|
- doc/js/search.js
|
107
141
|
- doc/js/search_index.js
|
108
142
|
- doc/js/searcher.js
|
109
|
-
- doc/LICENSE.html
|
110
|
-
- doc/Rack/RubyProf.html
|
111
|
-
- doc/Rack.html
|
112
143
|
- doc/rdoc.css
|
113
|
-
- doc/README_rdoc.html
|
114
|
-
- doc/RubyProf/AbstractPrinter.html
|
115
|
-
- doc/RubyProf/AggregateCallInfo.html
|
116
|
-
- doc/RubyProf/CallInfo.html
|
117
|
-
- doc/RubyProf/CallInfoPrinter.html
|
118
|
-
- doc/RubyProf/CallInfoVisitor.html
|
119
|
-
- doc/RubyProf/CallStackPrinter.html
|
120
|
-
- doc/RubyProf/CallTreePrinter.html
|
121
|
-
- doc/RubyProf/Cmd.html
|
122
|
-
- doc/RubyProf/DotPrinter.html
|
123
|
-
- doc/RubyProf/FlatPrinter.html
|
124
|
-
- doc/RubyProf/FlatPrinterWithLineNumbers.html
|
125
|
-
- doc/RubyProf/GraphHtmlPrinter.html
|
126
|
-
- doc/RubyProf/GraphPrinter.html
|
127
|
-
- doc/RubyProf/MethodInfo.html
|
128
|
-
- doc/RubyProf/MultiPrinter.html
|
129
|
-
- doc/RubyProf/Profile.html
|
130
|
-
- doc/RubyProf/ProfileTask.html
|
131
|
-
- doc/RubyProf/Test.html
|
132
|
-
- doc/RubyProf/Thread.html
|
133
|
-
- doc/RubyProf.html
|
134
144
|
- doc/table_of_contents.html
|
135
145
|
- examples/empty.png
|
136
146
|
- examples/flat.txt
|
@@ -147,7 +157,9 @@ files:
|
|
147
157
|
- examples/stack.html
|
148
158
|
- ext/ruby_prof/extconf.rb
|
149
159
|
- ext/ruby_prof/rp_call_info.c
|
160
|
+
- ext/ruby_prof/rp_call_info.h
|
150
161
|
- ext/ruby_prof/rp_measure.c
|
162
|
+
- ext/ruby_prof/rp_measure.h
|
151
163
|
- ext/ruby_prof/rp_measure_allocations.c
|
152
164
|
- ext/ruby_prof/rp_measure_cpu_time.c
|
153
165
|
- ext/ruby_prof/rp_measure_gc_runs.c
|
@@ -156,35 +168,26 @@ files:
|
|
156
168
|
- ext/ruby_prof/rp_measure_process_time.c
|
157
169
|
- ext/ruby_prof/rp_measure_wall_time.c
|
158
170
|
- ext/ruby_prof/rp_method.c
|
159
|
-
- ext/ruby_prof/rp_stack.c
|
160
|
-
- ext/ruby_prof/rp_thread.c
|
161
|
-
- ext/ruby_prof/ruby_prof.c
|
162
|
-
- ext/ruby_prof/rp_call_info.h
|
163
|
-
- ext/ruby_prof/rp_measure.h
|
164
171
|
- ext/ruby_prof/rp_method.h
|
172
|
+
- ext/ruby_prof/rp_stack.c
|
165
173
|
- ext/ruby_prof/rp_stack.h
|
174
|
+
- ext/ruby_prof/rp_thread.c
|
166
175
|
- ext/ruby_prof/rp_thread.h
|
176
|
+
- ext/ruby_prof/ruby_prof.c
|
167
177
|
- ext/ruby_prof/ruby_prof.h
|
168
|
-
- ext/ruby_prof/version.h
|
169
178
|
- ext/ruby_prof/vc/ruby_prof.sln
|
170
179
|
- ext/ruby_prof/vc/ruby_prof_18.vcxproj
|
171
180
|
- ext/ruby_prof/vc/ruby_prof_19.vcxproj
|
172
181
|
- ext/ruby_prof/vc/ruby_prof_20.vcxproj
|
173
182
|
- lib/ruby-prof.rb
|
174
|
-
- lib/unprof.rb
|
175
183
|
- lib/ruby-prof/aggregate_call_info.rb
|
176
184
|
- lib/ruby-prof/call_info.rb
|
177
185
|
- lib/ruby-prof/call_info_visitor.rb
|
178
186
|
- lib/ruby-prof/compatibility.rb
|
179
|
-
- lib/ruby-prof/method_info.rb
|
180
|
-
- lib/ruby-prof/profile.rb
|
181
|
-
- lib/ruby-prof/rack.rb
|
182
|
-
- lib/ruby-prof/task.rb
|
183
|
-
- lib/ruby-prof/test.rb
|
184
|
-
- lib/ruby-prof/thread.rb
|
185
187
|
- lib/ruby-prof/images/empty.png
|
186
188
|
- lib/ruby-prof/images/minus.png
|
187
189
|
- lib/ruby-prof/images/plus.png
|
190
|
+
- lib/ruby-prof/method_info.rb
|
188
191
|
- lib/ruby-prof/printers/abstract_printer.rb
|
189
192
|
- lib/ruby-prof/printers/call_info_printer.rb
|
190
193
|
- lib/ruby-prof/printers/call_stack_printer.rb
|
@@ -195,6 +198,13 @@ files:
|
|
195
198
|
- lib/ruby-prof/printers/graph_html_printer.rb
|
196
199
|
- lib/ruby-prof/printers/graph_printer.rb
|
197
200
|
- lib/ruby-prof/printers/multi_printer.rb
|
201
|
+
- lib/ruby-prof/profile.rb
|
202
|
+
- lib/ruby-prof/rack.rb
|
203
|
+
- lib/ruby-prof/task.rb
|
204
|
+
- lib/ruby-prof/thread.rb
|
205
|
+
- lib/ruby-prof/version.rb
|
206
|
+
- lib/unprof.rb
|
207
|
+
- ruby-prof.gemspec
|
198
208
|
- test/aggregate_test.rb
|
199
209
|
- test/basic_test.rb
|
200
210
|
- test/call_info_test.rb
|
@@ -204,7 +214,6 @@ files:
|
|
204
214
|
- test/enumerable_test.rb
|
205
215
|
- test/exceptions_test.rb
|
206
216
|
- test/exclude_threads_test.rb
|
207
|
-
- test/exec_test.rb
|
208
217
|
- test/fiber_test.rb
|
209
218
|
- test/line_number_test.rb
|
210
219
|
- test/measure_allocations_test.rb
|
@@ -227,10 +236,10 @@ files:
|
|
227
236
|
- test/stack_test.rb
|
228
237
|
- test/start_stop_test.rb
|
229
238
|
- test/test_helper.rb
|
230
|
-
- test/test_suite.rb
|
231
239
|
- test/thread_test.rb
|
232
240
|
- test/unique_call_path_test.rb
|
233
|
-
|
241
|
+
- test/yarv_test.rb
|
242
|
+
homepage: https://github.com/ruby-prof/ruby-prof
|
234
243
|
licenses: []
|
235
244
|
metadata: {}
|
236
245
|
post_install_message:
|
@@ -239,20 +248,19 @@ require_paths:
|
|
239
248
|
- lib
|
240
249
|
required_ruby_version: !ruby/object:Gem::Requirement
|
241
250
|
requirements:
|
242
|
-
- -
|
251
|
+
- - ">="
|
243
252
|
- !ruby/object:Gem::Version
|
244
|
-
version: 1.
|
253
|
+
version: 1.9.3
|
245
254
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
246
255
|
requirements:
|
247
|
-
- -
|
256
|
+
- - ">="
|
248
257
|
- !ruby/object:Gem::Version
|
249
258
|
version: '0'
|
250
259
|
requirements: []
|
251
260
|
rubyforge_project:
|
252
|
-
rubygems_version: 2.
|
261
|
+
rubygems_version: 2.2.0
|
253
262
|
signing_key:
|
254
263
|
specification_version: 4
|
255
264
|
summary: Fast Ruby profiler
|
256
265
|
test_files:
|
257
266
|
- test/test_helper.rb
|
258
|
-
- test/test_suite.rb
|