ruby-prof 0.17.0 → 0.18.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 (185) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +500 -482
  3. data/LICENSE +24 -24
  4. data/README.rdoc +487 -485
  5. data/Rakefile +113 -113
  6. data/bin/ruby-prof +345 -345
  7. data/bin/ruby-prof-check-trace +45 -45
  8. data/examples/flat.txt +50 -50
  9. data/examples/graph.dot +84 -84
  10. data/examples/graph.html +823 -823
  11. data/examples/graph.txt +139 -139
  12. data/examples/multi.flat.txt +23 -23
  13. data/examples/multi.graph.html +760 -760
  14. data/examples/multi.grind.dat +114 -114
  15. data/examples/multi.stack.html +547 -547
  16. data/examples/stack.html +547 -547
  17. data/ext/ruby_prof/extconf.rb +68 -68
  18. data/ext/ruby_prof/rp_call_info.c +425 -425
  19. data/ext/ruby_prof/rp_call_info.h +53 -53
  20. data/ext/ruby_prof/rp_measure.c +40 -40
  21. data/ext/ruby_prof/rp_measure.h +45 -45
  22. data/ext/ruby_prof/rp_measure_allocations.c +76 -76
  23. data/ext/ruby_prof/rp_measure_cpu_time.c +136 -136
  24. data/ext/ruby_prof/rp_measure_gc_runs.c +73 -73
  25. data/ext/ruby_prof/rp_measure_gc_time.c +60 -60
  26. data/ext/ruby_prof/rp_measure_memory.c +77 -77
  27. data/ext/ruby_prof/rp_measure_process_time.c +71 -71
  28. data/ext/ruby_prof/rp_measure_wall_time.c +45 -45
  29. data/ext/ruby_prof/rp_method.c +630 -636
  30. data/ext/ruby_prof/rp_method.h +75 -75
  31. data/ext/ruby_prof/rp_stack.c +173 -173
  32. data/ext/ruby_prof/rp_stack.h +63 -63
  33. data/ext/ruby_prof/rp_thread.c +277 -276
  34. data/ext/ruby_prof/rp_thread.h +27 -27
  35. data/ext/ruby_prof/ruby_prof.c +794 -774
  36. data/ext/ruby_prof/ruby_prof.h +60 -59
  37. data/ext/ruby_prof/vc/ruby_prof.sln +20 -21
  38. data/ext/ruby_prof/vc/{ruby_prof_20.vcxproj → ruby_prof.vcxproj} +31 -0
  39. data/lib/ruby-prof.rb +68 -68
  40. data/lib/ruby-prof/aggregate_call_info.rb +76 -76
  41. data/lib/ruby-prof/assets/call_stack_printer.css.html +116 -116
  42. data/lib/ruby-prof/assets/call_stack_printer.js.html +384 -384
  43. data/lib/ruby-prof/call_info.rb +115 -115
  44. data/lib/ruby-prof/call_info_visitor.rb +40 -40
  45. data/lib/ruby-prof/compatibility.rb +179 -178
  46. data/lib/ruby-prof/method_info.rb +121 -121
  47. data/lib/ruby-prof/printers/abstract_printer.rb +104 -103
  48. data/lib/ruby-prof/printers/call_info_printer.rb +41 -41
  49. data/lib/ruby-prof/printers/call_stack_printer.rb +265 -265
  50. data/lib/ruby-prof/printers/call_tree_printer.rb +143 -143
  51. data/lib/ruby-prof/printers/dot_printer.rb +132 -132
  52. data/lib/ruby-prof/printers/flat_printer.rb +70 -70
  53. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +83 -83
  54. data/lib/ruby-prof/printers/graph_html_printer.rb +249 -249
  55. data/lib/ruby-prof/printers/graph_printer.rb +116 -116
  56. data/lib/ruby-prof/printers/multi_printer.rb +84 -84
  57. data/lib/ruby-prof/profile.rb +26 -26
  58. data/lib/ruby-prof/profile/exclude_common_methods.rb +207 -201
  59. data/lib/ruby-prof/profile/legacy_method_elimination.rb +50 -49
  60. data/lib/ruby-prof/rack.rb +174 -174
  61. data/lib/ruby-prof/task.rb +147 -147
  62. data/lib/ruby-prof/thread.rb +35 -35
  63. data/lib/ruby-prof/version.rb +3 -3
  64. data/lib/unprof.rb +10 -10
  65. data/ruby-prof.gemspec +58 -58
  66. data/test/abstract_printer_test.rb +53 -0
  67. data/test/aggregate_test.rb +136 -136
  68. data/test/basic_test.rb +128 -128
  69. data/test/block_test.rb +74 -74
  70. data/test/call_info_test.rb +78 -78
  71. data/test/call_info_visitor_test.rb +31 -31
  72. data/test/duplicate_names_test.rb +32 -32
  73. data/test/dynamic_method_test.rb +55 -55
  74. data/test/enumerable_test.rb +21 -21
  75. data/test/exceptions_test.rb +24 -16
  76. data/test/exclude_methods_test.rb +146 -146
  77. data/test/exclude_threads_test.rb +53 -53
  78. data/test/fiber_test.rb +79 -79
  79. data/test/issue137_test.rb +63 -63
  80. data/test/line_number_test.rb +80 -80
  81. data/test/measure_allocations_test.rb +26 -26
  82. data/test/measure_cpu_time_test.rb +212 -213
  83. data/test/measure_gc_runs_test.rb +32 -32
  84. data/test/measure_gc_time_test.rb +36 -36
  85. data/test/measure_memory_test.rb +33 -33
  86. data/test/measure_process_time_test.rb +61 -63
  87. data/test/measure_wall_time_test.rb +255 -255
  88. data/test/method_elimination_test.rb +84 -84
  89. data/test/module_test.rb +45 -45
  90. data/test/multi_printer_test.rb +104 -104
  91. data/test/no_method_class_test.rb +15 -15
  92. data/test/pause_resume_test.rb +166 -166
  93. data/test/prime.rb +54 -54
  94. data/test/printers_test.rb +275 -275
  95. data/test/printing_recursive_graph_test.rb +127 -127
  96. data/test/rack_test.rb +157 -157
  97. data/test/recursive_test.rb +215 -215
  98. data/test/singleton_test.rb +38 -38
  99. data/test/stack_printer_test.rb +77 -78
  100. data/test/stack_test.rb +138 -138
  101. data/test/start_stop_test.rb +112 -112
  102. data/test/test_helper.rb +267 -275
  103. data/test/thread_test.rb +187 -187
  104. data/test/unique_call_path_test.rb +202 -202
  105. data/test/yarv_test.rb +55 -55
  106. metadata +17 -96
  107. data/doc/LICENSE.html +0 -115
  108. data/doc/README_rdoc.html +0 -637
  109. data/doc/Rack.html +0 -96
  110. data/doc/Rack/RubyProf.html +0 -233
  111. data/doc/Rack/RubyProf/RackProfiler.html +0 -343
  112. data/doc/RubyProf.html +0 -974
  113. data/doc/RubyProf/AbstractPrinter.html +0 -625
  114. data/doc/RubyProf/AggregateCallInfo.html +0 -552
  115. data/doc/RubyProf/CallInfo.html +0 -579
  116. data/doc/RubyProf/CallInfoPrinter.html +0 -121
  117. data/doc/RubyProf/CallInfoVisitor.html +0 -199
  118. data/doc/RubyProf/CallStackPrinter.html +0 -1127
  119. data/doc/RubyProf/CallTreePrinter.html +0 -725
  120. data/doc/RubyProf/Cmd.html +0 -637
  121. data/doc/RubyProf/DeprecationWarnings.html +0 -148
  122. data/doc/RubyProf/DotPrinter.html +0 -258
  123. data/doc/RubyProf/FlatPrinter.html +0 -164
  124. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +0 -210
  125. data/doc/RubyProf/GraphHtmlPrinter.html +0 -558
  126. data/doc/RubyProf/GraphPrinter.html +0 -140
  127. data/doc/RubyProf/MethodInfo.html +0 -676
  128. data/doc/RubyProf/MultiPrinter.html +0 -574
  129. data/doc/RubyProf/Profile.html +0 -908
  130. data/doc/RubyProf/Profile/ExcludeCommonMethods.html +0 -411
  131. data/doc/RubyProf/Profile/LegacyMethodElimination.html +0 -158
  132. data/doc/RubyProf/ProfileTask.html +0 -491
  133. data/doc/RubyProf/Thread.html +0 -275
  134. data/doc/created.rid +0 -33
  135. data/doc/css/fonts.css +0 -167
  136. data/doc/css/rdoc.css +0 -590
  137. data/doc/examples/flat_txt.html +0 -139
  138. data/doc/examples/graph_html.html +0 -910
  139. data/doc/examples/graph_txt.html +0 -248
  140. data/doc/fonts/Lato-Light.ttf +0 -0
  141. data/doc/fonts/Lato-LightItalic.ttf +0 -0
  142. data/doc/fonts/Lato-Regular.ttf +0 -0
  143. data/doc/fonts/Lato-RegularItalic.ttf +0 -0
  144. data/doc/fonts/SourceCodePro-Bold.ttf +0 -0
  145. data/doc/fonts/SourceCodePro-Regular.ttf +0 -0
  146. data/doc/images/add.png +0 -0
  147. data/doc/images/arrow_up.png +0 -0
  148. data/doc/images/brick.png +0 -0
  149. data/doc/images/brick_link.png +0 -0
  150. data/doc/images/bug.png +0 -0
  151. data/doc/images/bullet_black.png +0 -0
  152. data/doc/images/bullet_toggle_minus.png +0 -0
  153. data/doc/images/bullet_toggle_plus.png +0 -0
  154. data/doc/images/date.png +0 -0
  155. data/doc/images/delete.png +0 -0
  156. data/doc/images/find.png +0 -0
  157. data/doc/images/loadingAnimation.gif +0 -0
  158. data/doc/images/macFFBgHack.png +0 -0
  159. data/doc/images/package.png +0 -0
  160. data/doc/images/page_green.png +0 -0
  161. data/doc/images/page_white_text.png +0 -0
  162. data/doc/images/page_white_width.png +0 -0
  163. data/doc/images/plugin.png +0 -0
  164. data/doc/images/ruby.png +0 -0
  165. data/doc/images/tag_blue.png +0 -0
  166. data/doc/images/tag_green.png +0 -0
  167. data/doc/images/transparent.png +0 -0
  168. data/doc/images/wrench.png +0 -0
  169. data/doc/images/wrench_orange.png +0 -0
  170. data/doc/images/zoom.png +0 -0
  171. data/doc/index.html +0 -666
  172. data/doc/js/darkfish.js +0 -161
  173. data/doc/js/jquery.js +0 -4
  174. data/doc/js/navigation.js +0 -142
  175. data/doc/js/navigation.js.gz +0 -0
  176. data/doc/js/search.js +0 -109
  177. data/doc/js/search_index.js +0 -1
  178. data/doc/js/search_index.js.gz +0 -0
  179. data/doc/js/searcher.js +0 -229
  180. data/doc/js/searcher.js.gz +0 -0
  181. data/doc/table_of_contents.html +0 -1052
  182. data/examples/cachegrind.out.1 +0 -114
  183. data/examples/cachegrind.out.1.32313213 +0 -114
  184. data/ext/ruby_prof/vc/ruby_prof_18.vcxproj +0 -108
  185. data/ext/ruby_prof/vc/ruby_prof_19.vcxproj +0 -110
@@ -1,59 +1,60 @@
1
- /* Copyright (C) 2005-2013 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
2
- Please see the LICENSE file for copyright and distribution information */
3
-
4
- #ifndef __RUBY_PROF_H__
5
- #define __RUBY_PROF_H__
6
-
7
- #include <ruby.h>
8
- #include <stdio.h>
9
-
10
- #if RUBY_PROF_RUBY_VERSION == 10806
11
- # error 1.8.6 is not supported. Please upgrade to 1.9.3 or higher.
12
- #endif
13
-
14
- #if RUBY_PROF_RUBY_VERSION == 10807
15
- # error 1.8.7 is not supported. Please upgrade to 1.9.3 or higher.
16
- #endif
17
-
18
- #if RUBY_PROF_RUBY_VERSION == 10900
19
- # error 1.9.0 is not supported. Please upgrade to 1.9.3 or higher.
20
- #endif
21
-
22
- #if RUBY_PROF_RUBY_VERSION == 10901
23
- # error 1.9.1 is not supported. Please upgrade to 1.9.3 or higher.
24
- #endif
25
-
26
- #if RUBY_PROF_RUBY_VERSION == 10902
27
- # error 1.9.2 is not supported. Please upgrade to 1.9.3 or higher.
28
- #endif
29
-
30
- #include "rp_measure.h"
31
- #include "rp_method.h"
32
- #include "rp_call_info.h"
33
- #include "rp_stack.h"
34
- #include "rp_thread.h"
35
-
36
- extern VALUE mProf;
37
- extern VALUE cProfile;
38
-
39
- void method_key(prof_method_key_t* key, VALUE klass, ID mid);
40
-
41
- typedef struct
42
- {
43
- VALUE running;
44
- VALUE paused;
45
-
46
- prof_measurer_t* measurer;
47
- VALUE threads;
48
-
49
- st_table* threads_tbl;
50
- st_table* exclude_threads_tbl;
51
- st_table* include_threads_tbl;
52
- st_table* exclude_methods_tbl;
53
- thread_data_t* last_thread_data;
54
- double measurement_at_pause_resume;
55
- int merge_fibers;
56
- } prof_profile_t;
57
-
58
-
59
- #endif //__RUBY_PROF_H__
1
+ /* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
2
+ Please see the LICENSE file for copyright and distribution information */
3
+
4
+ #ifndef __RUBY_PROF_H__
5
+ #define __RUBY_PROF_H__
6
+
7
+ #include <ruby.h>
8
+ #include <stdio.h>
9
+
10
+ #if RUBY_PROF_RUBY_VERSION == 10806
11
+ # error 1.8.6 is not supported. Please upgrade to 1.9.3 or higher.
12
+ #endif
13
+
14
+ #if RUBY_PROF_RUBY_VERSION == 10807
15
+ # error 1.8.7 is not supported. Please upgrade to 1.9.3 or higher.
16
+ #endif
17
+
18
+ #if RUBY_PROF_RUBY_VERSION == 10900
19
+ # error 1.9.0 is not supported. Please upgrade to 1.9.3 or higher.
20
+ #endif
21
+
22
+ #if RUBY_PROF_RUBY_VERSION == 10901
23
+ # error 1.9.1 is not supported. Please upgrade to 1.9.3 or higher.
24
+ #endif
25
+
26
+ #if RUBY_PROF_RUBY_VERSION == 10902
27
+ # error 1.9.2 is not supported. Please upgrade to 1.9.3 or higher.
28
+ #endif
29
+
30
+ #include "rp_measure.h"
31
+ #include "rp_method.h"
32
+ #include "rp_call_info.h"
33
+ #include "rp_stack.h"
34
+ #include "rp_thread.h"
35
+
36
+ extern VALUE mProf;
37
+ extern VALUE cProfile;
38
+
39
+ void method_key(prof_method_key_t* key, VALUE klass, ID mid);
40
+
41
+ typedef struct
42
+ {
43
+ VALUE running;
44
+ VALUE paused;
45
+
46
+ prof_measurer_t* measurer;
47
+ VALUE threads;
48
+
49
+ st_table* threads_tbl;
50
+ st_table* exclude_threads_tbl;
51
+ st_table* include_threads_tbl;
52
+ st_table* exclude_methods_tbl;
53
+ thread_data_t* last_thread_data;
54
+ double measurement_at_pause_resume;
55
+ int merge_fibers;
56
+ int allow_exceptions;
57
+ } prof_profile_t;
58
+
59
+
60
+ #endif //__RUBY_PROF_H__
@@ -1,32 +1,31 @@
1
1
  
2
- Microsoft Visual Studio Solution File, Format Version 11.00
3
- # Visual Studio 2010
4
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof_18", "ruby_prof_18.vcxproj", "{7789FC23-D053-4733-9ED1-D6CE099E1237}"
5
- EndProject
6
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof_19", "ruby_prof_19.vcxproj", "{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}"
7
- EndProject
8
- Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof_20", "ruby_prof_20.vcxproj", "{6B4978F4-3B5F-4D38-81A8-069EC28CC069}"
2
+ Microsoft Visual Studio Solution File, Format Version 12.00
3
+ # Visual Studio Version 16
4
+ VisualStudioVersion = 16.0.28803.452
5
+ MinimumVisualStudioVersion = 10.0.40219.1
6
+ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof", "ruby_prof.vcxproj", "{6B4978F4-3B5F-4D38-81A8-069EC28CC069}"
9
7
  EndProject
10
8
  Global
11
9
  GlobalSection(SolutionConfigurationPlatforms) = preSolution
12
- Debug|Win32 = Debug|Win32
13
- Release|Win32 = Release|Win32
10
+ Debug|x64 = Debug|x64
11
+ Debug|x86 = Debug|x86
12
+ Release|x64 = Release|x64
13
+ Release|x86 = Release|x86
14
14
  EndGlobalSection
15
15
  GlobalSection(ProjectConfigurationPlatforms) = postSolution
16
- {7789FC23-D053-4733-9ED1-D6CE099E1237}.Debug|Win32.ActiveCfg = Debug|Win32
17
- {7789FC23-D053-4733-9ED1-D6CE099E1237}.Debug|Win32.Build.0 = Debug|Win32
18
- {7789FC23-D053-4733-9ED1-D6CE099E1237}.Release|Win32.ActiveCfg = Release|Win32
19
- {7789FC23-D053-4733-9ED1-D6CE099E1237}.Release|Win32.Build.0 = Release|Win32
20
- {5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Debug|Win32.ActiveCfg = Debug|Win32
21
- {5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Debug|Win32.Build.0 = Debug|Win32
22
- {5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Release|Win32.ActiveCfg = Release|Win32
23
- {5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Release|Win32.Build.0 = Release|Win32
24
- {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|Win32.ActiveCfg = Debug|Win32
25
- {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|Win32.Build.0 = Debug|Win32
26
- {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|Win32.ActiveCfg = Release|Win32
27
- {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|Win32.Build.0 = Release|Win32
16
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|x64.ActiveCfg = Debug|x64
17
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|x64.Build.0 = Debug|x64
18
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|x86.ActiveCfg = Debug|Win32
19
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Debug|x86.Build.0 = Debug|Win32
20
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|x64.ActiveCfg = Release|x64
21
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|x64.Build.0 = Release|x64
22
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|x86.ActiveCfg = Release|Win32
23
+ {6B4978F4-3B5F-4D38-81A8-069EC28CC069}.Release|x86.Build.0 = Release|Win32
28
24
  EndGlobalSection
29
25
  GlobalSection(SolutionProperties) = preSolution
30
26
  HideSolutionNode = FALSE
31
27
  EndGlobalSection
28
+ GlobalSection(ExtensibilityGlobals) = postSolution
29
+ SolutionGuid = {9E7746F2-2467-4738-9746-4472B5CBF1DA}
30
+ EndGlobalSection
32
31
  EndGlobal
@@ -5,15 +5,24 @@
5
5
  <Configuration>Debug</Configuration>
6
6
  <Platform>Win32</Platform>
7
7
  </ProjectConfiguration>
8
+ <ProjectConfiguration Include="Debug|x64">
9
+ <Configuration>Debug</Configuration>
10
+ <Platform>x64</Platform>
11
+ </ProjectConfiguration>
8
12
  <ProjectConfiguration Include="Release|Win32">
9
13
  <Configuration>Release</Configuration>
10
14
  <Platform>Win32</Platform>
11
15
  </ProjectConfiguration>
16
+ <ProjectConfiguration Include="Release|x64">
17
+ <Configuration>Release</Configuration>
18
+ <Platform>x64</Platform>
19
+ </ProjectConfiguration>
12
20
  </ItemGroup>
13
21
  <PropertyGroup Label="Globals">
14
22
  <ProjectGuid>{6B4978F4-3B5F-4D38-81A8-069EC28CC069}</ProjectGuid>
15
23
  <Keyword>Win32Proj</Keyword>
16
24
  <RootNamespace>ruby_prof</RootNamespace>
25
+ <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
17
26
  </PropertyGroup>
18
27
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
19
28
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
@@ -27,6 +36,13 @@
27
36
  <WholeProgramOptimization>true</WholeProgramOptimization>
28
37
  <CharacterSet>Unicode</CharacterSet>
29
38
  </PropertyGroup>
39
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
40
+ <PlatformToolset>v142</PlatformToolset>
41
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
42
+ </PropertyGroup>
43
+ <PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
44
+ <PlatformToolset>v142</PlatformToolset>
45
+ </PropertyGroup>
30
46
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
31
47
  <ImportGroup Label="ExtensionSettings">
32
48
  </ImportGroup>
@@ -46,6 +62,10 @@
46
62
  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
47
63
  <LinkIncremental>false</LinkIncremental>
48
64
  </PropertyGroup>
65
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
66
+ <TargetExt>.so</TargetExt>
67
+ <OutDir>..</OutDir>
68
+ </PropertyGroup>
49
69
  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
50
70
  <ClCompile>
51
71
  <PrecompiledHeader>
@@ -80,6 +100,17 @@
80
100
  <OptimizeReferences>true</OptimizeReferences>
81
101
  </Link>
82
102
  </ItemDefinitionGroup>
103
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
104
+ <ClCompile>
105
+ <AdditionalIncludeDirectories>C:\msys64\usr\local\ruby263vc\include\ruby-2.6.0\x64-mswin64_140;C:\msys64\usr\local\ruby263vc\include\ruby-2.6.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
106
+ <Optimization>Disabled</Optimization>
107
+ </ClCompile>
108
+ <Link>
109
+ <AdditionalLibraryDirectories>C:\msys64\usr\local\ruby263vc\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
110
+ <AdditionalDependencies>x64-vcruntime140-ruby260.lib;%(AdditionalDependencies)</AdditionalDependencies>
111
+ <ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
112
+ </Link>
113
+ </ItemDefinitionGroup>
83
114
  <ItemGroup>
84
115
  <ClInclude Include="..\rp_call_info.h" />
85
116
  <ClInclude Include="..\rp_measure.h" />
@@ -1,68 +1,68 @@
1
- # encoding: utf-8
2
-
3
- # Load the C-based binding.
4
- begin
5
- RUBY_VERSION =~ /(\d+\.\d+\.\d+)/
6
- require "#{$1}/ruby_prof.so"
7
- rescue LoadError
8
- require "ruby_prof.so"
9
- end
10
-
11
- module RubyProf
12
- module DeprecationWarnings
13
- def deprecation_warning(feature, recommendation = nil)
14
- $stderr.puts "DEPRECATION WARNING: #{feature}"
15
- $stderr.puts recommendation unless recommendation.nil?
16
- end
17
- end
18
- extend DeprecationWarnings
19
- end
20
-
21
- require 'ruby-prof/version'
22
- require 'ruby-prof/call_info'
23
- require 'ruby-prof/compatibility'
24
- require 'ruby-prof/method_info'
25
- require 'ruby-prof/profile'
26
- require 'ruby-prof/rack'
27
- require 'ruby-prof/thread'
28
-
29
- module RubyProf
30
- autoload :AggregateCallInfo, 'ruby-prof/aggregate_call_info'
31
- autoload :CallInfoVisitor, 'ruby-prof/call_info_visitor'
32
-
33
- autoload :AbstractPrinter, 'ruby-prof/printers/abstract_printer'
34
- autoload :CallInfoPrinter, 'ruby-prof/printers/call_info_printer'
35
- autoload :CallStackPrinter, 'ruby-prof/printers/call_stack_printer'
36
- autoload :CallTreePrinter, 'ruby-prof/printers/call_tree_printer'
37
- autoload :DotPrinter, 'ruby-prof/printers/dot_printer'
38
- autoload :FlatPrinter, 'ruby-prof/printers/flat_printer'
39
- autoload :FlatPrinterWithLineNumbers, 'ruby-prof/printers/flat_printer_with_line_numbers'
40
- autoload :GraphHtmlPrinter, 'ruby-prof/printers/graph_html_printer'
41
- autoload :GraphPrinter, 'ruby-prof/printers/graph_printer'
42
- autoload :MultiPrinter, 'ruby-prof/printers/multi_printer'
43
-
44
- # Checks if the user specified the clock mode via
45
- # the RUBY_PROF_MEASURE_MODE environment variable
46
- def self.figure_measure_mode
47
- case ENV["RUBY_PROF_MEASURE_MODE"]
48
- when "wall", "wall_time"
49
- RubyProf.measure_mode = RubyProf::WALL_TIME
50
- when "cpu", "cpu_time"
51
- RubyProf.measure_mode = RubyProf::CPU_TIME
52
- when "allocations"
53
- RubyProf.measure_mode = RubyProf::ALLOCATIONS
54
- when "memory"
55
- RubyProf.measure_mode = RubyProf::MEMORY
56
- when "process", "process_time"
57
- RubyProf.measure_mode = RubyProf::PROCESS_TIME
58
- when "gc_time"
59
- RubyProf.measure_mode = RubyProf::GC_TIME
60
- when "gc_runs"
61
- RubyProf.measure_mode = RubyProf::GC_RUNS
62
- else
63
- # the default is defined in the measure_mode reader
64
- end
65
- end
66
- end
67
-
68
- RubyProf::figure_measure_mode
1
+ # encoding: utf-8
2
+
3
+ # Load the C-based binding.
4
+ begin
5
+ RUBY_VERSION =~ /(\d+\.\d+\.\d+)/
6
+ require "#{$1}/ruby_prof.so"
7
+ rescue LoadError
8
+ require "ruby_prof.so"
9
+ end
10
+
11
+ module RubyProf
12
+ module DeprecationWarnings
13
+ def deprecation_warning(feature, recommendation = nil)
14
+ $stderr.puts "DEPRECATION WARNING: #{feature}"
15
+ $stderr.puts recommendation unless recommendation.nil?
16
+ end
17
+ end
18
+ extend DeprecationWarnings
19
+ end
20
+
21
+ require 'ruby-prof/version'
22
+ require 'ruby-prof/call_info'
23
+ require 'ruby-prof/compatibility'
24
+ require 'ruby-prof/method_info'
25
+ require 'ruby-prof/profile'
26
+ require 'ruby-prof/rack'
27
+ require 'ruby-prof/thread'
28
+
29
+ module RubyProf
30
+ autoload :AggregateCallInfo, 'ruby-prof/aggregate_call_info'
31
+ autoload :CallInfoVisitor, 'ruby-prof/call_info_visitor'
32
+
33
+ autoload :AbstractPrinter, 'ruby-prof/printers/abstract_printer'
34
+ autoload :CallInfoPrinter, 'ruby-prof/printers/call_info_printer'
35
+ autoload :CallStackPrinter, 'ruby-prof/printers/call_stack_printer'
36
+ autoload :CallTreePrinter, 'ruby-prof/printers/call_tree_printer'
37
+ autoload :DotPrinter, 'ruby-prof/printers/dot_printer'
38
+ autoload :FlatPrinter, 'ruby-prof/printers/flat_printer'
39
+ autoload :FlatPrinterWithLineNumbers, 'ruby-prof/printers/flat_printer_with_line_numbers'
40
+ autoload :GraphHtmlPrinter, 'ruby-prof/printers/graph_html_printer'
41
+ autoload :GraphPrinter, 'ruby-prof/printers/graph_printer'
42
+ autoload :MultiPrinter, 'ruby-prof/printers/multi_printer'
43
+
44
+ # Checks if the user specified the clock mode via
45
+ # the RUBY_PROF_MEASURE_MODE environment variable
46
+ def self.figure_measure_mode
47
+ case ENV["RUBY_PROF_MEASURE_MODE"]
48
+ when "wall", "wall_time"
49
+ RubyProf.measure_mode = RubyProf::WALL_TIME
50
+ when "cpu", "cpu_time"
51
+ RubyProf.measure_mode = RubyProf::CPU_TIME
52
+ when "allocations"
53
+ RubyProf.measure_mode = RubyProf::ALLOCATIONS
54
+ when "memory"
55
+ RubyProf.measure_mode = RubyProf::MEMORY
56
+ when "process", "process_time"
57
+ RubyProf.measure_mode = RubyProf::PROCESS_TIME
58
+ when "gc_time"
59
+ RubyProf.measure_mode = RubyProf::GC_TIME
60
+ when "gc_runs"
61
+ RubyProf.measure_mode = RubyProf::GC_RUNS
62
+ else
63
+ # the default is defined in the measure_mode reader
64
+ end
65
+ end
66
+ end
67
+
68
+ RubyProf::figure_measure_mode
@@ -1,76 +1,76 @@
1
- # encoding: utf-8
2
-
3
- module RubyProf
4
- class AggregateCallInfo
5
- attr_reader :call_infos, :method_info
6
-
7
- def initialize(call_infos, method_info)
8
- if call_infos.length == 0
9
- raise(ArgumentError, "Must specify at least one call info.")
10
- end
11
- @call_infos = call_infos
12
- @method_info = method_info
13
- end
14
-
15
- def target
16
- call_infos.first.target
17
- end
18
-
19
- def parent
20
- call_infos.first.parent
21
- end
22
-
23
- def line
24
- call_infos.first.line
25
- end
26
-
27
- def children
28
- call_infos.inject(Array.new) do |result, call_info|
29
- result.concat(call_info.children)
30
- end
31
- end
32
-
33
- def total_time
34
- aggregate_roots(:total_time)
35
- end
36
-
37
- def self_time
38
- aggregate_roots(:self_time)
39
- end
40
-
41
- def wait_time
42
- aggregate_roots(:wait_time)
43
- end
44
-
45
- def children_time
46
- aggregate_roots(:children_time)
47
- end
48
-
49
- def called
50
- aggregate_all(:called)
51
- end
52
-
53
- def to_s
54
- "#{call_infos.first.target.full_name}"
55
- end
56
-
57
- private
58
-
59
- # return all call_infos which are not (grand) children of any other node in the list of given call_infos
60
- def roots
61
- @roots ||= method_info.recursive? ? CallInfo.roots_of(call_infos) : call_infos
62
- end
63
-
64
- def aggregate_all(method_name)
65
- call_infos.inject(0) do |sum, call_info|
66
- sum + call_info.send(method_name)
67
- end
68
- end
69
-
70
- def aggregate_roots(method_name)
71
- roots.inject(0) do |sum, call_info|
72
- sum + call_info.send(method_name)
73
- end
74
- end
75
- end
76
- end
1
+ # encoding: utf-8
2
+
3
+ module RubyProf
4
+ class AggregateCallInfo
5
+ attr_reader :call_infos, :method_info
6
+
7
+ def initialize(call_infos, method_info)
8
+ if call_infos.length == 0
9
+ raise(ArgumentError, "Must specify at least one call info.")
10
+ end
11
+ @call_infos = call_infos
12
+ @method_info = method_info
13
+ end
14
+
15
+ def target
16
+ call_infos.first.target
17
+ end
18
+
19
+ def parent
20
+ call_infos.first.parent
21
+ end
22
+
23
+ def line
24
+ call_infos.first.line
25
+ end
26
+
27
+ def children
28
+ call_infos.inject(Array.new) do |result, call_info|
29
+ result.concat(call_info.children)
30
+ end
31
+ end
32
+
33
+ def total_time
34
+ aggregate_roots(:total_time)
35
+ end
36
+
37
+ def self_time
38
+ aggregate_roots(:self_time)
39
+ end
40
+
41
+ def wait_time
42
+ aggregate_roots(:wait_time)
43
+ end
44
+
45
+ def children_time
46
+ aggregate_roots(:children_time)
47
+ end
48
+
49
+ def called
50
+ aggregate_all(:called)
51
+ end
52
+
53
+ def to_s
54
+ "#{call_infos.first.target.full_name}"
55
+ end
56
+
57
+ private
58
+
59
+ # return all call_infos which are not (grand) children of any other node in the list of given call_infos
60
+ def roots
61
+ @roots ||= method_info.recursive? ? CallInfo.roots_of(call_infos) : call_infos
62
+ end
63
+
64
+ def aggregate_all(method_name)
65
+ call_infos.inject(0) do |sum, call_info|
66
+ sum + call_info.send(method_name)
67
+ end
68
+ end
69
+
70
+ def aggregate_roots(method_name)
71
+ roots.inject(0) do |sum, call_info|
72
+ sum + call_info.send(method_name)
73
+ end
74
+ end
75
+ end
76
+ end