Bei Discourse waren wir bestrebt, YJIT zu übernehmen, seit das Ruby on Rails Infrastructure Team von Shopify es als produktionsreif deklarierte. Nachdem wir vielversprechende lokale Benchmarks gesehen hatten, begannen wir Anfang Mai 2023, unsere Produktions-Rails-Anwendungen mit aktiviertem Ruby 3.2 YJIT in ausgewählten Clustern auszuführen. Anschließend verbrachten wir einige Zeit damit, seine reale Leistung zu messen. Wir freuen uns, die positiven Ergebnisse mitteilen zu können, die wir beobachtet haben. Basierend auf diesen Erkenntnissen haben wir YJIT nun für unser gesamtes Hosting aktiviert, und Self-Hosters können sich dafür entscheiden, dasselbe zu tun.
Dies ist ein begleitendes Diskussionsthema für den ursprünglichen Eintrag unter https://blog.discourse.org/2023/05/running-ruby-3-2s-yjit-in-production-at-discourse/
Wir begannen im November 2022 mit dem Benchmarking von Discourse+YJIT und betrieben Meta seit Januar dieses Jahres zeitweise unter YJIT. YJIT ist einer der Gründe, warum wir das Upgrade von Ruby 2.7 auf Ruby 3.2 in wenigen Monaten beschleunigt haben, und ich bin begeistert, dass es endlich da ist. Und noch mehr, da die Verbesserungen, die für Ruby 3.3 kommen werden, noch besser aussehen!
Und ohne gemessene Daten und basierend darauf, was einzelne oder wenige Benutzer fühlen und sehen.
Für mich ist dieses Forum schon seit einiger Zeit langsamer. Ich sehe fast jedes Mal einen sich drehenden Kreis, wenn ich ein Thema öffne. Sicher, es kann und kommt mit ziemlicher Sicherheit von Servern und Entfernungen zwischen den USA und Europa. Aber Meta ist langsamer als früher.
Ich habe YJIT auf meinem Forum verwendet und wenn der Server in Deutschland steht und die Benutzer Finnen sind, sagen alle, dass sich alle Themen schneller öffnen. Das ist eigentlich ziemlich lustig, weil wir Änderungen der reinen Ladezeiten unter 200 ms nicht sehen können.
Ich denke schon seit einiger Zeit über feste (oder konsistente) Seitenladezeiten nach. Wo die Ladezeiten für jede Seite und jeden Benutzer so konsistent wie möglich sind.
Die Informationen über finnische Benutzer sind interessant, das hat mich wondered, ob wir Benutzer basierend auf GEO IP oder Latenz zu verschiedenen Servern mit unterschiedlicher Last leiten könnten, nur um ihnen Antwortzeit zu sparen.
Ich habe zugegebenermaßen keine Benchmarks durchgeführt, aber ich kann einen Unterschied in der Art und Weise feststellen, wie Themen und Threads geöffnet werden.
Es muss ein positiver Schritt sein, da die Benutzer mich nicht anders informiert haben
Ja, wir messen nur die Zeit, die für die Ausführung von Ruby-Code aufgewendet wird, ausgenommen Datenbankabfragen und Redis-Befehle in den Zeitmessungen.