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.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +14 -0
  3. data/README.rdoc +1 -1
  4. data/Rakefile +2 -3
  5. data/bin/ruby-prof +4 -4
  6. data/bin/ruby-prof-check-trace +45 -0
  7. data/doc/LICENSE.html +49 -88
  8. data/doc/README_rdoc.html +92 -106
  9. data/doc/Rack.html +47 -116
  10. data/doc/Rack/RubyProf.html +119 -174
  11. data/doc/RubyProf.html +184 -216
  12. data/doc/RubyProf/AbstractPrinter.html +131 -162
  13. data/doc/RubyProf/AggregateCallInfo.html +136 -166
  14. data/doc/RubyProf/CallInfo.html +113 -154
  15. data/doc/RubyProf/CallInfoPrinter.html +56 -123
  16. data/doc/RubyProf/CallInfoVisitor.html +87 -216
  17. data/doc/RubyProf/CallStackPrinter.html +222 -215
  18. data/doc/RubyProf/CallTreePrinter.html +91 -142
  19. data/doc/RubyProf/Cmd.html +115 -157
  20. data/doc/RubyProf/DotPrinter.html +88 -140
  21. data/doc/RubyProf/FlatPrinter.html +66 -129
  22. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +69 -132
  23. data/doc/RubyProf/GraphHtmlPrinter.html +115 -166
  24. data/doc/RubyProf/GraphPrinter.html +58 -125
  25. data/doc/RubyProf/MethodInfo.html +147 -172
  26. data/doc/RubyProf/MultiPrinter.html +104 -150
  27. data/doc/RubyProf/Profile.html +125 -179
  28. data/doc/RubyProf/ProfileTask.html +117 -157
  29. data/doc/RubyProf/Test.html +115 -154
  30. data/doc/RubyProf/Thread.html +87 -147
  31. data/doc/created.rid +13 -14
  32. data/doc/examples/flat_txt.html +51 -90
  33. data/doc/examples/graph_html.html +852 -0
  34. data/doc/examples/graph_txt.html +64 -92
  35. data/doc/fonts.css +167 -0
  36. data/doc/fonts/Lato-Light.ttf +0 -0
  37. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  38. data/doc/fonts/Lato-Regular.ttf +0 -0
  39. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  40. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  41. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  42. data/doc/images/add.png +0 -0
  43. data/doc/images/arrow_up.png +0 -0
  44. data/doc/images/delete.png +0 -0
  45. data/doc/images/tag_blue.png +0 -0
  46. data/doc/index.html +75 -65
  47. data/doc/js/darkfish.js +0 -15
  48. data/doc/js/search.js +20 -5
  49. data/doc/js/search_index.js +1 -1
  50. data/doc/rdoc.css +255 -218
  51. data/doc/table_of_contents.html +751 -353
  52. data/ext/ruby_prof/extconf.rb +20 -22
  53. data/ext/ruby_prof/rp_measure_allocations.c +9 -5
  54. data/ext/ruby_prof/rp_measure_gc_runs.c +8 -0
  55. data/ext/ruby_prof/rp_measure_gc_time.c +5 -2
  56. data/ext/ruby_prof/rp_measure_wall_time.c +1 -0
  57. data/ext/ruby_prof/rp_method.c +0 -9
  58. data/ext/ruby_prof/rp_method.h +1 -6
  59. data/ext/ruby_prof/ruby_prof.c +32 -112
  60. data/ext/ruby_prof/ruby_prof.h +9 -10
  61. data/lib/ruby-prof.rb +2 -1
  62. data/lib/ruby-prof/aggregate_call_info.rb +4 -6
  63. data/lib/ruby-prof/call_info_visitor.rb +42 -44
  64. data/lib/ruby-prof/printers/graph_html_printer.rb +0 -8
  65. data/lib/ruby-prof/profile.rb +4 -4
  66. data/lib/ruby-prof/rack.rb +47 -47
  67. data/lib/ruby-prof/task.rb +0 -0
  68. data/lib/ruby-prof/thread.rb +22 -22
  69. data/lib/ruby-prof/version.rb +3 -0
  70. data/ruby-prof.gemspec +7 -11
  71. data/test/call_info_test.rb +78 -78
  72. data/test/call_info_visitor_test.rb +31 -31
  73. data/test/fiber_test.rb +2 -2
  74. data/test/measure_gc_runs_test.rb +1 -1
  75. data/test/measure_process_time_test.rb +7 -6
  76. data/test/printers_test.rb +4 -8
  77. data/test/recursive_test.rb +5 -9
  78. data/test/test_helper.rb +1 -1
  79. data/test/unique_call_path_test.rb +7 -29
  80. data/test/yarv_test.rb +55 -0
  81. metadata +63 -55
  82. data/ext/ruby_prof/version.h +0 -7
  83. data/lib/ruby-prof/test.rb +0 -150
  84. data/test/exec_test.rb +0 -14
  85. data/test/test_suite.rb +0 -37
@@ -2,182 +2,115 @@
2
2
 
3
3
  <html>
4
4
  <head>
5
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
5
+ <meta charset="UTF-8">
6
6
 
7
7
  <title>class RubyProf::Profile - ruby-prof</title>
8
8
 
9
- <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
9
+ <link href="../fonts.css" rel="stylesheet">
10
+ <link href="../rdoc.css" rel="stylesheet">
10
11
 
11
12
  <script type="text/javascript">
12
13
  var rdoc_rel_prefix = "../";
13
14
  </script>
14
15
 
15
- <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
- <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
- <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
- <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
- <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
- <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
16
+ <script src="../js/jquery.js"></script>
17
+ <script src="../js/navigation.js"></script>
18
+ <script src="../js/search_index.js"></script>
19
+ <script src="../js/search.js"></script>
20
+ <script src="../js/searcher.js"></script>
21
+ <script src="../js/darkfish.js"></script>
21
22
 
22
23
 
23
- <body id="top" class="class">
24
- <nav id="metadata">
25
- <nav id="home-section" class="section">
26
- <h3 class="section-header">
27
- <a href="../index.html">Home</a>
24
+ <body id="top" role="document" class="class">
25
+ <nav role="navigation">
26
+ <div id="project-navigation">
27
+ <div id="home-section" role="region" title="Quick navigation" class="nav-section">
28
+ <h2>
29
+ <a href="../index.html" rel="home">Home</a>
30
+ </h2>
31
+
32
+ <div id="table-of-contents-navigation">
33
+ <a href="../table_of_contents.html#pages">Pages</a>
28
34
  <a href="../table_of_contents.html#classes">Classes</a>
29
35
  <a href="../table_of_contents.html#methods">Methods</a>
30
- </h3>
31
- </nav>
32
-
36
+ </div>
37
+ </div>
33
38
 
34
- <nav id="search-section" class="section project-section" class="initially-hidden">
39
+ <div id="search-section" role="search" class="project-section initially-hidden">
35
40
  <form action="#" method="get" accept-charset="utf-8">
36
- <h3 class="section-header">
37
- <input type="text" name="search" placeholder="Search" id="search-field"
41
+ <div id="search-field-wrapper">
42
+ <input id="search-field" role="combobox" aria-label="Search"
43
+ aria-autocomplete="list" aria-controls="search-results"
44
+ type="text" name="search" placeholder="Search" spellcheck="false"
38
45
  title="Type to search, Up and Down to navigate, Enter to load">
39
- </h3>
40
- </form>
46
+ </div>
41
47
 
42
- <ul id="search-results" class="initially-hidden"></ul>
43
- </nav>
44
-
45
-
46
- <div id="file-metadata">
47
- <nav id="file-list-section" class="section">
48
- <h3 class="section-header">Defined In</h3>
49
- <ul>
50
- <li>lib/ruby-prof/profile.rb
51
- <li>ext/ruby_prof/ruby_prof.c
52
- </ul>
53
- </nav>
48
+ <ul id="search-results" aria-label="Search Results"
49
+ aria-busy="false" aria-expanded="false"
50
+ aria-atomic="false" class="initially-hidden"></ul>
51
+ </form>
52
+ </div>
54
53
 
55
-
56
54
  </div>
57
55
 
56
+
57
+
58
58
  <div id="class-metadata">
59
59
 
60
- <nav id="parent-class-section" class="section">
61
- <h3 class="section-header">Parent</h3>
60
+ <div id="parent-class-section" class="nav-section">
61
+ <h3>Parent</h3>
62
+
62
63
 
63
64
  <p class="link">Object
64
65
 
65
- </nav>
66
+ </div>
66
67
 
67
68
 
69
+
68
70
  <!-- Method Quickref -->
69
- <nav id="method-list-section" class="section">
70
- <h3 class="section-header">Methods</h3>
71
+ <div id="method-list-section" class="nav-section">
72
+ <h3>Methods</h3>
71
73
 
72
- <ul class="link-list">
74
+ <ul class="link-list" role="directory">
73
75
 
74
- <li><a href="#method-c-new">::new</a>
76
+ <li ><a href="#method-c-new">::new</a>
75
77
 
76
- <li><a href="#method-c-profile">::profile</a>
78
+ <li ><a href="#method-c-profile">::profile</a>
77
79
 
78
- <li><a href="#method-i-detect_recursion">#detect_recursion</a>
80
+ <li ><a href="#method-i-detect_recursion">#detect_recursion</a>
79
81
 
80
- <li><a href="#method-i-eliminate_methods-21">#eliminate_methods!</a>
82
+ <li ><a href="#method-i-eliminate_methods-21">#eliminate_methods!</a>
81
83
 
82
- <li><a href="#method-i-pause">#pause</a>
84
+ <li ><a href="#method-i-pause">#pause</a>
83
85
 
84
- <li><a href="#method-i-paused-3F">#paused?</a>
86
+ <li ><a href="#method-i-paused-3F">#paused?</a>
85
87
 
86
- <li><a href="#method-i-post_process">#post_process</a>
88
+ <li ><a href="#method-i-post_process">#post_process</a>
87
89
 
88
- <li><a href="#method-i-resume">#resume</a>
90
+ <li ><a href="#method-i-resume">#resume</a>
89
91
 
90
- <li><a href="#method-i-running-3F">#running?</a>
92
+ <li ><a href="#method-i-running-3F">#running?</a>
91
93
 
92
- <li><a href="#method-i-start">#start</a>
94
+ <li ><a href="#method-i-start">#start</a>
93
95
 
94
- <li><a href="#method-i-stop">#stop</a>
96
+ <li ><a href="#method-i-stop">#stop</a>
95
97
 
96
- <li><a href="#method-i-threads">#threads</a>
98
+ <li ><a href="#method-i-threads">#threads</a>
97
99
 
98
100
  </ul>
99
- </nav>
100
-
101
- </div>
102
-
103
- <div id="project-metadata">
104
- <nav id="fileindex-section" class="section project-section">
105
- <h3 class="section-header">Pages</h3>
106
-
107
- <ul>
108
-
109
- <li class="file"><a href="../LICENSE.html">LICENSE</a>
110
-
111
- <li class="file"><a href="../README_rdoc.html">README</a>
112
-
113
- <li class="file"><a href="../examples/flat_txt.html">flat</a>
114
-
115
- <li class="file"><a href="../examples/graph_txt.html">graph</a>
116
-
117
- </ul>
118
- </nav>
119
-
120
- <nav id="classindex-section" class="section project-section">
121
- <h3 class="section-header">Class and Module Index</h3>
122
-
123
- <ul class="link-list">
124
-
125
- <li><a href="../RubyProf.html">RubyProf</a>
126
-
127
- <li><a href="../RubyProf/AbstractPrinter.html">RubyProf::AbstractPrinter</a>
128
-
129
- <li><a href="../RubyProf/AggregateCallInfo.html">RubyProf::AggregateCallInfo</a>
130
-
131
- <li><a href="../RubyProf/CallInfo.html">RubyProf::CallInfo</a>
132
-
133
- <li><a href="../RubyProf/CallInfoPrinter.html">RubyProf::CallInfoPrinter</a>
134
-
135
- <li><a href="../RubyProf/CallInfoVisitor.html">RubyProf::CallInfoVisitor</a>
136
-
137
- <li><a href="../RubyProf/CallStackPrinter.html">RubyProf::CallStackPrinter</a>
138
-
139
- <li><a href="../RubyProf/CallTreePrinter.html">RubyProf::CallTreePrinter</a>
140
-
141
- <li><a href="../RubyProf/Cmd.html">RubyProf::Cmd</a>
142
-
143
- <li><a href="../RubyProf/DotPrinter.html">RubyProf::DotPrinter</a>
144
-
145
- <li><a href="../RubyProf/FlatPrinter.html">RubyProf::FlatPrinter</a>
146
-
147
- <li><a href="../RubyProf/FlatPrinterWithLineNumbers.html">RubyProf::FlatPrinterWithLineNumbers</a>
148
-
149
- <li><a href="../RubyProf/GraphHtmlPrinter.html">RubyProf::GraphHtmlPrinter</a>
150
-
151
- <li><a href="../RubyProf/GraphPrinter.html">RubyProf::GraphPrinter</a>
152
-
153
- <li><a href="../RubyProf/MethodInfo.html">RubyProf::MethodInfo</a>
154
-
155
- <li><a href="../RubyProf/MultiPrinter.html">RubyProf::MultiPrinter</a>
156
-
157
- <li><a href="../RubyProf/Profile.html">RubyProf::Profile</a>
158
-
159
- <li><a href="../RubyProf/ProfileTask.html">RubyProf::ProfileTask</a>
160
-
161
- <li><a href="../RubyProf/Test.html">RubyProf::Test</a>
162
-
163
- <li><a href="../RubyProf/Thread.html">RubyProf::Thread</a>
164
-
165
- <li><a href="../Rack.html">Rack</a>
166
-
167
- <li><a href="../Rack/RubyProf.html">Rack::RubyProf</a>
168
-
169
- </ul>
170
- </nav>
101
+ </div>
171
102
 
172
103
  </div>
173
104
  </nav>
174
105
 
175
- <div id="documentation">
176
- <h1 class="class">class RubyProf::Profile</h1>
106
+ <main role="main" aria-labelledby="class-RubyProf::Profile">
107
+ <h1 id="class-RubyProf::Profile" class="class">
108
+ class RubyProf::Profile
109
+ </h1>
177
110
 
178
- <div id="description" class="description">
111
+ <section class="description">
179
112
 
180
- </div><!-- description -->
113
+ </section>
181
114
 
182
115
 
183
116
 
@@ -191,10 +124,11 @@
191
124
 
192
125
 
193
126
 
194
- <!-- Methods -->
195
127
 
196
- <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
197
- <h3 class="section-header">Public Class Methods</h3>
128
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section">
129
+ <header>
130
+ <h3>Public Class Methods</h3>
131
+ </header>
198
132
 
199
133
 
200
134
  <div id="method-c-new" class="method-detail ">
@@ -215,7 +149,7 @@
215
149
 
216
150
  <p>Returns a new profiler.</p>
217
151
 
218
- <h2 id="method-c-new-label-Parameters">Parameters</h2>
152
+ <h2 id="method-c-new-label-Parameters">Parameters<span><a href="#method-c-new-label-Parameters">&para;</a> <a href="#documentation">&uarr;</a></span></h2>
219
153
  <dl class="rdoc-list note-list"><dt>mode
220
154
  <dd>
221
155
  <p>Measure mode (optional). Specifies the profile measure mode. If not
@@ -225,6 +159,7 @@ specified, defaults to RubyProf::WALL_TIME.</p>
225
159
  <p>Threads to exclude from the profiling results (optional).</p>
226
160
  </dd></dl>
227
161
 
162
+
228
163
 
229
164
 
230
165
  <div class="method-source-code" id="new-source">
@@ -270,14 +205,14 @@ prof_initialize(int argc, VALUE *argv, VALUE self)
270
205
 
271
206
  return self;
272
207
  }</pre>
273
- </div><!-- new-source -->
208
+ </div>
274
209
 
275
210
  </div>
276
211
 
277
212
 
278
213
 
279
214
 
280
- </div><!-- new-method -->
215
+ </div>
281
216
 
282
217
 
283
218
  <div id="method-c-profile" class="method-detail ">
@@ -298,6 +233,7 @@ prof_initialize(int argc, VALUE *argv, VALUE self)
298
233
 
299
234
  <p>Profiles the specified block and returns a RubyProf::Result object.</p>
300
235
 
236
+
301
237
 
302
238
 
303
239
  <div class="method-source-code" id="profile-source">
@@ -316,20 +252,22 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
316
252
  rb_protect(rb_yield, profile, &amp;result);
317
253
  return prof_stop(profile);
318
254
  }</pre>
319
- </div><!-- profile-source -->
255
+ </div>
320
256
 
321
257
  </div>
322
258
 
323
259
 
324
260
 
325
261
 
326
- </div><!-- profile-method -->
262
+ </div>
327
263
 
328
264
 
329
- </section><!-- public-class-method-details -->
265
+ </section>
330
266
 
331
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
332
- <h3 class="section-header">Public Instance Methods</h3>
267
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section">
268
+ <header>
269
+ <h3>Public Instance Methods</h3>
270
+ </header>
333
271
 
334
272
 
335
273
  <div id="method-i-detect_recursion" class="method-detail ">
@@ -337,7 +275,9 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
337
275
  <div class="method-heading">
338
276
  <span class="method-name">detect_recursion</span><span
339
277
  class="method-args">(thread)</span>
278
+
340
279
  <span class="method-click-advice">click to toggle source</span>
280
+
341
281
  </div>
342
282
 
343
283
 
@@ -345,6 +285,7 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
345
285
 
346
286
  <p>This method detect recursive calls in the call graph.</p>
347
287
 
288
+
348
289
 
349
290
 
350
291
  <div class="method-source-code" id="detect_recursion-source">
@@ -358,24 +299,24 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
358
299
  <span class="ruby-identifier">visitor</span>.<span class="ruby-identifier">visit</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">call_info</span>, <span class="ruby-identifier">event</span><span class="ruby-operator">|</span>
359
300
  <span class="ruby-keyword">case</span> <span class="ruby-identifier">event</span>
360
301
  <span class="ruby-keyword">when</span> <span class="ruby-value">:enter</span>
361
- <span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
362
- <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> = (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>)
302
+ <span class="ruby-keyword">if</span> (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
303
+ <span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">recursive</span> = <span class="ruby-keyword">true</span>
304
+ <span class="ruby-keyword">end</span>
363
305
  <span class="ruby-keyword">when</span> <span class="ruby-value">:exit</span>
364
- <span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
365
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
306
+ <span class="ruby-keyword">if</span> (<span class="ruby-identifier">visited_methods</span>[<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>] <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>) <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
366
307
  <span class="ruby-identifier">visited_methods</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">call_info</span>.<span class="ruby-identifier">target</span>)
367
308
  <span class="ruby-keyword">end</span>
368
309
  <span class="ruby-keyword">end</span>
369
310
  <span class="ruby-keyword">end</span>
370
311
  <span class="ruby-keyword">end</span></pre>
371
- </div><!-- detect_recursion-source -->
312
+ </div>
372
313
 
373
314
  </div>
374
315
 
375
316
 
376
317
 
377
318
 
378
- </div><!-- detect_recursion-method -->
319
+ </div>
379
320
 
380
321
 
381
322
  <div id="method-i-eliminate_methods-21" class="method-detail ">
@@ -383,7 +324,9 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
383
324
  <div class="method-heading">
384
325
  <span class="method-name">eliminate_methods!</span><span
385
326
  class="method-args">(matchers)</span>
327
+
386
328
  <span class="method-click-advice">click to toggle source</span>
329
+
387
330
  </div>
388
331
 
389
332
 
@@ -393,6 +336,7 @@ prof_profile(int argc, VALUE *argv, VALUE klass)
393
336
  callers. matchers can be a list of strings or regular expressions or the
394
337
  name of a file containing regexps.</p>
395
338
 
339
+
396
340
 
397
341
 
398
342
  <div class="method-source-code" id="eliminate_methods-21-source">
@@ -405,14 +349,14 @@ name of a file containing regexps.</p>
405
349
  <span class="ruby-keyword">end</span>
406
350
  <span class="ruby-identifier">eliminated</span>
407
351
  <span class="ruby-keyword">end</span></pre>
408
- </div><!-- eliminate_methods-21-source -->
352
+ </div>
409
353
 
410
354
  </div>
411
355
 
412
356
 
413
357
 
414
358
 
415
- </div><!-- eliminate_methods-21-method -->
359
+ </div>
416
360
 
417
361
 
418
362
  <div id="method-i-pause" class="method-detail ">
@@ -433,6 +377,7 @@ name of a file containing regexps.</p>
433
377
 
434
378
  <p>Pauses collecting profile data.</p>
435
379
 
380
+
436
381
 
437
382
 
438
383
  <div class="method-source-code" id="pause-source">
@@ -454,14 +399,14 @@ prof_pause(VALUE self)
454
399
 
455
400
  return self;
456
401
  }</pre>
457
- </div><!-- pause-source -->
402
+ </div>
458
403
 
459
404
  </div>
460
405
 
461
406
 
462
407
 
463
408
 
464
- </div><!-- pause-method -->
409
+ </div>
465
410
 
466
411
 
467
412
  <div id="method-i-paused-3F" class="method-detail ">
@@ -482,6 +427,7 @@ prof_pause(VALUE self)
482
427
 
483
428
  <p>Returns whether a profile is currently paused.</p>
484
429
 
430
+
485
431
 
486
432
 
487
433
  <div class="method-source-code" id="paused-3F-source">
@@ -491,14 +437,14 @@ prof_paused(VALUE self)
491
437
  prof_profile_t* profile = prof_get_profile(self);
492
438
  return profile-&gt;paused;
493
439
  }</pre>
494
- </div><!-- paused-3F-source -->
440
+ </div>
495
441
 
496
442
  </div>
497
443
 
498
444
 
499
445
 
500
446
 
501
- </div><!-- paused-3F-method -->
447
+ </div>
502
448
 
503
449
 
504
450
  <div id="method-i-post_process" class="method-detail ">
@@ -506,7 +452,9 @@ prof_paused(VALUE self)
506
452
  <div class="method-heading">
507
453
  <span class="method-name">post_process</span><span
508
454
  class="method-args">()</span>
455
+
509
456
  <span class="method-click-advice">click to toggle source</span>
457
+
510
458
  </div>
511
459
 
512
460
 
@@ -516,6 +464,7 @@ prof_paused(VALUE self)
516
464
  results are returned to the user. Thus it provides a hook to do any
517
465
  necessary post-processing on the call graph.</p>
518
466
 
467
+
519
468
 
520
469
 
521
470
  <div class="method-source-code" id="post_process-source">
@@ -525,14 +474,14 @@ necessary post-processing on the call graph.</p>
525
474
  <span class="ruby-identifier">detect_recursion</span>(<span class="ruby-identifier">thread</span>)
526
475
  <span class="ruby-keyword">end</span>
527
476
  <span class="ruby-keyword">end</span></pre>
528
- </div><!-- post_process-source -->
477
+ </div>
529
478
 
530
479
  </div>
531
480
 
532
481
 
533
482
 
534
483
 
535
- </div><!-- post_process-method -->
484
+ </div>
536
485
 
537
486
 
538
487
  <div id="method-i-resume" class="method-detail ">
@@ -553,6 +502,7 @@ necessary post-processing on the call graph.</p>
553
502
 
554
503
  <p>Resumes recording profile data.</p>
555
504
 
505
+
556
506
 
557
507
 
558
508
  <div class="method-source-code" id="resume-source">
@@ -574,14 +524,14 @@ prof_resume(VALUE self)
574
524
 
575
525
  return rb_block_given_p() ? rb_ensure(rb_yield, self, prof_pause, self) : self;
576
526
  }</pre>
577
- </div><!-- resume-source -->
527
+ </div>
578
528
 
579
529
  </div>
580
530
 
581
531
 
582
532
 
583
533
 
584
- </div><!-- resume-method -->
534
+ </div>
585
535
 
586
536
 
587
537
  <div id="method-i-running-3F" class="method-detail ">
@@ -602,6 +552,7 @@ prof_resume(VALUE self)
602
552
 
603
553
  <p>Returns whether a profile is currently running.</p>
604
554
 
555
+
605
556
 
606
557
 
607
558
  <div class="method-source-code" id="running-3F-source">
@@ -611,14 +562,14 @@ prof_running(VALUE self)
611
562
  prof_profile_t* profile = prof_get_profile(self);
612
563
  return profile-&gt;running;
613
564
  }</pre>
614
- </div><!-- running-3F-source -->
565
+ </div>
615
566
 
616
567
  </div>
617
568
 
618
569
 
619
570
 
620
571
 
621
- </div><!-- running-3F-method -->
572
+ </div>
622
573
 
623
574
 
624
575
  <div id="method-i-start" class="method-detail ">
@@ -639,6 +590,7 @@ prof_running(VALUE self)
639
590
 
640
591
  <p>Starts recording profile data.</p>
641
592
 
593
+
642
594
 
643
595
 
644
596
  <div class="method-source-code" id="start-source">
@@ -648,19 +600,12 @@ prof_start(VALUE self)
648
600
  char* trace_file_name;
649
601
 
650
602
  prof_profile_t* profile = prof_get_profile(self);
651
-
603
+
652
604
  if (profile-&gt;running == Qtrue)
653
605
  {
654
606
  rb_raise(rb_eRuntimeError, &quot;RubyProf.start was already called&quot;);
655
607
  }
656
608
 
657
- #ifndef RUBY_VM
658
- if (pCurrentProfile != NULL)
659
- {
660
- rb_raise(rb_eRuntimeError, &quot;Only one profile can run at a time on Ruby 1.8.*&quot;);
661
- }
662
- #endif
663
-
664
609
  profile-&gt;running = Qtrue;
665
610
  profile-&gt;paused = Qfalse;
666
611
  profile-&gt;last_thread_data = NULL;
@@ -687,14 +632,14 @@ prof_start(VALUE self)
687
632
  prof_install_hook(self);
688
633
  return self;
689
634
  }</pre>
690
- </div><!-- start-source -->
635
+ </div>
691
636
 
692
637
  </div>
693
638
 
694
639
 
695
640
 
696
641
 
697
- </div><!-- start-method -->
642
+ </div>
698
643
 
699
644
 
700
645
  <div id="method-i-stop" class="method-detail ">
@@ -715,6 +660,7 @@ prof_start(VALUE self)
715
660
 
716
661
  <p>Stops collecting profile data.</p>
717
662
 
663
+
718
664
 
719
665
 
720
666
  <div class="method-source-code" id="stop-source">
@@ -756,14 +702,14 @@ prof_stop(VALUE self)
756
702
 
757
703
  return self;
758
704
  }</pre>
759
- </div><!-- stop-source -->
705
+ </div>
760
706
 
761
707
  </div>
762
708
 
763
709
 
764
710
 
765
711
 
766
- </div><!-- stop-method -->
712
+ </div>
767
713
 
768
714
 
769
715
  <div id="method-i-threads" class="method-detail ">
@@ -785,6 +731,7 @@ prof_stop(VALUE self)
785
731
  <p>Returns an array of <a href="Thread.html">RubyProf::Thread</a> instances
786
732
  that were executed while the the program was being run.</p>
787
733
 
734
+
788
735
 
789
736
 
790
737
  <div class="method-source-code" id="threads-source">
@@ -796,26 +743,25 @@ prof_threads(VALUE self)
796
743
  st_foreach(profile-&gt;threads_tbl, collect_threads, result);
797
744
  return result;
798
745
  }</pre>
799
- </div><!-- threads-source -->
746
+ </div>
800
747
 
801
748
  </div>
802
749
 
803
750
 
804
751
 
805
752
 
806
- </div><!-- threads-method -->
753
+ </div>
807
754
 
808
755
 
809
- </section><!-- public-instance-method-details -->
756
+ </section>
810
757
 
811
- </section><!-- 5Buntitled-5D -->
812
-
813
- </div><!-- documentation -->
758
+ </section>
759
+ </main>
814
760
 
815
761
 
816
- <footer id="validator-badges">
817
- <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
818
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.1.
819
- <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
762
+ <footer id="validator-badges" role="contentinfo">
763
+ <p><a href="http://validator.w3.org/check/referer">Validate</a>
764
+ <p>Generated by <a href="http://rdoc.rubyforge.org">RDoc</a> 4.1.0.
765
+ <p>Based on <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
820
766
  </footer>
821
767