From: "nobu (Nobuyoshi Nakada) via ruby-core" Date: 2023-02-24T14:34:57+00:00 Subject: [ruby-core:112570] [Ruby master Bug#19461] Time.local performance tanks in forked process (on macOS only?) 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/ ______________________________________________ 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/postorius/lists/ruby-core.ml.ruby-lang.org/