Issue #19461 has been updated by ioquatix (Samuel Williams).
File clipboard-202302251716-rh6ma.png added
I've submitted a bug report to Apple:
![](clipboard-202302251716-rh6ma.png)
----------------------------------------
Bug #19461: Time.local performance tanks in forked process (on macOS only?)
https://bugs.ruby-lang.org/issues/19461#change-102040
* Author: ioquatix (Samuel Williams)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
The following program demonstrates a performance regression in forked child processes when
invoking `Time.local`:
```ruby
require 'benchmark'
require 'time'
def sir_local_alot
result = Benchmark.measure do
10_000.times do
tm = ::Time.local(2023)
end
end
$stderr.puts result
end
sir_local_alot
pid = fork do
sir_local_alot
end
Process.wait(pid)
```
On Linux the performance is similar, but on macOS, the performance is over 100x worse on
my M1 laptop.
---Files--------------------------------
localtime_test.c (1.28 KB)
localtime_test.c (1.21 KB)
clipboard-202302251716-rh6ma.png (234 KB)
--
https://bugs.ruby-lang.org/