[ruby-core:123404] [Ruby Bug#19461] Time.local performance tanks in forked process (on macOS only?)
From:
"ioquatix (Samuel Williams) via ruby-core" <ruby-core@...>
Date:
2025-10-06 22:17:07 UTC
List:
ruby-core #123404
Issue #19461 has been updated by ioquatix (Samuel Williams).
Just for reference, on the lastest macOS, the issue still appears:
```
% clang localtime_test.c
% ./a.out
Measuring localtime
In parent
monotonic = 0.002930000
cputime = 0.002454000
In child
monotonic = 0.553250000
cputime = 0.552287000
```
So this is still an issue, in practice.
----------------------------------------
Bug #19461: Time.local performance tanks in forked process (on macOS only?)
https://bugs.ruby-lang.org/issues/19461#change-114772
* Author: ioquatix (Samuel Williams)
* Status: Closed
* 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/
______________________________________________
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.ruby-lang.org/