perftools.rb 0.3.5 → 0.3.6
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.
- data/patches/perftools.patch +20 -5
- data/perftools.rb.gemspec +2 -2
- metadata +3 -3
data/patches/perftools.patch
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
commit 4ba520684b8171488971ba2039730122a0bc7faf
|
2
|
+
Author: Aman Gupta <aman@tmm1.net>
|
3
|
+
Date: Mon Oct 26 16:10:31 2009 -0700
|
4
|
+
|
5
|
+
perftools
|
6
|
+
|
1
7
|
diff --git a/Makefile.in b/Makefile.in
|
2
8
|
index 232d2ec..566d77c 100644
|
3
9
|
--- a/Makefile.in
|
@@ -43,7 +49,7 @@ index e658d30..370d012 100644
|
|
43
49
|
|
44
50
|
ProfileHandlerToken* ProfileHandler::RegisterCallback(
|
45
51
|
diff --git a/src/profiledata.cc b/src/profiledata.cc
|
46
|
-
index 5f2531b..
|
52
|
+
index 5f2531b..ea95493 100644
|
47
53
|
--- a/src/profiledata.cc
|
48
54
|
+++ b/src/profiledata.cc
|
49
55
|
@@ -56,6 +56,19 @@ const int ProfileData::kAssociativity;
|
@@ -122,14 +128,23 @@ index 5f2531b..e6240d9 100644
|
|
122
128
|
start_time_ = time(NULL);
|
123
129
|
fname_ = strdup(fname);
|
124
130
|
|
125
|
-
@@ -166,16 +203,
|
131
|
+
@@ -166,16 +203,61 @@ void ProfileData::Stop() {
|
126
132
|
return;
|
127
133
|
}
|
128
134
|
|
129
135
|
+#ifdef BUILD_FOR_RUBY
|
130
136
|
+ FILE *symbols;
|
137
|
+
+ int precision;
|
138
|
+
+
|
131
139
|
+ symbols = fopen(sym_fname_, "w");
|
132
|
-
+
|
140
|
+
+ if (!symbols) {
|
141
|
+
+ fprintf(stderr, "PROFILER ERROR: Unable to open %s (%s)\n", sym_fname_, strerror(errno));
|
142
|
+
+ Reset();
|
143
|
+
+ return;
|
144
|
+
+ }
|
145
|
+
+
|
146
|
+
+ precision = sizeof(unsigned long)*2;
|
147
|
+
+ fprintf(symbols, "%0*lx: garbage_collector\n", precision, (ID)rb_gc);
|
133
148
|
+
|
134
149
|
+ std::set<ID> known_symbols;
|
135
150
|
+#endif
|
@@ -152,7 +167,7 @@ index 5f2531b..e6240d9 100644
|
|
152
167
|
+ ID sym = self + klass + method; // unique identifer
|
153
168
|
+
|
154
169
|
+ if (known_symbols.find(sym) == known_symbols.end()) {
|
155
|
-
+ fprintf(symbols, "%0*lx: ",
|
170
|
+
+ fprintf(symbols, "%0*lx: ", precision, sym);
|
156
171
|
+
|
157
172
|
+ if (self) { // class method
|
158
173
|
+ fprintf(symbols, "%s.%s\n", rb_class2name(self), rb_id2name(method));
|
@@ -176,7 +191,7 @@ index 5f2531b..e6240d9 100644
|
|
176
191
|
if (num_evicted_ + 3 > kBufferLength) {
|
177
192
|
// Ensure there is enough room for end of data marker
|
178
193
|
FlushEvicted();
|
179
|
-
@@ -211,6 +
|
194
|
+
@@ -211,6 +293,10 @@ void ProfileData::Reset() {
|
180
195
|
num_evicted_ = 0;
|
181
196
|
free(fname_);
|
182
197
|
fname_ = 0;
|
data/perftools.rb.gemspec
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
spec = Gem::Specification.new do |s|
|
2
2
|
s.name = 'perftools.rb'
|
3
|
-
s.version = '0.3.
|
4
|
-
s.date = '2009-10-
|
3
|
+
s.version = '0.3.6'
|
4
|
+
s.date = '2009-10-26'
|
5
5
|
s.rubyforge_project = 'perftools-rb'
|
6
6
|
s.summary = 'google-perftools for ruby code'
|
7
7
|
s.description = 'A sampling profiler for ruby code based on patches to google-perftools'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perftools.rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aman Gupta
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-26 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
@@ -59,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
59
59
|
requirements: []
|
60
60
|
|
61
61
|
rubyforge_project: perftools-rb
|
62
|
-
rubygems_version: 1.3.
|
62
|
+
rubygems_version: 1.3.4
|
63
63
|
signing_key:
|
64
64
|
specification_version: 3
|
65
65
|
summary: google-perftools for ruby code
|