Project

General

Profile

Actions

Bug #18454

closed

YJIT slowing down key Discourse benchmarks

Added by sam.saffron (Sam Saffron) almost 3 years ago. Updated over 1 year ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:106928]

Description

4 out of 6 key Discourse benchmarks used in: https://github.com/discourse/discourse/blob/main/script/bench.rb are slower under YJIT.

Vanilla (median) -> YJIT (median)

Categories: 47ms -> 51
Home page: 85 -> 86
Topic: 42 -> 38
Categories Admin: 48 -> 50
Home Admin: 83 -> 84
Topic Admin: 43 -> 39
Boot: 1740ms -> 2484ms
RSS: 358756 -> 640540

This was run with a simple RUBYOPT='--enable-yjit' ruby script/bench.rb -i 100 -s

To get Discourse working with Ruby 3.1 you will need:

diff --git a/Gemfile b/Gemfile
index 9cdfbf21a9..403c428718 100644
--- a/Gemfile
+++ b/Gemfile
@@ -263,3 +263,11 @@ gem 'colored2', require: false
 gem 'maxminddb'
 
 gem 'rails_failover', require: false
+
+if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("3.0.0")
+  gem 'net-pop', require: false
+  gem 'net-smtp', require: false
+  gem 'net-imap', require: false
+  # waiting on new version of i18n gem
+  gem 'psych', '3.3.2'
+end

It is clear that memory usage and boot time have to take a hit here, but slowing down home page seems concerning. Any ideas on what we should test here and how to narrow this down?

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0