ruby-prof 1.4.5 → 1.5.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 +6 -0
- data/Rakefile +1 -1
- data/ext/ruby_prof/rp_allocation.c +4 -4
- data/ext/ruby_prof/rp_call_tree.c +126 -36
- data/ext/ruby_prof/rp_call_tree.h +2 -1
- data/ext/ruby_prof/rp_call_trees.c +15 -7
- data/ext/ruby_prof/rp_measurement.c +139 -19
- data/ext/ruby_prof/rp_measurement.h +3 -0
- data/ext/ruby_prof/rp_method.c +58 -6
- data/ext/ruby_prof/rp_method.h +1 -1
- data/ext/ruby_prof/rp_profile.c +36 -3
- data/ext/ruby_prof/rp_thread.c +61 -13
- data/ext/ruby_prof/rp_thread.h +1 -1
- data/ext/ruby_prof/ruby_prof.c +0 -2
- data/ext/ruby_prof/ruby_prof.h +8 -0
- data/ext/ruby_prof/vc/ruby_prof.vcxproj +4 -6
- data/lib/ruby-prof/method_info.rb +8 -1
- data/lib/ruby-prof/printers/call_tree_printer.rb +0 -2
- data/lib/ruby-prof/profile.rb +34 -1
- data/lib/ruby-prof/version.rb +1 -1
- data/test/call_tree_builder.rb +126 -0
- data/test/call_tree_test.rb +197 -0
- data/test/call_trees_test.rb +4 -4
- data/test/fiber_test.rb +123 -1
- data/test/gc_test.rb +9 -7
- data/test/line_number_test.rb +36 -60
- data/test/measurement_test.rb +82 -0
- data/test/method_info_test.rb +95 -0
- data/test/profile_test.rb +85 -0
- data/test/recursive_test.rb +1 -1
- data/test/scheduler.rb +354 -0
- data/test/thread_test.rb +28 -2
- metadata +9 -6
- data/ext/ruby_prof/rp_aggregate_call_tree.c +0 -59
- data/ext/ruby_prof/rp_aggregate_call_tree.h +0 -13
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby-prof
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|
@@ -60,8 +60,6 @@ files:
|
|
60
60
|
- bin/ruby-prof
|
61
61
|
- bin/ruby-prof-check-trace
|
62
62
|
- ext/ruby_prof/extconf.rb
|
63
|
-
- ext/ruby_prof/rp_aggregate_call_tree.c
|
64
|
-
- ext/ruby_prof/rp_aggregate_call_tree.h
|
65
63
|
- ext/ruby_prof/rp_allocation.c
|
66
64
|
- ext/ruby_prof/rp_allocation.h
|
67
65
|
- ext/ruby_prof/rp_call_tree.c
|
@@ -115,6 +113,8 @@ files:
|
|
115
113
|
- test/abstract_printer_test.rb
|
116
114
|
- test/alias_test.rb
|
117
115
|
- test/basic_test.rb
|
116
|
+
- test/call_tree_builder.rb
|
117
|
+
- test/call_tree_test.rb
|
118
118
|
- test/call_tree_visitor_test.rb
|
119
119
|
- test/call_trees_test.rb
|
120
120
|
- test/duplicate_names_test.rb
|
@@ -134,6 +134,8 @@ files:
|
|
134
134
|
- test/measure_process_time_test.rb
|
135
135
|
- test/measure_times.rb
|
136
136
|
- test/measure_wall_time_test.rb
|
137
|
+
- test/measurement_test.rb
|
138
|
+
- test/method_info_test.rb
|
137
139
|
- test/multi_printer_test.rb
|
138
140
|
- test/no_method_class_test.rb
|
139
141
|
- test/pause_resume_test.rb
|
@@ -149,6 +151,7 @@ files:
|
|
149
151
|
- test/profile_test.rb
|
150
152
|
- test/rack_test.rb
|
151
153
|
- test/recursive_test.rb
|
154
|
+
- test/scheduler.rb
|
152
155
|
- test/singleton_test.rb
|
153
156
|
- test/stack_printer_test.rb
|
154
157
|
- test/start_stop_test.rb
|
@@ -163,7 +166,7 @@ metadata:
|
|
163
166
|
bug_tracker_uri: https://github.com/ruby-prof/ruby-prof/issues
|
164
167
|
changelog_uri: https://github.com/ruby-prof/ruby-prof/blob/master/CHANGES
|
165
168
|
documentation_uri: https://ruby-prof.github.io/
|
166
|
-
source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.
|
169
|
+
source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.5.0
|
167
170
|
post_install_message:
|
168
171
|
rdoc_options: []
|
169
172
|
require_paths:
|
@@ -179,7 +182,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
182
|
- !ruby/object:Gem::Version
|
180
183
|
version: '0'
|
181
184
|
requirements: []
|
182
|
-
rubygems_version: 3.4.
|
185
|
+
rubygems_version: 3.4.6
|
183
186
|
signing_key:
|
184
187
|
specification_version: 4
|
185
188
|
summary: Fast Ruby profiler
|
@@ -1,59 +0,0 @@
|
|
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
|
-
#include "rp_aggregate_call_tree.h"
|
5
|
-
|
6
|
-
VALUE cRpAggregateCallTree;
|
7
|
-
|
8
|
-
void prof_aggregate_call_tree_mark(void* data)
|
9
|
-
{
|
10
|
-
prof_call_tree_t* call_tree = (prof_call_tree_t*)data;
|
11
|
-
|
12
|
-
if (call_tree->object != Qnil)
|
13
|
-
rb_gc_mark(call_tree->object);
|
14
|
-
|
15
|
-
if (call_tree->source_file != Qnil)
|
16
|
-
rb_gc_mark(call_tree->source_file);
|
17
|
-
|
18
|
-
prof_measurement_mark(call_tree->measurement);
|
19
|
-
}
|
20
|
-
|
21
|
-
static void prof_aggregate_call_tree_ruby_gc_free(void* data)
|
22
|
-
{
|
23
|
-
prof_call_tree_t* call_tree = (prof_call_tree_t*)data;
|
24
|
-
prof_call_tree_free(call_tree);
|
25
|
-
}
|
26
|
-
|
27
|
-
size_t prof_aggregate_call_tree_size(const void* data)
|
28
|
-
{
|
29
|
-
return sizeof(prof_call_tree_t);
|
30
|
-
}
|
31
|
-
|
32
|
-
static const rb_data_type_t aggregate_call_tree_type =
|
33
|
-
{
|
34
|
-
.wrap_struct_name = "Aggregate_CallTree",
|
35
|
-
.function =
|
36
|
-
{
|
37
|
-
.dmark = prof_aggregate_call_tree_mark,
|
38
|
-
.dfree = prof_aggregate_call_tree_ruby_gc_free,
|
39
|
-
.dsize = prof_aggregate_call_tree_size,
|
40
|
-
},
|
41
|
-
.data = NULL,
|
42
|
-
.flags = RUBY_TYPED_FREE_IMMEDIATELY
|
43
|
-
};
|
44
|
-
|
45
|
-
VALUE prof_aggregate_call_tree_wrap(prof_call_tree_t* call_tree)
|
46
|
-
{
|
47
|
-
if (call_tree->object == Qnil)
|
48
|
-
{
|
49
|
-
call_tree->object = TypedData_Wrap_Struct(cRpAggregateCallTree, &aggregate_call_tree_type, call_tree);
|
50
|
-
}
|
51
|
-
return call_tree->object;
|
52
|
-
}
|
53
|
-
|
54
|
-
void rp_init_aggregate_call_tree()
|
55
|
-
{
|
56
|
-
// AggregateCallTree
|
57
|
-
cRpAggregateCallTree = rb_define_class_under(mProf, "AggregateCallTree", cRpCallTree);
|
58
|
-
rb_undef_method(CLASS_OF(cRpAggregateCallTree), "new");
|
59
|
-
}
|
@@ -1,13 +0,0 @@
|
|
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 __RP_AGGREGATE_CALL_TREE_H__
|
5
|
-
#define __RP_AGGREGATE_CALL_TREE_H__
|
6
|
-
|
7
|
-
#include "ruby_prof.h"
|
8
|
-
#include "rp_call_tree.h"
|
9
|
-
|
10
|
-
void rp_init_aggregate_call_tree(void);
|
11
|
-
VALUE prof_aggregate_call_tree_wrap(prof_call_tree_t* call_tree);
|
12
|
-
|
13
|
-
#endif //__RP_AGGREGATE_CALL_TREE_H__
|