ruby-prof 1.7.0-x64-mingw-ucrt → 1.7.2-x64-mingw-ucrt

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES +12 -0
  3. data/ext/ruby_prof/extconf.rb +23 -22
  4. data/ext/ruby_prof/rp_call_trees.c +296 -296
  5. data/ext/ruby_prof/rp_call_trees.h +28 -28
  6. data/ext/ruby_prof/rp_measure_allocations.c +47 -47
  7. data/ext/ruby_prof/rp_measure_process_time.c +64 -66
  8. data/ext/ruby_prof/rp_measure_wall_time.c +52 -64
  9. data/ext/ruby_prof/rp_method.c +551 -562
  10. data/ext/ruby_prof/rp_stack.c +212 -212
  11. data/ext/ruby_prof/ruby_prof.c +50 -50
  12. data/ext/ruby_prof/ruby_prof.h +3 -2
  13. data/ext/ruby_prof/vc/ruby_prof.vcxproj +3 -3
  14. data/lib/3.4/ruby_prof.so +0 -0
  15. data/lib/ruby-prof/compatibility.rb +113 -113
  16. data/lib/ruby-prof/exclude_common_methods.rb +204 -204
  17. data/lib/ruby-prof/printers/abstract_printer.rb +156 -138
  18. data/lib/ruby-prof/version.rb +3 -3
  19. data/ruby-prof.gemspec +66 -64
  20. data/test/dynamic_method_test.rb +9 -21
  21. data/test/enumerable_test.rb +23 -21
  22. data/test/exclude_methods_test.rb +363 -257
  23. data/test/fiber_test.rb +195 -195
  24. data/test/gc_test.rb +104 -102
  25. data/test/line_number_test.rb +426 -289
  26. data/test/measure_allocations_test.rb +1172 -1081
  27. data/test/measure_memory_test.rb +1193 -1456
  28. data/test/measure_process_time_test.rb +3330 -2477
  29. data/test/measure_wall_time_test.rb +634 -568
  30. data/test/merge_test.rb +146 -146
  31. data/test/method_info_test.rb +100 -95
  32. data/test/printers_test.rb +178 -135
  33. data/test/recursive_test.rb +796 -622
  34. data/test/start_stop_test.rb +4 -4
  35. data/test/test_helper.rb +20 -20
  36. data/test/thread_test.rb +229 -231
  37. data/test/unique_call_path_test.rb +9 -22
  38. data/test/yarv_test.rb +1 -5
  39. metadata +33 -10
  40. data/lib/3.2/ruby_prof.so +0 -0
  41. data/lib/3.3/ruby_prof.so +0 -0
  42. data/test/crash2.rb +0 -144
metadata CHANGED
@@ -1,15 +1,28 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-prof
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.7.0
4
+ version: 1.7.2
5
5
  platform: x64-mingw-ucrt
6
6
  authors:
7
7
  - Shugo Maeda, Charlie Savage, Roger Pack, Stefan Kaes
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-01-07 00:00:00.000000000 Z
10
+ date: 2025-05-21 00:00:00.000000000 Z
12
11
  dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: base64
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - ">="
24
+ - !ruby/object:Gem::Version
25
+ version: '0'
13
26
  - !ruby/object:Gem::Dependency
14
27
  name: minitest
15
28
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +51,20 @@ dependencies:
38
51
  - - ">="
39
52
  - !ruby/object:Gem::Version
40
53
  version: '0'
54
+ - !ruby/object:Gem::Dependency
55
+ name: rdoc
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: '0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - ">="
66
+ - !ruby/object:Gem::Version
67
+ version: '0'
41
68
  description: |
42
69
  ruby-prof is a fast code profiler for Ruby. It is a C extension and
43
70
  therefore is many times faster than the standard Ruby profiler. It
@@ -83,8 +110,7 @@ files:
83
110
  - ext/ruby_prof/ruby_prof.h
84
111
  - ext/ruby_prof/vc/ruby_prof.sln
85
112
  - ext/ruby_prof/vc/ruby_prof.vcxproj
86
- - lib/3.2/ruby_prof.so
87
- - lib/3.3/ruby_prof.so
113
+ - lib/3.4/ruby_prof.so
88
114
  - lib/ruby-prof.rb
89
115
  - lib/ruby-prof/assets/call_stack_printer.html.erb
90
116
  - lib/ruby-prof/assets/call_stack_printer.png
@@ -118,7 +144,6 @@ files:
118
144
  - test/call_tree_visitor_test.rb
119
145
  - test/call_trees_test.rb
120
146
  - test/compatibility_test.rb
121
- - test/crash2.rb
122
147
  - test/duplicate_names_test.rb
123
148
  - test/dynamic_method_test.rb
124
149
  - test/enumerable_test.rb
@@ -169,8 +194,7 @@ metadata:
169
194
  bug_tracker_uri: https://github.com/ruby-prof/ruby-prof/issues
170
195
  changelog_uri: https://github.com/ruby-prof/ruby-prof/blob/master/CHANGES
171
196
  documentation_uri: https://ruby-prof.github.io/
172
- source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.7.0
173
- post_install_message:
197
+ source_code_uri: https://github.com/ruby-prof/ruby-prof/tree/v1.7.2
174
198
  rdoc_options: []
175
199
  require_paths:
176
200
  - lib
@@ -185,8 +209,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
209
  - !ruby/object:Gem::Version
186
210
  version: '0'
187
211
  requirements: []
188
- rubygems_version: 3.5.3
189
- signing_key:
212
+ rubygems_version: 3.6.8
190
213
  specification_version: 4
191
214
  summary: Fast Ruby profiler
192
215
  test_files:
data/lib/3.2/ruby_prof.so DELETED
Binary file
data/lib/3.3/ruby_prof.so DELETED
Binary file
data/test/crash2.rb DELETED
@@ -1,144 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # frozen_string_literal: true
3
-
4
- # This is a benchmark for HTTPS traffic.
5
- # To run against a local server:
6
- # docker run --rm --detach --name httpbin -v /tmp:/tmp -v $PWD/tests/data:/data -e HTTPS_CERT_FILE='/data/127.0.0.1.cert.crt' -e HTTPS_KEY_FILE='/data/127.0.0.1.cert.key' -e PORT='8443' -p 8443:8443 mccutchen/go-httpbin
7
- # Then, run the benchmark:
8
- # benchmarks/httpbin.rb --uri='https://localhost:8443/stream-bytes/102400?chunk_size=1024'
9
- # Finally, stop the server with:
10
- # docker kill httpbin
11
-
12
- #require 'bundler/inline'
13
-
14
- #gemfile do
15
- # source 'https://rubygems.org'
16
-
17
- # gem 'benchmark-ips', require: 'benchmark/ips'
18
- # gem 'ruby-prof', '1.6.3'
19
- # gem 'excon'
20
- #end
21
-
22
- require File.expand_path('../test_helper', __FILE__)
23
-
24
-
25
- require 'openssl'
26
- require 'optparse'
27
- require 'uri'
28
- require 'excon'
29
- require 'benchmark'
30
- require 'benchmark/ips'
31
-
32
- Options = Struct.new(:uri, :profile, :time, :warmup, :iterations, :status)
33
-
34
- options = Options.new(
35
- URI.parse('https://httpbingo.org/stream-bytes/102400?chunk_size=1024'),
36
- false,
37
- 10,
38
- 5,
39
- 2,
40
- 200
41
- )
42
-
43
- OptionParser.new do |opts|
44
- opts.banner = "Usage: ruby #{__FILE__} [options]"
45
-
46
- opts.on('-u URI', '--uri=URI', String, "URI to send requests to (default: #{options.uri})") do |uri|
47
- options.uri = URI.parse(uri)
48
- end
49
-
50
- opts.on('-p', '--[no-]profile', 'Profile the benchmark using Ruby-Prof (defaults to no profiling)') do |profile|
51
- options.profile = profile
52
- end
53
-
54
- opts.on('-t TIME', '--time=TIME', Float, "The number of seconds to run the benchmark to measure performance (default: #{options.time})") do |time|
55
- options.time = time
56
- end
57
-
58
- opts.on('-w WARMUP', '--warmup=WARMUP', Float, "The number of seconds to warmup the benchmark for before measuring (default: #{options.warmup})") do |warmup|
59
- options.warmup = warmup
60
- end
61
-
62
- opts.on('-i ITERATIONS', '--iterations=ITERATIONS', Integer, "The number of iterations to run the benchmark for (default: #{options.iterations})") do |iterations|
63
- options.iterations = iterations
64
- end
65
-
66
- opts.on('-s STATUS', '--status=STATUS', Integer, "The HTTP status expected from a request to the given URI (default: #{options.status})") do |status|
67
- options.status = status
68
- end
69
-
70
- opts.on('-h', '--help', 'print options') do
71
- puts opts
72
- exit
73
- end
74
- end.parse!
75
-
76
- # Enable and start GC before each job run. Disable GC afterwards.
77
- #
78
- # Inspired by https://www.omniref.com/ruby/2.2.1/symbols/Benchmark/bm?#annotation=4095926&line=182
79
- class GCSuite
80
- def warming(*)
81
- run_gc
82
- end
83
-
84
- def running(*)
85
- run_gc
86
- end
87
-
88
- def warmup_stats(*); end
89
-
90
- def add_report(*); end
91
-
92
- private
93
-
94
- def run_gc
95
- GC.enable
96
- GC.start
97
- GC.compact
98
- GC.disable
99
- end
100
- end
101
-
102
- profile = nil
103
-
104
- if options.profile
105
- profile = RubyProf::Profile.new(track_allocations: true, measure_mode: RubyProf::MEMORY)
106
- profile.start
107
- profile.pause
108
- end
109
-
110
- excerpt = ['Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.']
111
- data = (excerpt * 3).join(' ')
112
-
113
- client = ::Excon.new(options.uri.to_s, ssl_verify_peer: false, ssl_verify_peer_host: false, persistent: true, retry_errors: [Excon::Error::Socket], idempotent: true)
114
-
115
- Benchmark.ips do |x|
116
- x.time = options.time
117
- x.warmup = options.warmup
118
- x.suite = GCSuite.new
119
- x.iterations = options.iterations
120
-
121
- x.report(options.uri.to_s) do
122
- profile&.resume
123
-
124
- response = client.request(method: :get, headers: { data: data })
125
-
126
- response.body
127
- response.status
128
-
129
- profile&.pause
130
-
131
- raise "Invalid status: expected #{options.status}, actual is #{response.status}" unless response.status == options.status
132
- end
133
-
134
- x.compare!
135
- end
136
-
137
- if options.profile
138
- result = profile.stop
139
-
140
- File.open("excon-#{Excon::VERSION}.html", 'w') do |output|
141
- printer = RubyProf::GraphHtmlPrinter.new(result)
142
- printer.print(output)
143
- end
144
- end