ruby-prof 1.7.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/{CHANGES → CHANGELOG.md} +112 -178
- data/README.md +5 -5
- data/bin/ruby-prof +1 -4
- data/docs/advanced-usage.md +132 -0
- data/docs/alternatives.md +98 -0
- data/docs/architecture.md +122 -0
- data/docs/best-practices.md +27 -0
- data/docs/getting-started.md +130 -0
- data/docs/history.md +11 -0
- data/docs/index.md +45 -0
- data/docs/profiling-rails.md +64 -0
- data/docs/public/examples/example.rb +33 -0
- data/docs/public/examples/generate_reports.rb +92 -0
- data/docs/public/examples/reports/call_info.txt +27 -0
- data/docs/public/examples/reports/call_stack.html +835 -0
- data/docs/public/examples/reports/callgrind.out +150 -0
- data/docs/public/examples/reports/flame_graph.html +408 -0
- data/docs/public/examples/reports/flat.txt +45 -0
- data/docs/public/examples/reports/graph.dot +129 -0
- data/docs/public/examples/reports/graph.html +1319 -0
- data/docs/public/examples/reports/graph.txt +100 -0
- data/docs/public/examples/reports/graphviz_viewer.html +1 -0
- data/docs/public/images/call_stack.png +0 -0
- data/docs/public/images/class_diagram.png +0 -0
- data/docs/public/images/dot_printer.png +0 -0
- data/docs/public/images/flame_graph.png +0 -0
- data/docs/public/images/flat.png +0 -0
- data/docs/public/images/graph.png +0 -0
- data/docs/public/images/graph_html.png +0 -0
- data/docs/public/images/ruby-prof-logo.svg +1 -0
- data/docs/reports.md +150 -0
- data/docs/stylesheets/extra.css +80 -0
- data/ext/ruby_prof/rp_allocation.c +0 -15
- data/ext/ruby_prof/rp_allocation.h +29 -33
- data/ext/ruby_prof/rp_call_tree.c +3 -0
- data/ext/ruby_prof/rp_call_tree.h +1 -4
- data/ext/ruby_prof/rp_call_trees.h +1 -4
- data/ext/ruby_prof/rp_measurement.c +0 -5
- data/ext/ruby_prof/rp_measurement.h +49 -53
- data/ext/ruby_prof/rp_method.c +3 -0
- data/ext/ruby_prof/rp_method.h +1 -4
- data/ext/ruby_prof/rp_profile.c +1 -1
- data/ext/ruby_prof/rp_profile.h +1 -5
- data/ext/ruby_prof/rp_stack.h +50 -53
- data/ext/ruby_prof/rp_thread.h +1 -4
- data/ext/ruby_prof/ruby_prof.h +1 -4
- data/ext/ruby_prof/vc/ruby_prof.vcxproj +7 -8
- data/lib/ruby-prof/assets/call_stack_printer.html.erb +746 -711
- data/lib/ruby-prof/assets/flame_graph_printer.html.erb +412 -0
- data/lib/ruby-prof/assets/graph_printer.html.erb +355 -355
- data/lib/ruby-prof/call_tree.rb +57 -57
- data/lib/ruby-prof/call_tree_visitor.rb +36 -36
- data/lib/ruby-prof/measurement.rb +17 -17
- data/lib/ruby-prof/printers/abstract_printer.rb +19 -33
- data/lib/ruby-prof/printers/call_info_printer.rb +53 -53
- data/lib/ruby-prof/printers/call_stack_printer.rb +168 -180
- data/lib/ruby-prof/printers/call_tree_printer.rb +132 -145
- data/lib/ruby-prof/printers/dot_printer.rb +177 -132
- data/lib/ruby-prof/printers/flame_graph_printer.rb +79 -0
- data/lib/ruby-prof/printers/flat_printer.rb +52 -52
- data/lib/ruby-prof/printers/graph_html_printer.rb +62 -63
- data/lib/ruby-prof/printers/graph_printer.rb +112 -113
- data/lib/ruby-prof/printers/multi_printer.rb +134 -127
- data/lib/ruby-prof/profile.rb +13 -0
- data/lib/ruby-prof/rack.rb +114 -105
- data/lib/ruby-prof/task.rb +147 -147
- data/lib/ruby-prof/thread.rb +20 -20
- data/lib/ruby-prof/version.rb +1 -1
- data/lib/ruby-prof.rb +50 -52
- data/lib/unprof.rb +10 -10
- data/ruby-prof.gemspec +5 -5
- data/test/abstract_printer_test.rb +25 -27
- data/test/alias_test.rb +203 -117
- data/test/call_tree_builder.rb +126 -126
- data/test/call_tree_visitor_test.rb +27 -27
- data/test/call_trees_test.rb +66 -66
- data/test/duplicate_names_test.rb +32 -32
- data/test/dynamic_method_test.rb +50 -50
- data/test/exceptions_test.rb +24 -24
- data/test/exclude_threads_test.rb +48 -48
- data/test/fiber_test.rb +72 -72
- data/test/inverse_call_tree_test.rb +174 -174
- data/test/line_number_test.rb +138 -1
- data/test/marshal_test.rb +144 -145
- data/test/measure_allocations.rb +26 -26
- data/test/measure_allocations_test.rb +340 -1
- data/test/measure_process_time_test.rb +3098 -3142
- data/test/measure_times.rb +56 -56
- data/test/measure_wall_time_test.rb +511 -372
- data/test/measurement_test.rb +82 -82
- data/test/merge_test.rb +48 -48
- data/test/multi_printer_test.rb +52 -66
- data/test/no_method_class_test.rb +15 -15
- data/test/pause_resume_test.rb +171 -171
- data/test/prime.rb +54 -54
- data/test/prime_script.rb +5 -5
- data/test/printer_call_stack_test.rb +28 -27
- data/test/printer_call_tree_test.rb +30 -30
- data/test/printer_flame_graph_test.rb +82 -0
- data/test/printer_flat_test.rb +99 -99
- data/test/printer_graph_html_test.rb +62 -59
- data/test/printer_graph_test.rb +42 -40
- data/test/printers_test.rb +28 -44
- data/test/printing_recursive_graph_test.rb +81 -81
- data/test/profile_test.rb +101 -101
- data/test/rack_test.rb +103 -93
- data/test/recursive_test.rb +139 -139
- data/test/scheduler.rb +4 -0
- data/test/singleton_test.rb +39 -38
- data/test/stack_printer_test.rb +61 -61
- data/test/start_stop_test.rb +106 -106
- data/test/test_helper.rb +4 -0
- data/test/thread_test.rb +29 -29
- data/test/unique_call_path_test.rb +123 -123
- data/test/yarv_test.rb +56 -56
- metadata +53 -11
- data/ext/ruby_prof/rp_measure_memory.c +0 -46
- data/lib/ruby-prof/compatibility.rb +0 -113
- data/test/compatibility_test.rb +0 -49
- data/test/measure_memory_test.rb +0 -1193
|
@@ -1,53 +1,49 @@
|
|
|
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
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
double
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
prof_measurement_t*
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
prof_measurement_t*
|
|
48
|
-
|
|
49
|
-
void
|
|
50
|
-
|
|
51
|
-
void rp_init_measure(void);
|
|
52
|
-
|
|
53
|
-
#endif //__rp_measurementMENT_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
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "ruby_prof.h"
|
|
7
|
+
|
|
8
|
+
extern VALUE mMeasure;
|
|
9
|
+
|
|
10
|
+
typedef double (*get_measurement)(rb_trace_arg_t* trace_arg);
|
|
11
|
+
|
|
12
|
+
typedef enum
|
|
13
|
+
{
|
|
14
|
+
MEASURE_WALL_TIME,
|
|
15
|
+
MEASURE_PROCESS_TIME,
|
|
16
|
+
MEASURE_ALLOCATIONS
|
|
17
|
+
} prof_measure_mode_t;
|
|
18
|
+
|
|
19
|
+
typedef struct prof_measurer_t
|
|
20
|
+
{
|
|
21
|
+
get_measurement measure;
|
|
22
|
+
prof_measure_mode_t mode;
|
|
23
|
+
double multiplier;
|
|
24
|
+
bool track_allocations;
|
|
25
|
+
} prof_measurer_t;
|
|
26
|
+
|
|
27
|
+
/* Callers and callee information for a method. */
|
|
28
|
+
typedef struct prof_measurement_t
|
|
29
|
+
{
|
|
30
|
+
prof_owner_t owner;
|
|
31
|
+
double total_time;
|
|
32
|
+
double self_time;
|
|
33
|
+
double wait_time;
|
|
34
|
+
int called;
|
|
35
|
+
VALUE object;
|
|
36
|
+
} prof_measurement_t;
|
|
37
|
+
|
|
38
|
+
prof_measurer_t* prof_measurer_create(prof_measure_mode_t measure, bool track_allocations);
|
|
39
|
+
double prof_measure(prof_measurer_t* measurer, rb_trace_arg_t* trace_arg);
|
|
40
|
+
|
|
41
|
+
prof_measurement_t* prof_measurement_create(void);
|
|
42
|
+
prof_measurement_t* prof_measurement_copy(prof_measurement_t* other);
|
|
43
|
+
void prof_measurement_free(prof_measurement_t* measurement);
|
|
44
|
+
VALUE prof_measurement_wrap(prof_measurement_t* measurement);
|
|
45
|
+
prof_measurement_t* prof_get_measurement(VALUE self);
|
|
46
|
+
void prof_measurement_mark(void* data);
|
|
47
|
+
void prof_measurement_merge_internal(prof_measurement_t* destination, prof_measurement_t* other);
|
|
48
|
+
|
|
49
|
+
void rp_init_measure(void);
|
data/ext/ruby_prof/rp_method.c
CHANGED
|
@@ -157,6 +157,9 @@ prof_method_t* prof_method_create(struct prof_profile_t* profile, VALUE klass, V
|
|
|
157
157
|
prof_method_t* prof_method_copy(prof_method_t* other)
|
|
158
158
|
{
|
|
159
159
|
prof_method_t* result = prof_method_create(other->profile, other->klass, other->method_name, other->source_file, other->source_line);
|
|
160
|
+
|
|
161
|
+
// Free the measurement created by prof_method_create before replacing it with the copy
|
|
162
|
+
prof_measurement_free(result->measurement);
|
|
160
163
|
result->measurement = prof_measurement_copy(other->measurement);
|
|
161
164
|
|
|
162
165
|
return result;
|
data/ext/ruby_prof/rp_method.h
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
|
|
2
2
|
Please see the LICENSE file for copyright and distribution information */
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
#define __RP_METHOD_INFO__
|
|
4
|
+
#pragma once
|
|
6
5
|
|
|
7
6
|
#include "ruby_prof.h"
|
|
8
7
|
#include "rp_measurement.h"
|
|
@@ -62,5 +61,3 @@ void prof_method_mark(void* data);
|
|
|
62
61
|
|
|
63
62
|
VALUE resolve_klass(VALUE klass, unsigned int* klass_flags);
|
|
64
63
|
VALUE resolve_klass_name(VALUE klass, unsigned int* klass_flags);
|
|
65
|
-
|
|
66
|
-
#endif //__RP_METHOD_INFO__
|
data/ext/ruby_prof/rp_profile.c
CHANGED
|
@@ -186,7 +186,7 @@ static void prof_trace(prof_profile_t* profile, rb_trace_arg_t* trace_arg, doubl
|
|
|
186
186
|
const char* source_file_char = (source_file != Qnil ? StringValuePtr(source_file) : "");
|
|
187
187
|
|
|
188
188
|
fprintf(trace_file, "%2lu:%2f %-8s %s#%s %s:%2d\n",
|
|
189
|
-
|
|
189
|
+
NUM2ULONG(rb_obj_id(fiber)), (double)measurement,
|
|
190
190
|
event_name, class_name, method_name_char, source_file_char, source_line);
|
|
191
191
|
fflush(trace_file);
|
|
192
192
|
last_fiber = fiber;
|
data/ext/ruby_prof/rp_profile.h
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
|
|
2
2
|
Please see the LICENSE file for copyright and distribution information */
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
#define __RP_PROFILE_H__
|
|
4
|
+
#pragma once
|
|
6
5
|
|
|
7
6
|
#include "ruby_prof.h"
|
|
8
7
|
#include "rp_measurement.h"
|
|
@@ -31,6 +30,3 @@ typedef struct prof_profile_t
|
|
|
31
30
|
|
|
32
31
|
void rp_init_profile(void);
|
|
33
32
|
prof_profile_t* prof_get_profile(VALUE self);
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
#endif //__RP_PROFILE_H__
|
data/ext/ruby_prof/rp_stack.h
CHANGED
|
@@ -1,53 +1,50 @@
|
|
|
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
|
-
#
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
#include "
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
double
|
|
23
|
-
double
|
|
24
|
-
double
|
|
25
|
-
double
|
|
26
|
-
double
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
void
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
prof_frame_t*
|
|
40
|
-
prof_frame_t*
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
prof_stack_t*
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
prof_frame_t*
|
|
48
|
-
prof_frame_t*
|
|
49
|
-
prof_frame_t*
|
|
50
|
-
|
|
51
|
-
prof_method_t* prof_find_method(prof_stack_t* stack, VALUE source_file, int source_line);
|
|
52
|
-
|
|
53
|
-
#endif //__RP_STACK__
|
|
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
|
+
#pragma once
|
|
5
|
+
|
|
6
|
+
#include "ruby_prof.h"
|
|
7
|
+
#include "rp_call_tree.h"
|
|
8
|
+
|
|
9
|
+
/* Temporary object that maintains profiling information
|
|
10
|
+
for active methods. They are created and destroyed
|
|
11
|
+
as the program moves up and down its stack. */
|
|
12
|
+
typedef struct prof_frame_t
|
|
13
|
+
{
|
|
14
|
+
/* Caching prof_method_t values significantly
|
|
15
|
+
increases performance. */
|
|
16
|
+
prof_call_tree_t* call_tree;
|
|
17
|
+
|
|
18
|
+
VALUE source_file;
|
|
19
|
+
unsigned int source_line;
|
|
20
|
+
|
|
21
|
+
double start_time;
|
|
22
|
+
double switch_time; /* Time at switch to different thread */
|
|
23
|
+
double wait_time;
|
|
24
|
+
double child_time;
|
|
25
|
+
double pause_time; // Time pause() was initiated
|
|
26
|
+
double dead_time; // Time to ignore (i.e. total amount of time between pause/resume blocks)
|
|
27
|
+
} prof_frame_t;
|
|
28
|
+
|
|
29
|
+
static inline bool prof_frame_is_paused(prof_frame_t* f) { return f->pause_time >= 0; }
|
|
30
|
+
static inline bool prof_frame_is_unpaused(prof_frame_t* f) { return f->pause_time < 0; }
|
|
31
|
+
|
|
32
|
+
void prof_frame_pause(prof_frame_t*, double current_measurement);
|
|
33
|
+
void prof_frame_unpause(prof_frame_t*, double current_measurement);
|
|
34
|
+
|
|
35
|
+
/* Current stack of active methods.*/
|
|
36
|
+
typedef struct prof_stack_t
|
|
37
|
+
{
|
|
38
|
+
prof_frame_t* start;
|
|
39
|
+
prof_frame_t* end;
|
|
40
|
+
prof_frame_t* ptr;
|
|
41
|
+
} prof_stack_t;
|
|
42
|
+
|
|
43
|
+
prof_stack_t* prof_stack_create(void);
|
|
44
|
+
void prof_stack_free(prof_stack_t* stack);
|
|
45
|
+
|
|
46
|
+
prof_frame_t* prof_frame_current(prof_stack_t* stack);
|
|
47
|
+
prof_frame_t* prof_frame_push(prof_stack_t* stack, prof_call_tree_t* call_tree, double measurement, bool paused);
|
|
48
|
+
prof_frame_t* prof_frame_unshift(prof_stack_t* stack, prof_call_tree_t* parent_call_tree, prof_call_tree_t* call_tree, double measurement);
|
|
49
|
+
prof_frame_t* prof_frame_pop(prof_stack_t* stack, double measurement);
|
|
50
|
+
prof_method_t* prof_find_method(prof_stack_t* stack, VALUE source_file, int source_line);
|
data/ext/ruby_prof/rp_thread.h
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
|
|
2
2
|
Please see the LICENSE file for copyright and distribution information */
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
#define __RP_THREAD__
|
|
4
|
+
#pragma once
|
|
6
5
|
|
|
7
6
|
#include "ruby_prof.h"
|
|
8
7
|
#include "rp_stack.h"
|
|
@@ -35,5 +34,3 @@ void prof_thread_mark(void* data);
|
|
|
35
34
|
void switch_thread(void* profile, thread_data_t* thread_data, double measurement);
|
|
36
35
|
int pause_thread(st_data_t key, st_data_t value, st_data_t data);
|
|
37
36
|
int unpause_thread(st_data_t key, st_data_t value, st_data_t data);
|
|
38
|
-
|
|
39
|
-
#endif //__RP_THREAD__
|
data/ext/ruby_prof/ruby_prof.h
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
/* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
|
|
2
2
|
Please see the LICENSE file for copyright and distribution information */
|
|
3
3
|
|
|
4
|
-
#
|
|
5
|
-
#define __RUBY_PROF_H__
|
|
4
|
+
#pragma once
|
|
6
5
|
|
|
7
6
|
#include <stdio.h>
|
|
8
7
|
#include <stdbool.h>
|
|
@@ -31,5 +30,3 @@ typedef enum
|
|
|
31
30
|
OWNER_C = 2
|
|
32
31
|
} prof_owner_t;
|
|
33
32
|
|
|
34
|
-
|
|
35
|
-
#endif //__RUBY_PROF_H__
|
|
@@ -29,21 +29,21 @@
|
|
|
29
29
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
30
30
|
<UseDebugLibraries>true</UseDebugLibraries>
|
|
31
31
|
<CharacterSet>Unicode</CharacterSet>
|
|
32
|
-
<PlatformToolset>
|
|
32
|
+
<PlatformToolset>v145</PlatformToolset>
|
|
33
33
|
</PropertyGroup>
|
|
34
34
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
|
35
35
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
36
36
|
<UseDebugLibraries>false</UseDebugLibraries>
|
|
37
37
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
38
38
|
<CharacterSet>Unicode</CharacterSet>
|
|
39
|
-
<PlatformToolset>
|
|
39
|
+
<PlatformToolset>v145</PlatformToolset>
|
|
40
40
|
</PropertyGroup>
|
|
41
41
|
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
42
|
-
<PlatformToolset>
|
|
42
|
+
<PlatformToolset>v145</PlatformToolset>
|
|
43
43
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
44
44
|
</PropertyGroup>
|
|
45
45
|
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
|
|
46
|
-
<PlatformToolset>
|
|
46
|
+
<PlatformToolset>v145</PlatformToolset>
|
|
47
47
|
</PropertyGroup>
|
|
48
48
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
49
49
|
<ImportGroup Label="ExtensionSettings">
|
|
@@ -104,14 +104,14 @@
|
|
|
104
104
|
</ItemDefinitionGroup>
|
|
105
105
|
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
|
|
106
106
|
<ClCompile>
|
|
107
|
-
<AdditionalIncludeDirectories>C:\msys64\usr\local\ruby-
|
|
107
|
+
<AdditionalIncludeDirectories>C:\msys64\usr\local\ruby-4.0.1-mswin\include\ruby-4.0.0\x64-mswin64_140;C:\msys64\usr\local\ruby-4.0.1-mswin\include\ruby-4.0.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
108
108
|
<Optimization>Disabled</Optimization>
|
|
109
109
|
<PreprocessorDefinitions>%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
110
110
|
<WarningLevel>Level3</WarningLevel>
|
|
111
111
|
</ClCompile>
|
|
112
112
|
<Link>
|
|
113
|
-
<AdditionalLibraryDirectories>C:\msys64\usr\local\ruby-
|
|
114
|
-
<AdditionalDependencies>x64-vcruntime140-
|
|
113
|
+
<AdditionalLibraryDirectories>C:\msys64\usr\local\ruby-4.0.1-mswin\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
|
114
|
+
<AdditionalDependencies>x64-vcruntime140-ruby400.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
115
115
|
<ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
|
|
116
116
|
<SubSystem>Console</SubSystem>
|
|
117
117
|
</Link>
|
|
@@ -144,7 +144,6 @@
|
|
|
144
144
|
<ClCompile Include="..\rp_call_trees.c" />
|
|
145
145
|
<ClCompile Include="..\rp_measurement.c" />
|
|
146
146
|
<ClCompile Include="..\rp_measure_allocations.c" />
|
|
147
|
-
<ClCompile Include="..\rp_measure_memory.c" />
|
|
148
147
|
<ClCompile Include="..\rp_measure_process_time.c" />
|
|
149
148
|
<ClCompile Include="..\rp_measure_wall_time.c" />
|
|
150
149
|
<ClCompile Include="..\rp_method.c" />
|