Issue #19461 has been updated by nobu (Nobuyoshi Nakada).
File localtime_test.c added
Seems unrelated to Ruby.
```
$ sw_vers
ProductName: macOS
ProductVersion: 13.2.1
BuildVersion: 22D68
$ clang localtime_test.c && ./a.out && ./a.out r
Measuring localtime
In parent
monotonic = 0.002226000
cputime = 0.001949000
In child
monotonic = 0.581383000
cputime = 0.580938000
Measuring localtime_r
In parent
monotonic = 0.002409000
cputime = 0.001967000
In child
monotonic = 0.587200000
cputime = 0.586385000
```
----------------------------------------
Bug #19461: Time.local performance tanks in forked process (on macOS only?)
https://bugs.ruby-lang.org/issues/19461#change-102019
* 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)
--
https://bugs.ruby-lang.org/