Project

General

Profile

Actions

Bug #21696

open

Performance degradation for long running processes in Ruby 4.0.0-preview2

Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2

Added by easydwh (Ivo Herweijer) about 5 hours ago. Updated about 4 hours ago.

Status:
Open
Assignee:
-
Target version:
-
ruby -v:
ruby 4.0.0preview2 (2025-11-17 master 4fa6e9938c) +PRISM [x86_64-linux]
[ruby-core:123845]

Description

When running my RubyMeasureResponsetime tool (https://github.com/easydatawarehousing/ruby_measure_responsetime) on Ruby 4.0.0-preview2, a slow but steady performance degradation is measurable.
Both the Rails and the Roda based test applications show this. And both with and without yjit.
The Rails application when using yjit also seems to have increasing memory usage over time.

Running the same tests on Ruby 3.4.7 shows stable performance and memory usage.

I have included some plots showing this behavior.


Files

rails_devise_2_ruby-4.0.0.jpg (965 KB) rails_devise_2_ruby-4.0.0.jpg easydwh (Ivo Herweijer), 11/18/2025 11:47 AM
rodauth_2_ruby-4.0.0 YJIT.jpg (973 KB) rodauth_2_ruby-4.0.0 YJIT.jpg easydwh (Ivo Herweijer), 11/18/2025 11:47 AM
rodauth_2_ruby-4.0.0.jpg (1.02 MB) rodauth_2_ruby-4.0.0.jpg easydwh (Ivo Herweijer), 11/18/2025 11:53 AM
rails_devise_2_ruby-4.0.0 YJIT.jpg (917 KB) rails_devise_2_ruby-4.0.0 YJIT.jpg easydwh (Ivo Herweijer), 11/18/2025 11:54 AM
rails_devise_0_memory.png (31.2 KB) rails_devise_0_memory.png easydwh (Ivo Herweijer), 11/18/2025 11:59 AM

Updated by ufuk (Ufuk Kayserilioglu) about 5 hours ago Actions #1 [ruby-core:123846]

Did 3.5-preview1 have the same behaviour? If not, could you bisect between the two releases to find the commit that changed the behaviour?

Updated by easydwh (Ivo Herweijer) about 4 hours ago Actions #2 [ruby-core:123849]

ufuk (Ufuk Kayserilioglu) wrote in #note-1:

Did 3.5-preview1 have the same behaviour? If not, could you bisect between the two releases to find the commit that changed the behaviour?

Just ran the test, only for the Roda app. Results look very similar (almost identical) to 3.4.7. Logically the culprit should be a commit for 4.0-preview.
I don't know anything about Ruby source code, so pinpointing the commit(s) involved is beyond my knowledge.

Actions

Also available in: PDF Atom