ruby-prof 0.13.1 → 1.4.2

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 (209) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGES +579 -371
  3. data/LICENSE +24 -23
  4. data/README.rdoc +5 -433
  5. data/Rakefile +98 -110
  6. data/bin/ruby-prof +328 -329
  7. data/bin/ruby-prof-check-trace +45 -0
  8. data/ext/ruby_prof/extconf.rb +16 -59
  9. data/ext/ruby_prof/rp_aggregate_call_tree.c +59 -0
  10. data/ext/ruby_prof/rp_aggregate_call_tree.h +13 -0
  11. data/ext/ruby_prof/rp_allocation.c +287 -0
  12. data/ext/ruby_prof/rp_allocation.h +31 -0
  13. data/ext/ruby_prof/rp_call_tree.c +369 -0
  14. data/ext/ruby_prof/rp_call_tree.h +43 -0
  15. data/ext/ruby_prof/rp_call_trees.c +288 -0
  16. data/ext/ruby_prof/rp_call_trees.h +28 -0
  17. data/ext/ruby_prof/rp_measure_allocations.c +50 -65
  18. data/ext/ruby_prof/rp_measure_memory.c +42 -73
  19. data/ext/ruby_prof/rp_measure_process_time.c +65 -71
  20. data/ext/ruby_prof/rp_measure_wall_time.c +64 -42
  21. data/ext/ruby_prof/rp_measurement.c +237 -0
  22. data/ext/ruby_prof/rp_measurement.h +50 -0
  23. data/ext/ruby_prof/rp_method.c +491 -420
  24. data/ext/ruby_prof/rp_method.h +62 -57
  25. data/ext/ruby_prof/rp_profile.c +908 -0
  26. data/ext/ruby_prof/rp_profile.h +35 -0
  27. data/ext/ruby_prof/rp_stack.c +212 -128
  28. data/ext/ruby_prof/rp_stack.h +53 -51
  29. data/ext/ruby_prof/rp_thread.c +362 -268
  30. data/ext/ruby_prof/rp_thread.h +39 -27
  31. data/ext/ruby_prof/ruby_prof.c +52 -695
  32. data/ext/ruby_prof/ruby_prof.h +26 -55
  33. data/ext/ruby_prof/vc/ruby_prof.sln +28 -21
  34. data/ext/ruby_prof/vc/{ruby_prof_20.vcxproj → ruby_prof.vcxproj} +56 -8
  35. data/lib/ruby-prof.rb +52 -67
  36. data/lib/ruby-prof/assets/call_stack_printer.html.erb +710 -0
  37. data/lib/ruby-prof/assets/call_stack_printer.png +0 -0
  38. data/lib/ruby-prof/assets/graph_printer.html.erb +355 -0
  39. data/lib/ruby-prof/call_tree.rb +57 -0
  40. data/lib/ruby-prof/call_tree_visitor.rb +36 -0
  41. data/lib/ruby-prof/compatibility.rb +99 -169
  42. data/lib/ruby-prof/exclude_common_methods.rb +198 -0
  43. data/lib/ruby-prof/measurement.rb +17 -0
  44. data/lib/ruby-prof/method_info.rb +78 -131
  45. data/lib/ruby-prof/printers/abstract_printer.rb +137 -85
  46. data/lib/ruby-prof/printers/call_info_printer.rb +53 -41
  47. data/lib/ruby-prof/printers/call_stack_printer.rb +180 -773
  48. data/lib/ruby-prof/printers/call_tree_printer.rb +151 -92
  49. data/lib/ruby-prof/printers/dot_printer.rb +132 -132
  50. data/lib/ruby-prof/printers/flat_printer.rb +53 -69
  51. data/lib/ruby-prof/printers/graph_html_printer.rb +63 -255
  52. data/lib/ruby-prof/printers/graph_printer.rb +113 -116
  53. data/lib/ruby-prof/printers/multi_printer.rb +127 -56
  54. data/lib/ruby-prof/profile.rb +37 -77
  55. data/lib/ruby-prof/rack.rb +62 -15
  56. data/lib/ruby-prof/task.rb +147 -147
  57. data/lib/ruby-prof/thread.rb +10 -12
  58. data/lib/ruby-prof/version.rb +3 -0
  59. data/lib/unprof.rb +10 -10
  60. data/ruby-prof.gemspec +65 -61
  61. data/test/abstract_printer_test.rb +26 -0
  62. data/test/alias_test.rb +126 -0
  63. data/test/basic_test.rb +43 -128
  64. data/test/call_tree_visitor_test.rb +32 -0
  65. data/test/call_trees_test.rb +66 -0
  66. data/test/duplicate_names_test.rb +32 -32
  67. data/test/dynamic_method_test.rb +53 -74
  68. data/test/enumerable_test.rb +21 -16
  69. data/test/exceptions_test.rb +24 -16
  70. data/test/exclude_methods_test.rb +151 -0
  71. data/test/exclude_threads_test.rb +53 -54
  72. data/test/fiber_test.rb +129 -65
  73. data/test/gc_test.rb +90 -0
  74. data/test/inverse_call_tree_test.rb +175 -0
  75. data/test/line_number_test.rb +158 -71
  76. data/test/marshal_test.rb +113 -0
  77. data/test/measure_allocations.rb +30 -0
  78. data/test/measure_allocations_test.rb +375 -25
  79. data/test/measure_allocations_trace_test.rb +375 -0
  80. data/test/measure_memory_trace_test.rb +1101 -0
  81. data/test/measure_process_time_test.rb +785 -62
  82. data/test/measure_times.rb +56 -0
  83. data/test/measure_wall_time_test.rb +434 -254
  84. data/test/multi_printer_test.rb +71 -82
  85. data/test/no_method_class_test.rb +15 -15
  86. data/test/pause_resume_test.rb +175 -166
  87. data/test/prime.rb +54 -54
  88. data/test/prime_script.rb +6 -0
  89. data/test/printer_call_stack_test.rb +27 -0
  90. data/test/printer_call_tree_test.rb +30 -0
  91. data/test/printer_flat_test.rb +99 -0
  92. data/test/printer_graph_html_test.rb +59 -0
  93. data/test/printer_graph_test.rb +40 -0
  94. data/test/printers_test.rb +141 -257
  95. data/test/printing_recursive_graph_test.rb +81 -0
  96. data/test/profile_test.rb +16 -0
  97. data/test/rack_test.rb +93 -0
  98. data/test/recursive_test.rb +206 -215
  99. data/test/singleton_test.rb +38 -38
  100. data/test/stack_printer_test.rb +64 -78
  101. data/test/start_stop_test.rb +109 -112
  102. data/test/test_helper.rb +13 -115
  103. data/test/thread_test.rb +144 -178
  104. data/test/unique_call_path_test.rb +120 -224
  105. data/test/yarv_test.rb +56 -0
  106. metadata +77 -133
  107. data/doc/LICENSE.html +0 -155
  108. data/doc/README_rdoc.html +0 -648
  109. data/doc/Rack.html +0 -167
  110. data/doc/Rack/RubyProf.html +0 -319
  111. data/doc/RubyProf.html +0 -1000
  112. data/doc/RubyProf/AbstractPrinter.html +0 -580
  113. data/doc/RubyProf/AggregateCallInfo.html +0 -570
  114. data/doc/RubyProf/CallInfo.html +0 -512
  115. data/doc/RubyProf/CallInfoPrinter.html +0 -190
  116. data/doc/RubyProf/CallInfoVisitor.html +0 -332
  117. data/doc/RubyProf/CallStackPrinter.html +0 -1600
  118. data/doc/RubyProf/CallTreePrinter.html +0 -413
  119. data/doc/RubyProf/Cmd.html +0 -669
  120. data/doc/RubyProf/DotPrinter.html +0 -312
  121. data/doc/RubyProf/FlatPrinter.html +0 -229
  122. data/doc/RubyProf/FlatPrinterWithLineNumbers.html +0 -267
  123. data/doc/RubyProf/GraphHtmlPrinter.html +0 -630
  124. data/doc/RubyProf/GraphPrinter.html +0 -209
  125. data/doc/RubyProf/MethodInfo.html +0 -713
  126. data/doc/RubyProf/MultiPrinter.html +0 -407
  127. data/doc/RubyProf/Profile.html +0 -821
  128. data/doc/RubyProf/ProfileTask.html +0 -532
  129. data/doc/RubyProf/Test.html +0 -578
  130. data/doc/RubyProf/Thread.html +0 -262
  131. data/doc/created.rid +0 -32
  132. data/doc/examples/flat_txt.html +0 -191
  133. data/doc/examples/graph_txt.html +0 -305
  134. data/doc/images/add.png +0 -0
  135. data/doc/images/brick.png +0 -0
  136. data/doc/images/brick_link.png +0 -0
  137. data/doc/images/bug.png +0 -0
  138. data/doc/images/bullet_black.png +0 -0
  139. data/doc/images/bullet_toggle_minus.png +0 -0
  140. data/doc/images/bullet_toggle_plus.png +0 -0
  141. data/doc/images/date.png +0 -0
  142. data/doc/images/delete.png +0 -0
  143. data/doc/images/find.png +0 -0
  144. data/doc/images/loadingAnimation.gif +0 -0
  145. data/doc/images/macFFBgHack.png +0 -0
  146. data/doc/images/package.png +0 -0
  147. data/doc/images/page_green.png +0 -0
  148. data/doc/images/page_white_text.png +0 -0
  149. data/doc/images/page_white_width.png +0 -0
  150. data/doc/images/plugin.png +0 -0
  151. data/doc/images/ruby.png +0 -0
  152. data/doc/images/tag_blue.png +0 -0
  153. data/doc/images/tag_green.png +0 -0
  154. data/doc/images/transparent.png +0 -0
  155. data/doc/images/wrench.png +0 -0
  156. data/doc/images/wrench_orange.png +0 -0
  157. data/doc/images/zoom.png +0 -0
  158. data/doc/index.html +0 -647
  159. data/doc/js/darkfish.js +0 -155
  160. data/doc/js/jquery.js +0 -18
  161. data/doc/js/navigation.js +0 -142
  162. data/doc/js/search.js +0 -94
  163. data/doc/js/search_index.js +0 -1
  164. data/doc/js/searcher.js +0 -228
  165. data/doc/rdoc.css +0 -543
  166. data/doc/table_of_contents.html +0 -462
  167. data/examples/empty.png +0 -0
  168. data/examples/flat.txt +0 -55
  169. data/examples/graph.dot +0 -106
  170. data/examples/graph.html +0 -823
  171. data/examples/graph.png +0 -0
  172. data/examples/graph.txt +0 -170
  173. data/examples/minus.png +0 -0
  174. data/examples/multi.flat.txt +0 -23
  175. data/examples/multi.graph.html +0 -906
  176. data/examples/multi.grind.dat +0 -194
  177. data/examples/multi.stack.html +0 -573
  178. data/examples/plus.png +0 -0
  179. data/examples/stack.html +0 -573
  180. data/ext/ruby_prof/rp_call_info.c +0 -407
  181. data/ext/ruby_prof/rp_call_info.h +0 -48
  182. data/ext/ruby_prof/rp_measure.c +0 -48
  183. data/ext/ruby_prof/rp_measure.h +0 -45
  184. data/ext/ruby_prof/rp_measure_cpu_time.c +0 -112
  185. data/ext/ruby_prof/rp_measure_gc_runs.c +0 -65
  186. data/ext/ruby_prof/rp_measure_gc_time.c +0 -57
  187. data/ext/ruby_prof/vc/ruby_prof_18.vcxproj +0 -108
  188. data/ext/ruby_prof/vc/ruby_prof_19.vcxproj +0 -110
  189. data/ext/ruby_prof/version.h +0 -7
  190. data/lib/ruby-prof/aggregate_call_info.rb +0 -72
  191. data/lib/ruby-prof/call_info.rb +0 -89
  192. data/lib/ruby-prof/call_info_visitor.rb +0 -44
  193. data/lib/ruby-prof/images/empty.png +0 -0
  194. data/lib/ruby-prof/images/minus.png +0 -0
  195. data/lib/ruby-prof/images/plus.png +0 -0
  196. data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +0 -57
  197. data/lib/ruby-prof/test.rb +0 -150
  198. data/test/aggregate_test.rb +0 -136
  199. data/test/call_info_test.rb +0 -78
  200. data/test/call_info_visitor_test.rb +0 -31
  201. data/test/exec_test.rb +0 -14
  202. data/test/measure_cpu_time_test.rb +0 -220
  203. data/test/measure_gc_runs_test.rb +0 -32
  204. data/test/measure_gc_time_test.rb +0 -36
  205. data/test/measure_memory_test.rb +0 -31
  206. data/test/method_elimination_test.rb +0 -84
  207. data/test/module_test.rb +0 -45
  208. data/test/stack_test.rb +0 -138
  209. data/test/test_suite.rb +0 -37
@@ -1,48 +0,0 @@
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
- #include "ruby_prof.h"
5
-
6
- VALUE mMeasure;
7
-
8
- prof_measurer_t* prof_get_measurer(prof_measure_mode_t measure)
9
- {
10
- switch (measure)
11
- {
12
- case MEASURE_ALLOCATIONS:
13
- return prof_measurer_allocations();
14
- break;
15
- case MEASURE_CPU_TIME:
16
- return prof_measurer_cpu_time();
17
- break;
18
- case MEASURE_GC_RUNS:
19
- return prof_measurer_gc_runs();
20
- break;
21
- case MEASURE_GC_TIME:
22
- return prof_measurer_gc_time();
23
- break;
24
- case MEASURE_MEMORY:
25
- return prof_measurer_memory();
26
- break;
27
- case MEASURE_PROCESS_TIME:
28
- return prof_measurer_process_time();
29
- break;
30
- case MEASURE_WALL_TIME:
31
- return prof_measurer_wall_time();
32
- break;
33
- default:
34
- rb_raise(rb_eArgError, "Unknown measure mode: %d", measure);
35
- }
36
- };
37
-
38
- void rp_init_measure()
39
- {
40
- mMeasure = rb_define_module_under(mProf, "Measure");
41
- rp_init_measure_allocations();
42
- rp_init_measure_cpu_time();
43
- rp_init_measure_gc_runs();
44
- rp_init_measure_gc_time();
45
- rp_init_measure_memory();
46
- rp_init_measure_process_time();
47
- rp_init_measure_wall_time();
48
- }
@@ -1,45 +0,0 @@
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 __RP_MEASUREMENT_H__
5
- #define __RP_MEASUREMENT_H__
6
-
7
- extern VALUE mMeasure;
8
-
9
- typedef double (*get_measurement)();
10
-
11
- typedef struct
12
- {
13
- get_measurement measure;
14
- } prof_measurer_t;
15
-
16
- typedef enum
17
- {
18
- MEASURE_ALLOCATIONS,
19
- MEASURE_CPU_TIME,
20
- MEASURE_GC_RUNS,
21
- MEASURE_GC_TIME,
22
- MEASURE_MEMORY,
23
- MEASURE_PROCESS_TIME,
24
- MEASURE_WALL_TIME,
25
- } prof_measure_mode_t;
26
-
27
- prof_measurer_t* prof_get_measurer(prof_measure_mode_t measure);
28
- prof_measurer_t* prof_measurer_allocations();
29
- prof_measurer_t* prof_measurer_cpu_time();
30
- prof_measurer_t* prof_measurer_gc_runs();
31
- prof_measurer_t* prof_measurer_gc_time();
32
- prof_measurer_t* prof_measurer_memory();
33
- prof_measurer_t* prof_measurer_process_time();
34
- prof_measurer_t* prof_measurer_wall_time();
35
-
36
- void rp_init_measure();
37
- void rp_init_measure_allocations();
38
- void rp_init_measure_cpu_time();
39
- void rp_init_measure_gc_runs();
40
- void rp_init_measure_gc_time();
41
- void rp_init_measure_memory();
42
- void rp_init_measure_process_time();
43
- void rp_init_measure_wall_time();
44
-
45
- #endif //__RP_MEASUREMENT_H__
@@ -1,112 +0,0 @@
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
- #include "ruby_prof.h"
5
-
6
- static VALUE cMeasureCpuTime;
7
-
8
- static unsigned long long cpu_frequency = 0;
9
-
10
- /* The _WIN32 check is needed for msys (and maybe cygwin?) */
11
- #if defined(__GNUC__) && !defined(_WIN32)
12
-
13
- #include <stdint.h>
14
- #include <time.h>
15
-
16
- static unsigned long long get_cpu_time()
17
- {
18
- #if defined(__i386__) || defined(__x86_64__)
19
- uint32_t a, d;
20
- __asm__ volatile("rdtsc" : "=a" (a), "=d" (d));
21
- return ((uint64_t)d << 32) + a;
22
- #elif defined(__powerpc__) || defined(__ppc__)
23
- unsigned long long x, y;
24
-
25
- __asm__ __volatile__ ("\n\
26
- 1: mftbu %1\n\
27
- mftb %L0\n\
28
- mftbu %0\n\
29
- cmpw %0,%1\n\
30
- bne- 1b"
31
- : "=r" (x), "=r" (y));
32
- return x;
33
- #endif
34
- }
35
-
36
- static unsigned long long get_cpu_frequency()
37
- {
38
- unsigned long long x, y;
39
-
40
- struct timespec ts;
41
- ts.tv_sec = 0;
42
- ts.tv_nsec = 500000000;
43
- x = get_cpu_time();
44
- nanosleep(&ts, NULL);
45
- y = get_cpu_time();
46
- return (y - x) * 2;
47
- }
48
-
49
- #elif defined(_WIN32)
50
-
51
- static unsigned long long get_cpu_time()
52
- {
53
- LARGE_INTEGER time;
54
- QueryPerformanceCounter(&time);
55
- return time.QuadPart;
56
- };
57
-
58
- static unsigned long long get_cpu_frequency()
59
- {
60
- LARGE_INTEGER cpu_frequency;
61
- QueryPerformanceFrequency(&cpu_frequency);
62
- return cpu_frequency.QuadPart;
63
- };
64
- #endif
65
-
66
- static double
67
- measure_cpu_time()
68
- {
69
- return ((double)get_cpu_time()) / cpu_frequency;
70
- }
71
-
72
-
73
- prof_measurer_t* prof_measurer_cpu_time()
74
- {
75
- prof_measurer_t* measure = ALLOC(prof_measurer_t);
76
- measure->measure = measure_cpu_time;
77
- return measure;
78
- }
79
-
80
- /* call-seq:
81
- measure -> float
82
-
83
- Returns the cpu time.*/
84
- static VALUE
85
- prof_measure_cpu_time(VALUE self)
86
- {
87
- return rb_float_new(measure_cpu_time());
88
- }
89
-
90
- /* call-seq:
91
- cpu_frequency -> int
92
-
93
- Returns the cpu's frequency. This value is needed when
94
- RubyProf::measure_mode is set to CPU_TIME. */
95
- static VALUE
96
- prof_get_cpu_frequency(VALUE self)
97
- {
98
- return ULL2NUM(cpu_frequency);
99
- }
100
-
101
- void rp_init_measure_cpu_time()
102
- {
103
- rb_define_const(mProf, "CPU_TIME", INT2NUM(MEASURE_CPU_TIME));
104
- rb_define_const(mProf, "CPU_TIME_ENABLED", Qtrue);
105
-
106
- cMeasureCpuTime = rb_define_class_under(mMeasure, "CpuTime", rb_cObject);
107
- rb_define_singleton_method(cMeasureCpuTime, "measure", prof_measure_cpu_time, 0);
108
- rb_define_singleton_method(cMeasureCpuTime, "frequency", prof_get_cpu_frequency, 0);
109
-
110
- /* Get cpu_frequency */
111
- cpu_frequency = get_cpu_frequency();
112
- }
@@ -1,65 +0,0 @@
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
- /* :nodoc: */
5
-
6
- #include "ruby_prof.h"
7
-
8
- static VALUE cMeasureGcRuns;
9
-
10
- #if defined(HAVE_RB_GC_COLLECTIONS)
11
- VALUE rb_gc_collections(void);
12
- #endif
13
-
14
- #if defined(HAVE_RB_GC_HEAP_INFO)
15
- VALUE rb_gc_heap_info(void);
16
- #endif
17
-
18
-
19
- static double
20
- measure_gc_runs()
21
- {
22
- #if defined(HAVE_RB_GC_COLLECTIONS)
23
- #define MEASURE_GC_RUNS_ENABLED Qtrue
24
- return NUM2INT(rb_gc_collections());
25
-
26
- #elif defined(HAVE_RB_GC_HEAP_INFO)
27
- #define MEASURE_GC_RUNS_ENABLED Qtrue
28
- VALUE h = rb_gc_heap_info();
29
- return NUM2UINT(rb_hash_aref(h, rb_str_new2("num_gc_passes")));
30
-
31
- #else
32
- #define MEASURE_GC_RUNS_ENABLED Qfalse
33
- return 0;
34
- #endif
35
- }
36
-
37
- prof_measurer_t* prof_measurer_gc_runs()
38
- {
39
- prof_measurer_t* measure = ALLOC(prof_measurer_t);
40
- measure->measure = measure_gc_runs;
41
- return measure;
42
- }
43
-
44
- /* call-seq:
45
- measure -> int
46
-
47
- Returns the number of GC runs.*/
48
- static VALUE
49
- prof_measure_gc_runs(VALUE self)
50
- {
51
- #if defined(HAVE_LONG_LONG)
52
- return ULL2NUM(measure_gc_runs());
53
- #else
54
- return ULONG2NUM(measure_gc_runs());
55
- #endif
56
- }
57
-
58
- void rp_init_measure_gc_runs()
59
- {
60
- rb_define_const(mProf, "GC_RUNS", INT2NUM(MEASURE_GC_RUNS));
61
- rb_define_const(mProf, "GC_RUNS_ENABLED", MEASURE_GC_RUNS_ENABLED);
62
-
63
- cMeasureGcRuns = rb_define_class_under(mMeasure, "GcRuns", rb_cObject);
64
- rb_define_singleton_method(cMeasureGcRuns, "measure", prof_measure_gc_runs, 0);
65
- }
@@ -1,57 +0,0 @@
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
- /* :nodoc: */
5
-
6
- #include "ruby_prof.h"
7
-
8
- static VALUE cMeasureGcTimes;
9
-
10
- #if defined(HAVE_RB_GC_TIME)
11
- VALUE rb_gc_time();
12
- #endif
13
-
14
-
15
- static double
16
- measure_gc_time()
17
- {
18
- #if defined(HAVE_RB_GC_TIME)
19
- #define MEASURE_GC_TIME_ENABLED Qtrue
20
- const double conversion = 1000000.0;
21
- #if HAVE_LONG_LONG
22
- return NUM2LL(rb_gc_time()) / conversion;
23
- #else
24
- return NUM2LONG(rb_gc_time()) / conversion;
25
- #endif
26
-
27
- #else
28
- #define MEASURE_GC_TIME_ENABLED Qfalse
29
- return 0.0;
30
- #endif
31
- }
32
-
33
- prof_measurer_t* prof_measurer_gc_time()
34
- {
35
- prof_measurer_t* measure = ALLOC(prof_measurer_t);
36
- measure->measure = measure_gc_time;
37
- return measure;
38
- }
39
-
40
- /* call-seq:
41
- measure -> float
42
-
43
- Returns the time spent performing GC.*/
44
- static VALUE
45
- prof_measure_gc_time(VALUE self)
46
- {
47
- return rb_float_new(measure_gc_time());
48
- }
49
-
50
- void rp_init_measure_gc_time()
51
- {
52
- rb_define_const(mProf, "GC_TIME", INT2NUM(MEASURE_GC_TIME));
53
- rb_define_const(mProf, "GC_TIME_ENABLED", MEASURE_GC_TIME_ENABLED);
54
-
55
- cMeasureGcTimes = rb_define_class_under(mMeasure, "GcTime", rb_cObject);
56
- rb_define_singleton_method(cMeasureGcTimes, "measure", prof_measure_gc_time, 0);
57
- }
@@ -1,108 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
- <ItemGroup Label="ProjectConfigurations">
4
- <ProjectConfiguration Include="Debug|Win32">
5
- <Configuration>Debug</Configuration>
6
- <Platform>Win32</Platform>
7
- </ProjectConfiguration>
8
- <ProjectConfiguration Include="Release|Win32">
9
- <Configuration>Release</Configuration>
10
- <Platform>Win32</Platform>
11
- </ProjectConfiguration>
12
- </ItemGroup>
13
- <ItemGroup>
14
- <ClInclude Include="..\rp_call_info.h" />
15
- <ClInclude Include="..\rp_measure.h" />
16
- <ClInclude Include="..\rp_method.h" />
17
- <ClInclude Include="..\rp_stack.h" />
18
- <ClInclude Include="..\rp_thread.h" />
19
- <ClInclude Include="..\ruby_prof.h" />
20
- <ClInclude Include="..\version.h" />
21
- </ItemGroup>
22
- <ItemGroup>
23
- <ClCompile Include="..\rp_call_info.c" />
24
- <ClCompile Include="..\rp_measure.c" />
25
- <ClCompile Include="..\rp_measure_allocations.c" />
26
- <ClCompile Include="..\rp_measure_cpu_time.c" />
27
- <ClCompile Include="..\rp_measure_gc_runs.c" />
28
- <ClCompile Include="..\rp_measure_gc_time.c" />
29
- <ClCompile Include="..\rp_measure_memory.c" />
30
- <ClCompile Include="..\rp_measure_process_time.c" />
31
- <ClCompile Include="..\rp_measure_wall_time.c" />
32
- <ClCompile Include="..\rp_method.c" />
33
- <ClCompile Include="..\rp_stack.c" />
34
- <ClCompile Include="..\rp_thread.c" />
35
- <ClCompile Include="..\ruby_prof.c" />
36
- </ItemGroup>
37
- <PropertyGroup Label="Globals">
38
- <ProjectGuid>{7789FC23-D053-4733-9ED1-D6CE099E1237}</ProjectGuid>
39
- <Keyword>Win32Proj</Keyword>
40
- <RootNamespace>ruby_prof_18</RootNamespace>
41
- </PropertyGroup>
42
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
43
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
44
- <ConfigurationType>DynamicLibrary</ConfigurationType>
45
- <UseDebugLibraries>true</UseDebugLibraries>
46
- <CharacterSet>Unicode</CharacterSet>
47
- </PropertyGroup>
48
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
49
- <ConfigurationType>DynamicLibrary</ConfigurationType>
50
- <UseDebugLibraries>false</UseDebugLibraries>
51
- <WholeProgramOptimization>true</WholeProgramOptimization>
52
- <CharacterSet>Unicode</CharacterSet>
53
- </PropertyGroup>
54
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
55
- <ImportGroup Label="ExtensionSettings">
56
- </ImportGroup>
57
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
58
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
59
- </ImportGroup>
60
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
61
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
62
- </ImportGroup>
63
- <PropertyGroup Label="UserMacros" />
64
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
65
- <LinkIncremental>true</LinkIncremental>
66
- <OutDir>C:\MinGW\local\src\ruby-prof\lib\1.8</OutDir>
67
- <TargetExt>.so</TargetExt>
68
- <TargetName>ruby_prof</TargetName>
69
- </PropertyGroup>
70
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
71
- <LinkIncremental>false</LinkIncremental>
72
- </PropertyGroup>
73
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
74
- <ClCompile>
75
- <PrecompiledHeader>NotUsing</PrecompiledHeader>
76
- <WarningLevel>Level3</WarningLevel>
77
- <Optimization>Disabled</Optimization>
78
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;RUBY_PROF_18_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
79
- <AdditionalIncludeDirectories>C:\MinGW\local\ruby187vc\lib\ruby\1.8\i386-mswin32_100</AdditionalIncludeDirectories>
80
- </ClCompile>
81
- <Link>
82
- <SubSystem>Windows</SubSystem>
83
- <GenerateDebugInformation>true</GenerateDebugInformation>
84
- <AdditionalLibraryDirectories>C:\MinGW\local\ruby187vc\lib</AdditionalLibraryDirectories>
85
- <AdditionalDependencies>msvcr100-ruby18.lib;%(AdditionalDependencies)</AdditionalDependencies>
86
- <ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
87
- </Link>
88
- </ItemDefinitionGroup>
89
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
90
- <ClCompile>
91
- <WarningLevel>Level3</WarningLevel>
92
- <PrecompiledHeader>Use</PrecompiledHeader>
93
- <Optimization>MaxSpeed</Optimization>
94
- <FunctionLevelLinking>true</FunctionLevelLinking>
95
- <IntrinsicFunctions>true</IntrinsicFunctions>
96
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;RUBY_PROF_18_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
97
- </ClCompile>
98
- <Link>
99
- <SubSystem>Windows</SubSystem>
100
- <GenerateDebugInformation>true</GenerateDebugInformation>
101
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
102
- <OptimizeReferences>true</OptimizeReferences>
103
- </Link>
104
- </ItemDefinitionGroup>
105
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
106
- <ImportGroup Label="ExtensionTargets">
107
- </ImportGroup>
108
- </Project>
@@ -1,110 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
- <ItemGroup Label="ProjectConfigurations">
4
- <ProjectConfiguration Include="Debug|Win32">
5
- <Configuration>Debug</Configuration>
6
- <Platform>Win32</Platform>
7
- </ProjectConfiguration>
8
- <ProjectConfiguration Include="Release|Win32">
9
- <Configuration>Release</Configuration>
10
- <Platform>Win32</Platform>
11
- </ProjectConfiguration>
12
- </ItemGroup>
13
- <PropertyGroup Label="Globals">
14
- <ProjectGuid>{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}</ProjectGuid>
15
- <Keyword>Win32Proj</Keyword>
16
- <RootNamespace>ruby_prof</RootNamespace>
17
- </PropertyGroup>
18
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
19
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
20
- <ConfigurationType>DynamicLibrary</ConfigurationType>
21
- <UseDebugLibraries>true</UseDebugLibraries>
22
- <CharacterSet>Unicode</CharacterSet>
23
- </PropertyGroup>
24
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
25
- <ConfigurationType>DynamicLibrary</ConfigurationType>
26
- <UseDebugLibraries>false</UseDebugLibraries>
27
- <WholeProgramOptimization>true</WholeProgramOptimization>
28
- <CharacterSet>Unicode</CharacterSet>
29
- </PropertyGroup>
30
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
31
- <ImportGroup Label="ExtensionSettings">
32
- </ImportGroup>
33
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
34
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
35
- </ImportGroup>
36
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
37
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
38
- </ImportGroup>
39
- <PropertyGroup Label="UserMacros" />
40
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
41
- <LinkIncremental>true</LinkIncremental>
42
- <OutDir>..\..\..\lib\1.9</OutDir>
43
- <TargetExt>.so</TargetExt>
44
- <TargetName>ruby_prof</TargetName>
45
- </PropertyGroup>
46
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
47
- <LinkIncremental>false</LinkIncremental>
48
- </PropertyGroup>
49
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
50
- <ClCompile>
51
- <PrecompiledHeader>
52
- </PrecompiledHeader>
53
- <WarningLevel>Level3</WarningLevel>
54
- <Optimization>Disabled</Optimization>
55
- <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;RUBY_PROF_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
56
- <AdditionalIncludeDirectories>C:\MinGW\local\ruby193vc\include\ruby-1.9.1;C:\MinGW\local\ruby193vc\include\ruby-1.9.1\i386-mswin32_100;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
57
- </ClCompile>
58
- <Link>
59
- <SubSystem>Windows</SubSystem>
60
- <GenerateDebugInformation>true</GenerateDebugInformation>
61
- <AdditionalLibraryDirectories>C:\MinGW\local\ruby193vc\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
62
- <AdditionalDependencies>msvcr100-ruby191.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
63
- <ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
64
- </Link>
65
- </ItemDefinitionGroup>
66
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
67
- <ClCompile>
68
- <WarningLevel>Level3</WarningLevel>
69
- <PrecompiledHeader>
70
- </PrecompiledHeader>
71
- <Optimization>MaxSpeed</Optimization>
72
- <FunctionLevelLinking>true</FunctionLevelLinking>
73
- <IntrinsicFunctions>true</IntrinsicFunctions>
74
- <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;RUBY_PROF_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
75
- </ClCompile>
76
- <Link>
77
- <SubSystem>Windows</SubSystem>
78
- <GenerateDebugInformation>true</GenerateDebugInformation>
79
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
80
- <OptimizeReferences>true</OptimizeReferences>
81
- </Link>
82
- </ItemDefinitionGroup>
83
- <ItemGroup>
84
- <ClInclude Include="..\rp_call_info.h" />
85
- <ClInclude Include="..\rp_measure.h" />
86
- <ClInclude Include="..\rp_method.h" />
87
- <ClInclude Include="..\rp_stack.h" />
88
- <ClInclude Include="..\rp_thread.h" />
89
- <ClInclude Include="..\ruby_prof.h" />
90
- <ClInclude Include="..\version.h" />
91
- </ItemGroup>
92
- <ItemGroup>
93
- <ClCompile Include="..\rp_call_info.c" />
94
- <ClCompile Include="..\rp_measure.c" />
95
- <ClCompile Include="..\rp_measure_allocations.c" />
96
- <ClCompile Include="..\rp_measure_cpu_time.c" />
97
- <ClCompile Include="..\rp_measure_gc_runs.c" />
98
- <ClCompile Include="..\rp_measure_gc_time.c" />
99
- <ClCompile Include="..\rp_measure_memory.c" />
100
- <ClCompile Include="..\rp_measure_process_time.c" />
101
- <ClCompile Include="..\rp_measure_wall_time.c" />
102
- <ClCompile Include="..\rp_method.c" />
103
- <ClCompile Include="..\rp_stack.c" />
104
- <ClCompile Include="..\rp_thread.c" />
105
- <ClCompile Include="..\ruby_prof.c" />
106
- </ItemGroup>
107
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
108
- <ImportGroup Label="ExtensionTargets">
109
- </ImportGroup>
110
- </Project>