ruby-prof 0.13.1 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
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