From: "easydwh (Ivo Herweijer) via ruby-core" Date: 2025-11-21T14:49:36+00:00 Subject: [ruby-core:123877] [Ruby Bug#21696] Performance degradation for long running processes in Ruby 4.0.0-preview2 Issue #21696 has been updated by easydwh (Ivo Herweijer). Thanks for running the tests! On my machine (x64 Linux/AMD Ryzen 7 5800X) Roda works fine with the Gemfile from the repository. Yes, most gems are (very) old, I have pinned these in order to have a stable set of gems so comparing results to previous test runs is possible. For the test itself it doesn't really matter if gems are up to date or not as long as they are same for every tested Ruby version. Ran the test again with 100k requests and the gem versions you mentioned. On my machine this takes 345 and 302 seconds for 4.0-preview2. Especially on the detail plot (like rodauth_2_ruby-4.0.0.png) the increasing response time is clearly visible. Same test on Ruby 3.4.7 shows neat horizontal lines. You machine is clearly a lot faster than mine, maybe this hides performance degradation? Another difference between your plots and mine is the number of major garbage collection runs. These are indicated by the short blue vertical lines. Your plots show fairly regular GC runs. Mine only 1 very early in the test. If higher memory usage is expected for 4.0 then no problems there. Memory usage seems to level off after ~10k requests anyway. Usually I run the tests 3 times, so more dots in the memory plot and better readable lines. I don't know why in your memory plot there are no measurements after ~15k. All values should be in file 'data/rodauth/memory.csv'. Anyway, a bug is not a bug when it isn't reproducible. If you don't see any performance degradation then this bug report should be closed. ---------------------------------------- Bug #21696: Performance degradation for long running processes in Ruby 4.0.0-preview2 https://bugs.ruby-lang.org/issues/21696#change-115280 * Author: easydwh (Ivo Herweijer) * Status: Open * ruby -v: ruby 4.0.0preview2 (2025-11-17 master 4fa6e9938c) +PRISM [x86_64-linux] * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- 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) rodauth_2_ruby-4.0.0 YJIT.jpg (973 KB) rodauth_2_ruby-4.0.0.jpg (1.02 MB) rails_devise_2_ruby-4.0.0 YJIT.jpg (917 KB) rails_devise_0_memory.png (31.2 KB) rodauth_0_overview.png (43.8 KB) rodauth_0_memory.png (15.6 KB) rodauth_1_ruby-3.4.7.png (152 KB) rodauth_1_ruby-3.4.7 YJIT.png (121 KB) rodauth_1_ruby-4.0.0.png (119 KB) rodauth_1_ruby-4.0.0 YJIT.png (118 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/