[#122258] [Ruby Misc#21367] Remove link to ruby-doc.org from www.ruby-lang.org/en/documentation/ — "p8 (Petrik de Heus) via ruby-core" <ruby-core@...>
Issue #21367 has been reported by p8 (Petrik de Heus).
11 messages
2025/05/23
[ruby-core:122189] [Ruby Bug#20112] Ractors not working properly in ruby 3.3.0
From:
etienne via ruby-core <ruby-core@...>
Date:
2025-05-19 08:57:21 UTC
List:
ruby-core #122189
Issue #20112 has been updated by etienne (=C9tienne Barri=E9).
I can't repro on my mac so it seems Linux only.
It has been corrected on master since both 3.5.0-preview1 and master are no=
w faster with ractors than with threads.
```
ruby 3.5.0dev (2025-05-19T04:27:50Z master 40c957ba21) +PRISM [aarch64-linu=
x]
-:21: warning: possibly useless use of .. in void context
Rehearsal --------------------------------------------
-:5: warning: Ractor is experimental, and the behavior may change in future=
versions of Ruby! Also there are many implementation issues.
Thread: 5.074042 0.001007 5.075049 ( 5.076653)
Ractor: 5.375332 0.000005 5.375337 ( 1.548004)
---------------------------------- total: 10.450386sec
user system total real
Thread: 5.098492 0.001000 5.099492 ( 5.098067)
Ractor: 5.254631 0.001000 5.255631 ( 1.545433)
```
----------------------------------------
Bug #20112: Ractors not working properly in ruby 3.3.0
https://bugs.ruby-lang.org/issues/20112#change-113337
* Author: ariasdiniz (Aria Diniz)
* Status: Assigned
* Assignee: ractor
* ruby -v: 3.3.0
* Backport: 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN, 3.3: UNKNOWN
----------------------------------------
I recently installed Ruby 3.3.0, and noticed that some of my scripts that u=
se Ractors started to struggle with performance. After doing some benchmark=
s, I noticed that, while Ractors seem to be working well on Ruby 3.2.2, the=
y're not working properly on 3.3.0.
I'm using Ubuntu 22.04.3 LTS
Here is the benchmark code:
``` ruby
# frozen_string_literal: true
require 'benchmark'
Ractor.new { :warmup } if defined?(Ractor)
Benchmark.bmbm do |x|
x.report("Thread: ") do
threads =3D []
8.times do |i|
threads << Thread.new do
20000000.times do |j|
((i * 20000000) + j)**2
end
end
end
threads.each(&:join)
end
x.report("Ractor: ") do
ractors =3D []
0..8.times do |i|
ractors << Ractor.new(i) do |k|
20000000.times do |j|
((k * 20000000) + j)**2
end
end
end
ractors.map(&:take)
end
end
```
Here is the results for Ruby 3.2.2:
```
Rehearsal --------------------------------------------
Thread: 7.666909 0.001091 7.668000 ( 7.675266)
Ractor: 19.318528 0.012017 19.330545 ( 2.505888)
---------------------------------- total: 26.998545sec
user system total real
Thread: 7.918141 0.004011 7.922152 ( 7.928772)
Ractor: 19.366414 0.003954 19.370368 ( 2.517993)
```
Here is the results for Ruby 3.3.0:
```
Rehearsal --------------------------------------------
Thread: 8.634152 0.010895 8.645047 ( 8.645104)
Ractor: 100.172179 0.035985 100.208164 ( 15.213245)
--------------------------------- total: 108.853211sec
user system total real
Thread: 9.451236 0.004002 9.455238 ( 9.460132)
Ractor: 118.463294 0.119942 118.583236 ( 18.462157)
```
--=20
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/lists/ruby-core.ml.rub=
y-lang.org/