ruby-prof 0.11.3 → 0.12.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +27 -0
- data/README.rdoc +14 -14
- data/bin/ruby-prof +275 -266
- data/ext/ruby_prof/rp_call_info.c +33 -24
- data/ext/ruby_prof/rp_call_info.h +2 -1
- data/ext/ruby_prof/rp_measure.c +1 -1
- data/ext/ruby_prof/rp_measure.h +1 -1
- data/ext/ruby_prof/rp_measure_allocations.c +1 -1
- data/ext/ruby_prof/rp_measure_cpu_time.c +1 -1
- data/ext/ruby_prof/rp_measure_gc_runs.c +1 -1
- data/ext/ruby_prof/rp_measure_gc_time.c +1 -1
- data/ext/ruby_prof/rp_measure_memory.c +1 -1
- data/ext/ruby_prof/rp_measure_process_time.c +2 -2
- data/ext/ruby_prof/rp_measure_wall_time.c +2 -2
- data/ext/ruby_prof/rp_method.c +11 -24
- data/ext/ruby_prof/rp_method.h +2 -3
- data/ext/ruby_prof/rp_stack.c +48 -7
- data/ext/ruby_prof/rp_stack.h +3 -3
- data/ext/ruby_prof/rp_thread.c +26 -17
- data/ext/ruby_prof/rp_thread.h +3 -3
- data/ext/ruby_prof/ruby_prof.c +7 -86
- data/ext/ruby_prof/ruby_prof.h +1 -1
- data/ext/ruby_prof/vc/ruby_prof.sln +12 -6
- data/ext/ruby_prof/vc/ruby_prof_18.vcxproj +110 -0
- data/ext/ruby_prof/vc/{ruby_prof.vcxproj → ruby_prof_19.vcxproj} +4 -1
- data/ext/ruby_prof/vc/ruby_prof_20.vcxproj +112 -0
- data/ext/ruby_prof/version.h +4 -4
- data/lib/ruby-prof.rb +1 -0
- data/lib/ruby-prof/call_info.rb +1 -1
- data/lib/ruby-prof/call_info_visitor.rb +4 -2
- data/lib/ruby-prof/compatibility.rb +6 -1
- data/lib/ruby-prof/method_info.rb +1 -1
- data/lib/ruby-prof/printers/call_info_printer.rb +1 -1
- data/lib/ruby-prof/printers/call_stack_printer.rb +3 -3
- data/lib/ruby-prof/printers/dot_printer.rb +1 -1
- data/lib/ruby-prof/printers/flat_printer.rb +4 -4
- data/lib/ruby-prof/printers/flat_printer_with_line_numbers.rb +2 -2
- data/lib/ruby-prof/printers/graph_html_printer.rb +3 -3
- data/lib/ruby-prof/printers/graph_printer.rb +15 -15
- data/lib/ruby-prof/thread.rb +22 -0
- data/ruby-prof.gemspec +2 -1
- data/test/basic_test.rb +77 -45
- data/test/call_info_test.rb +78 -0
- data/test/call_info_visitor_test.rb +1 -1
- data/test/dynamic_method_test.rb +14 -8
- data/test/measure_cpu_time_test.rb +23 -12
- data/test/measure_process_time_test.rb +21 -170
- data/test/measure_wall_time_test.rb +59 -13
- data/test/method_elimination_test.rb +30 -19
- data/test/pause_resume_test.rb +129 -22
- data/test/prime.rb +0 -1
- data/test/printers_test.rb +7 -18
- data/test/recursive_test.rb +4 -48
- data/test/test_helper.rb +30 -10
- data/test/test_suite.rb +1 -2
- metadata +23 -5
- data/test/pause_test.rb +0 -57
- data/test/prime_test.rb +0 -13
data/ext/ruby_prof/rp_thread.h
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Copyright (C) 2005-
|
1
|
+
/* Copyright (C) 2005-2013 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
4
|
#ifndef __RP_THREAD__
|
@@ -12,7 +12,6 @@ typedef struct
|
|
12
12
|
VALUE thread_id; /* Thread id */
|
13
13
|
st_table* method_table; /* Methods called in the thread */
|
14
14
|
prof_stack_t* stack; /* Stack of frames */
|
15
|
-
prof_method_t* top; /* The top method called in this thread */
|
16
15
|
} thread_data_t;
|
17
16
|
|
18
17
|
void rp_init_thread();
|
@@ -21,6 +20,7 @@ thread_data_t* switch_thread(void* prof, VALUE thread_id);
|
|
21
20
|
void threads_table_free(st_table *table);
|
22
21
|
VALUE prof_thread_wrap(thread_data_t *thread);
|
23
22
|
void prof_thread_mark(thread_data_t *thread);
|
24
|
-
|
23
|
+
int pause_thread(st_data_t key, st_data_t value, st_data_t data);
|
24
|
+
int unpause_thread(st_data_t key, st_data_t value, st_data_t data);
|
25
25
|
|
26
26
|
#endif //__RP_THREAD__
|
data/ext/ruby_prof/ruby_prof.c
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Copyright (C) 2005-
|
1
|
+
/* Copyright (C) 2005-2013 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
4
|
/* ruby-prof tracks the time spent executing every method in ruby programming.
|
@@ -116,80 +116,24 @@ static prof_method_t*
|
|
116
116
|
|
117
117
|
method = create_method(event, klass, mid, source_file, line);
|
118
118
|
method_table_insert(thread_data->method_table, method->key, method);
|
119
|
-
|
120
|
-
/* Is this the first method added to the thread? */
|
121
|
-
if (!thread_data->top)
|
122
|
-
thread_data->top = method;
|
123
119
|
}
|
124
120
|
return method;
|
125
121
|
}
|
126
122
|
|
127
|
-
static prof_frame_t*
|
128
|
-
pop_frame(prof_profile_t* profile, thread_data_t *thread_data)
|
129
|
-
{
|
130
|
-
prof_frame_t *frame = NULL;
|
131
|
-
prof_frame_t* parent_frame = NULL;
|
132
|
-
prof_call_info_t *call_info;
|
133
|
-
double measurement = profile->measurer->measure();
|
134
|
-
double total_time;
|
135
|
-
double self_time;
|
136
|
-
#ifdef _MSC_VER
|
137
|
-
BOOL frame_paused;
|
138
|
-
#else
|
139
|
-
_Bool frame_paused;
|
140
|
-
#endif
|
141
|
-
|
142
|
-
frame = prof_stack_pop(thread_data->stack); // only time it's called
|
143
|
-
|
144
|
-
/* Frame can be null. This can happen if RubProf.start is called from
|
145
|
-
a method that exits. And it can happen if an exception is raised
|
146
|
-
in code that is being profiled and the stack unwinds (RubyProf is
|
147
|
-
not notified of that by the ruby runtime. */
|
148
|
-
if (frame == NULL)
|
149
|
-
return NULL;
|
150
|
-
|
151
|
-
/* Calculate the total time this method took */
|
152
|
-
frame_paused = prof_frame_is_paused(frame);
|
153
|
-
prof_frame_unpause(frame, measurement);
|
154
|
-
total_time = measurement - frame->start_time - frame->dead_time;
|
155
|
-
self_time = total_time - frame->child_time - frame->wait_time;
|
156
|
-
|
157
|
-
/* Update information about the current method */
|
158
|
-
call_info = frame->call_info;
|
159
|
-
call_info->called++;
|
160
|
-
call_info->total_time += total_time;
|
161
|
-
call_info->self_time += self_time;
|
162
|
-
call_info->wait_time += frame->wait_time;
|
163
|
-
|
164
|
-
parent_frame = prof_stack_peek(thread_data->stack);
|
165
|
-
if (parent_frame)
|
166
|
-
{
|
167
|
-
parent_frame->child_time += total_time;
|
168
|
-
parent_frame->dead_time += frame->dead_time;
|
169
|
-
|
170
|
-
// Repause parent if currently paused
|
171
|
-
if (frame_paused)
|
172
|
-
prof_frame_pause(parent_frame, measurement);
|
173
|
-
|
174
|
-
call_info->line = parent_frame->line;
|
175
|
-
}
|
176
|
-
|
177
|
-
return frame;
|
178
|
-
}
|
179
|
-
|
180
123
|
static int
|
181
124
|
pop_frames(st_data_t key, st_data_t value, st_data_t data)
|
182
125
|
{
|
183
126
|
VALUE thread_id = (VALUE)key;
|
184
127
|
thread_data_t* thread_data = (thread_data_t *) value;
|
185
128
|
prof_profile_t* profile = (prof_profile_t*) data;
|
129
|
+
double measurement = profile->measurer->measure();
|
186
130
|
|
187
131
|
if (!profile->last_thread_data || profile->last_thread_data->thread_id != thread_id)
|
188
132
|
thread_data = switch_thread(profile, thread_id);
|
189
133
|
else
|
190
134
|
thread_data = profile->last_thread_data;
|
191
135
|
|
192
|
-
while (
|
136
|
+
while (prof_stack_pop(thread_data->stack, measurement))
|
193
137
|
{
|
194
138
|
}
|
195
139
|
|
@@ -280,7 +224,8 @@ prof_event_hook(rb_event_flag_t event, NODE *node, VALUE self, ID mid, VALUE kla
|
|
280
224
|
/* Special case - skip any methods from the mProf
|
281
225
|
module or cProfile class since they clutter
|
282
226
|
the results but aren't important to them results. */
|
283
|
-
if (self == mProf || klass == cProfile)
|
227
|
+
if (self == mProf || klass == cProfile)
|
228
|
+
return;
|
284
229
|
|
285
230
|
/* Get the current thread information. */
|
286
231
|
thread = rb_thread_current();
|
@@ -354,19 +299,17 @@ prof_event_hook(rb_event_flag_t event, NODE *node, VALUE self, ID mid, VALUE kla
|
|
354
299
|
}
|
355
300
|
|
356
301
|
/* Push a new frame onto the stack for a new c-call or ruby call (into a method) */
|
357
|
-
frame = prof_stack_push(thread_data->stack);
|
302
|
+
frame = prof_stack_push(thread_data->stack, measurement);
|
358
303
|
frame->call_info = call_info;
|
359
304
|
frame->call_info->depth = frame->depth;
|
360
|
-
frame->start_time = measurement;
|
361
305
|
frame->pause_time = profile->paused == Qtrue ? measurement : -1;
|
362
|
-
frame->dead_time = 0;
|
363
306
|
frame->line = rb_sourceline();
|
364
307
|
break;
|
365
308
|
}
|
366
309
|
case RUBY_EVENT_RETURN:
|
367
310
|
case RUBY_EVENT_C_RETURN:
|
368
311
|
{
|
369
|
-
|
312
|
+
prof_stack_pop(thread_data->stack, measurement);
|
370
313
|
break;
|
371
314
|
}
|
372
315
|
}
|
@@ -517,28 +460,6 @@ prof_initialize(int argc, VALUE *argv, VALUE self)
|
|
517
460
|
return self;
|
518
461
|
}
|
519
462
|
|
520
|
-
static int pause_thread(st_data_t key, st_data_t value, st_data_t data)
|
521
|
-
{
|
522
|
-
thread_data_t* thread_data = (thread_data_t *) value;
|
523
|
-
prof_profile_t* profile = (prof_profile_t*) data;
|
524
|
-
|
525
|
-
prof_frame_t* frame = prof_stack_peek(thread_data->stack);
|
526
|
-
prof_frame_pause(frame, profile->measurement_at_pause_resume);
|
527
|
-
|
528
|
-
return ST_CONTINUE;
|
529
|
-
}
|
530
|
-
|
531
|
-
static int unpause_thread(st_data_t key, st_data_t value, st_data_t data)
|
532
|
-
{
|
533
|
-
thread_data_t* thread_data = (thread_data_t *) value;
|
534
|
-
prof_profile_t* profile = (prof_profile_t*) data;
|
535
|
-
|
536
|
-
prof_frame_t* frame = prof_stack_peek(thread_data->stack);
|
537
|
-
prof_frame_unpause(frame, profile->measurement_at_pause_resume);
|
538
|
-
|
539
|
-
return ST_CONTINUE;
|
540
|
-
}
|
541
|
-
|
542
463
|
/* call-seq:
|
543
464
|
paused? -> boolean
|
544
465
|
|
data/ext/ruby_prof/ruby_prof.h
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
/* Copyright (C) 2005-
|
1
|
+
/* Copyright (C) 2005-2013 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
4
|
#ifndef __RUBY_PROF_H__
|
@@ -1,24 +1,30 @@
|
|
1
1
|
|
2
2
|
Microsoft Visual Studio Solution File, Format Version 11.00
|
3
3
|
# Visual Studio 2010
|
4
|
-
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof", "ruby_prof.vcxproj", "{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}"
|
5
|
-
EndProject
|
6
4
|
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ruby_prof_18", "ruby_prof_18.vcxproj", "{7789FC23-D053-4733-9ED1-D6CE099E1237}"
|
7
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}"
|
9
|
+
EndProject
|
8
10
|
Global
|
9
11
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
10
12
|
Debug|Win32 = Debug|Win32
|
11
13
|
Release|Win32 = Release|Win32
|
12
14
|
EndGlobalSection
|
13
15
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
14
|
-
{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Debug|Win32.ActiveCfg = Debug|Win32
|
15
|
-
{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Debug|Win32.Build.0 = Debug|Win32
|
16
|
-
{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Release|Win32.ActiveCfg = Release|Win32
|
17
|
-
{5AF7F29A-B100-4D61-95DA-DB21D7C8C1B8}.Release|Win32.Build.0 = Release|Win32
|
18
16
|
{7789FC23-D053-4733-9ED1-D6CE099E1237}.Debug|Win32.ActiveCfg = Debug|Win32
|
19
17
|
{7789FC23-D053-4733-9ED1-D6CE099E1237}.Debug|Win32.Build.0 = Debug|Win32
|
20
18
|
{7789FC23-D053-4733-9ED1-D6CE099E1237}.Release|Win32.ActiveCfg = Release|Win32
|
21
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
|
22
28
|
EndGlobalSection
|
23
29
|
GlobalSection(SolutionProperties) = preSolution
|
24
30
|
HideSolutionNode = FALSE
|
@@ -0,0 +1,110 @@
|
|
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
|
+
<PlatformToolset>v110</PlatformToolset>
|
48
|
+
</PropertyGroup>
|
49
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
50
|
+
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
51
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
52
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
53
|
+
<CharacterSet>Unicode</CharacterSet>
|
54
|
+
<PlatformToolset>v110</PlatformToolset>
|
55
|
+
</PropertyGroup>
|
56
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
57
|
+
<ImportGroup Label="ExtensionSettings">
|
58
|
+
</ImportGroup>
|
59
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
60
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
61
|
+
</ImportGroup>
|
62
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
63
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
64
|
+
</ImportGroup>
|
65
|
+
<PropertyGroup Label="UserMacros" />
|
66
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
67
|
+
<LinkIncremental>true</LinkIncremental>
|
68
|
+
<OutDir>C:\MinGW\local\src\ruby-prof\lib\1.8</OutDir>
|
69
|
+
<TargetExt>.so</TargetExt>
|
70
|
+
<TargetName>ruby_prof</TargetName>
|
71
|
+
</PropertyGroup>
|
72
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
73
|
+
<LinkIncremental>false</LinkIncremental>
|
74
|
+
</PropertyGroup>
|
75
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
76
|
+
<ClCompile>
|
77
|
+
<PrecompiledHeader>NotUsing</PrecompiledHeader>
|
78
|
+
<WarningLevel>Level3</WarningLevel>
|
79
|
+
<Optimization>Disabled</Optimization>
|
80
|
+
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;RUBY_PROF_18_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
81
|
+
<AdditionalIncludeDirectories>C:\MinGW\local\ruby187vc\lib\ruby\1.8\i386-mswin32_100</AdditionalIncludeDirectories>
|
82
|
+
</ClCompile>
|
83
|
+
<Link>
|
84
|
+
<SubSystem>Windows</SubSystem>
|
85
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
86
|
+
<AdditionalLibraryDirectories>C:\MinGW\local\ruby187vc\lib</AdditionalLibraryDirectories>
|
87
|
+
<AdditionalDependencies>msvcr100-ruby18.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
88
|
+
<ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
|
89
|
+
</Link>
|
90
|
+
</ItemDefinitionGroup>
|
91
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
92
|
+
<ClCompile>
|
93
|
+
<WarningLevel>Level3</WarningLevel>
|
94
|
+
<PrecompiledHeader>Use</PrecompiledHeader>
|
95
|
+
<Optimization>MaxSpeed</Optimization>
|
96
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
97
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
98
|
+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;RUBY_PROF_18_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
99
|
+
</ClCompile>
|
100
|
+
<Link>
|
101
|
+
<SubSystem>Windows</SubSystem>
|
102
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
103
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
104
|
+
<OptimizeReferences>true</OptimizeReferences>
|
105
|
+
</Link>
|
106
|
+
</ItemDefinitionGroup>
|
107
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
108
|
+
<ImportGroup Label="ExtensionTargets">
|
109
|
+
</ImportGroup>
|
110
|
+
</Project>
|
@@ -20,12 +20,14 @@
|
|
20
20
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
21
21
|
<UseDebugLibraries>true</UseDebugLibraries>
|
22
22
|
<CharacterSet>Unicode</CharacterSet>
|
23
|
+
<PlatformToolset>v110</PlatformToolset>
|
23
24
|
</PropertyGroup>
|
24
25
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
25
26
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
26
27
|
<UseDebugLibraries>false</UseDebugLibraries>
|
27
28
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
28
29
|
<CharacterSet>Unicode</CharacterSet>
|
30
|
+
<PlatformToolset>v110</PlatformToolset>
|
29
31
|
</PropertyGroup>
|
30
32
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
31
33
|
<ImportGroup Label="ExtensionSettings">
|
@@ -41,6 +43,7 @@
|
|
41
43
|
<LinkIncremental>true</LinkIncremental>
|
42
44
|
<OutDir>..\..\..\lib\1.9</OutDir>
|
43
45
|
<TargetExt>.so</TargetExt>
|
46
|
+
<TargetName>ruby_prof</TargetName>
|
44
47
|
</PropertyGroup>
|
45
48
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
46
49
|
<LinkIncremental>false</LinkIncremental>
|
@@ -52,7 +55,7 @@
|
|
52
55
|
<WarningLevel>Level3</WarningLevel>
|
53
56
|
<Optimization>Disabled</Optimization>
|
54
57
|
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;RUBY_PROF_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
55
|
-
<AdditionalIncludeDirectories>C:\MinGW\local\ruby193vc\include\ruby-1.9.1;C:\MinGW\local\ruby193vc\include\ruby-1.9.1\i386-
|
58
|
+
<AdditionalIncludeDirectories>C:\MinGW\local\ruby193vc\include\ruby-1.9.1;C:\MinGW\local\ruby193vc\include\ruby-1.9.1\i386-mswin32_110;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
56
59
|
</ClCompile>
|
57
60
|
<Link>
|
58
61
|
<SubSystem>Windows</SubSystem>
|
@@ -0,0 +1,112 @@
|
|
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>{6B4978F4-3B5F-4D38-81A8-069EC28CC069}</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
|
+
<PlatformToolset>v110</PlatformToolset>
|
24
|
+
</PropertyGroup>
|
25
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
|
26
|
+
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
27
|
+
<UseDebugLibraries>false</UseDebugLibraries>
|
28
|
+
<WholeProgramOptimization>true</WholeProgramOptimization>
|
29
|
+
<CharacterSet>Unicode</CharacterSet>
|
30
|
+
<PlatformToolset>v110</PlatformToolset>
|
31
|
+
</PropertyGroup>
|
32
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
33
|
+
<ImportGroup Label="ExtensionSettings">
|
34
|
+
</ImportGroup>
|
35
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
36
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
37
|
+
</ImportGroup>
|
38
|
+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
39
|
+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
40
|
+
</ImportGroup>
|
41
|
+
<PropertyGroup Label="UserMacros" />
|
42
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
43
|
+
<LinkIncremental>true</LinkIncremental>
|
44
|
+
<OutDir>..\..\..\lib\2.0</OutDir>
|
45
|
+
<TargetExt>.so</TargetExt>
|
46
|
+
<TargetName>ruby_prof</TargetName>
|
47
|
+
</PropertyGroup>
|
48
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
49
|
+
<LinkIncremental>false</LinkIncremental>
|
50
|
+
</PropertyGroup>
|
51
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
|
52
|
+
<ClCompile>
|
53
|
+
<PrecompiledHeader>
|
54
|
+
</PrecompiledHeader>
|
55
|
+
<WarningLevel>Level3</WarningLevel>
|
56
|
+
<Optimization>Disabled</Optimization>
|
57
|
+
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;RUBY_PROF_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
58
|
+
<AdditionalIncludeDirectories>C:\MinGW\local\ruby200vc\include\ruby-2.0.0;C:\MinGW\local\ruby200vc\include\ruby-2.0.0\i386-mswin32_110;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
59
|
+
</ClCompile>
|
60
|
+
<Link>
|
61
|
+
<SubSystem>Windows</SubSystem>
|
62
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
63
|
+
<AdditionalLibraryDirectories>C:\MinGW\local\ruby200vc\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
|
64
|
+
<AdditionalDependencies>msvcr100-ruby200.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>
|
65
|
+
<ModuleDefinitionFile>ruby_prof.def</ModuleDefinitionFile>
|
66
|
+
</Link>
|
67
|
+
</ItemDefinitionGroup>
|
68
|
+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
|
69
|
+
<ClCompile>
|
70
|
+
<WarningLevel>Level3</WarningLevel>
|
71
|
+
<PrecompiledHeader>
|
72
|
+
</PrecompiledHeader>
|
73
|
+
<Optimization>MaxSpeed</Optimization>
|
74
|
+
<FunctionLevelLinking>true</FunctionLevelLinking>
|
75
|
+
<IntrinsicFunctions>true</IntrinsicFunctions>
|
76
|
+
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;RUBY_PROF_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
77
|
+
</ClCompile>
|
78
|
+
<Link>
|
79
|
+
<SubSystem>Windows</SubSystem>
|
80
|
+
<GenerateDebugInformation>true</GenerateDebugInformation>
|
81
|
+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
82
|
+
<OptimizeReferences>true</OptimizeReferences>
|
83
|
+
</Link>
|
84
|
+
</ItemDefinitionGroup>
|
85
|
+
<ItemGroup>
|
86
|
+
<ClInclude Include="..\rp_call_info.h" />
|
87
|
+
<ClInclude Include="..\rp_measure.h" />
|
88
|
+
<ClInclude Include="..\rp_method.h" />
|
89
|
+
<ClInclude Include="..\rp_stack.h" />
|
90
|
+
<ClInclude Include="..\rp_thread.h" />
|
91
|
+
<ClInclude Include="..\ruby_prof.h" />
|
92
|
+
<ClInclude Include="..\version.h" />
|
93
|
+
</ItemGroup>
|
94
|
+
<ItemGroup>
|
95
|
+
<ClCompile Include="..\rp_call_info.c" />
|
96
|
+
<ClCompile Include="..\rp_measure.c" />
|
97
|
+
<ClCompile Include="..\rp_measure_allocations.c" />
|
98
|
+
<ClCompile Include="..\rp_measure_cpu_time.c" />
|
99
|
+
<ClCompile Include="..\rp_measure_gc_runs.c" />
|
100
|
+
<ClCompile Include="..\rp_measure_gc_time.c" />
|
101
|
+
<ClCompile Include="..\rp_measure_memory.c" />
|
102
|
+
<ClCompile Include="..\rp_measure_process_time.c" />
|
103
|
+
<ClCompile Include="..\rp_measure_wall_time.c" />
|
104
|
+
<ClCompile Include="..\rp_method.c" />
|
105
|
+
<ClCompile Include="..\rp_stack.c" />
|
106
|
+
<ClCompile Include="..\rp_thread.c" />
|
107
|
+
<ClCompile Include="..\ruby_prof.c" />
|
108
|
+
</ItemGroup>
|
109
|
+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
110
|
+
<ImportGroup Label="ExtensionTargets">
|
111
|
+
</ImportGroup>
|
112
|
+
</Project>
|