#yjit — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #yjit, aggregated by home.social.
-
What if Ruby rewrote its own engine in Rust?
That's YJIT, built inside CRuby at Shopify. Railsbench runs 65% faster on Ruby 3.3. -
🚀✨ Behold the thrilling saga of ZJIT's "new" optimization, which shaves milliseconds off your Rails app by not doing things twice! After a mere 10 months, #ZJIT finally outpaces #YJIT in a groundbreaking microbenchmark that absolutely everyone uses. 😴🔧
https://railsatscale.com/2026-03-18-how-zjit-removes-redundant-object-loads-and-stores/ #RailsOptimization #TechNews #PerformanceImprovement #HackerNews #ngated -
"We need more open source Ruby code" says @matz at @balticruby.
#opensource #ruby #balticruby2025 #rubylang #BalticRuby #conference #riga #latvia #rubygems #opensourcesoftware #oss #foss #shopify #yjit #jit #zjit
-
🚀 Oh wow, someone discovered #Ruby #Ractors and felt the need to write an epic about using 10 cores because, you know, they paid for them. 🤯 Spoiler alert: they played with numbers and got all giddy over #YJIT – "The Real Star" 🌟 – because math in parallel is just *that* exciting. 🙄
https://jpterry.com/posts/2025/03/exploring-ruby-ractors/ #ParallelProcessing #EpicDiscovery #10Cores #HackerNews #ngated -
Released ruby-install 0.10.0! This release contains many small improvements to usability and better support for building CRuby with jemalloc or YJIT enabled.
$ ruby-install ruby -- --with-jemalloc
$ ruby-install ruby -- --enable-yjithttps://github.com/postmodern/ruby-install/releases/tag/v0.10.0
https://github.com/postmodern/ruby-install#readme -
#ruby #rails #development Had an app with complex list with erb partials. I never took the time to turn on #YJIT. But with the latest 3.4.1 release I made sure #rust was present on the system. It had >3x perf boost (not entirely fair, maybe some optimisations in the upgrade from 3.3.6 to 3.4.1). Perhaps I could have rewritten it to be more performant, but getting such improvements for 'free' is even better :D
-
[Перевод] Ускоряем Ruby, переписав C… на Ruby
В последнее время я часто видел обсуждения репозитория сравнения языков . В нём CRuby был третьим снизу, обгоняя по скорости только R и Python. Автор репозитория @BenjDicken создал забавную визуализацию производительности каждого из языков. В одной из визуализаций из визуализаций Ruby по бенчмаркам Ruby оказывается третьим с конца.
-
[Перевод] Ускоряем Ruby, переписав C… на Ruby
В последнее время я часто видел обсуждения репозитория сравнения языков . В нём CRuby был третьим снизу, обгоняя по скорости только R и Python. Автор репозитория @BenjDicken создал забавную визуализацию производительности каждого из языков. В одной из визуализаций из визуализаций Ruby по бенчмаркам Ruby оказывается третьим с конца.
-
[Перевод] Ускоряем Ruby, переписав C… на Ruby
В последнее время я часто видел обсуждения репозитория сравнения языков . В нём CRuby был третьим снизу, обгоняя по скорости только R и Python. Автор репозитория @BenjDicken создал забавную визуализацию производительности каждого из языков. В одной из визуализаций из визуализаций Ruby по бенчмаркам Ruby оказывается третьим с конца.
-
[Перевод] Ускоряем Ruby, переписав C… на Ruby
В последнее время я часто видел обсуждения репозитория сравнения языков . В нём CRuby был третьим снизу, обгоняя по скорости только R и Python. Автор репозитория @BenjDicken создал забавную визуализацию производительности каждого из языков. В одной из визуализаций из визуализаций Ruby по бенчмаркам Ruby оказывается третьим с конца.
-
someone spotted something *good* happening with #YJIT mid October., with all benchmarks speeding up by a significant amount.
Curious to see what caused that, tho I suspect it's not a real speedup.https://www.reddit.com/r/ruby/comments/1gts5tx/did_yjit_get_a_big_speed_boost_recently/
-
So, yup. The #rustc installed by #homebrew in bottle 1.77.2 won't work right; something's broken in the librustc_driver dylib file. Luckily, you can still build #RubyLang with #YJIT just fine using #rustup instead.
```fish
~> brew install rustup-init &&
source ~/.cargo/env.fish &&
ruby --yjit --version
ruby 3.3.1 (2024-04-23 revision c56cd86388) +YJIT [arm64-darwin23]
``` -
I'm currently trying to get #RubyLang 3.3.1 to compile with `--enable-yjit` set. For some reason, the newest #CRuby version won't build on Sonoma because #RustLang is missing some include or header required for the latest #YJIT to be built.
It seems to be a problem with #rustc. I'm trying with #rustup instead, and will see how that goes.
-
I'm currently trying to get #RubyLang 3.3.1 to compile with `--enable-yjit` set. For some reason, the newest #CRuby version won't build on Sonoma because #RustLang is missing some include or header required for the latest #YJIT to be built.
It seems to be a problem with #rustc. I'm trying with #rustup instead, and will see how that goes.
-
I'm currently trying to get #RubyLang 3.3.1 to compile with `--enable-yjit` set. For some reason, the newest #CRuby version won't build on Sonoma because #RustLang is missing some include or header required for the latest #YJIT to be built.
It seems to be a problem with #rustc. I'm trying with #rustup instead, and will see how that goes.
-
just watched @tenderlove's stream with Maxime on adding an optimization to #YJIT for Array#pack and it's pretty cool, if you have ~1 hour it's a good way to spend it.
-
Ruby might be faster than you think
https://www.johnhawthorn.com/2024/ruby-might-be-faster-than-you-think/
@john shows how Ruby with #yjit actually can keep up with compiled languages in some benchmarks.
-
Ah, nothing like posting on #StackOverflow to toughen up one's sense of self! I typically only answer the tricky questions there, so dealing with criticism of minor oversights, off-by-ones, and conversion errors are part of the fun. Ever try converting µs to femtoseconds when #benchmarking iterations on large data sets? Less fun than you think!
On the other hand, #TruffleRuby for the performance win. 900% faster for this use case than #CRuby, even with #YJIT.
-
Ah, nothing like posting on #StackOverflow to toughen up one's sense of self! I typically only answer the tricky questions there, so dealing with criticism of minor oversights, off-by-ones, and conversion errors are part of the fun. Ever try converting µs to femtoseconds when #benchmarking iterations on large data sets? Less fun than you think!
On the other hand, #TruffleRuby for the performance win. 900% faster for this use case than #CRuby, even with #YJIT.
-
Ah, nothing like posting on #StackOverflow to toughen up one's sense of self! I typically only answer the tricky questions there, so dealing with criticism of minor oversights, off-by-ones, and conversion errors are part of the fun. Ever try converting µs to femtoseconds when #benchmarking iterations on large data sets? Less fun than you think!
On the other hand, #TruffleRuby for the performance win. 900% faster for this use case than #CRuby, even with #YJIT.
-
I'm working on some updates to my Torid gem - and thinking about performance. I now have the situation where I have 2 implementations of the same function, one that is more performant when JIT is enabled, and one that is more performant, when JIT is not enabled.
Thoughts on how to manage this? Should I ship both with a load/parse time switch that detects if jit is enabled and then uses the right one? Just ship the jit one, just ship the base one?
-
I was just doing some benchmarking of a bit of ruby code, comparing `value.digits(32)` to an explicit while loop that does the same thing, and decided to try it with `--yjit` too.
* Normal ruby -- native method was more performant, although not by a whole lot
* with `--yjit` the ruby loop was better than the native method.
https://gist.github.com/copiousfreetime/fe69dcdde98c7bcb0858095223515df6
-
#pikaser #like #likecoin #WritingNFT
#opensource #github #ruby #yjitPikaSer Indexer已使用Ruby 3.3的YJIT
回應時間由大於一秒變成小於一秒
不過回應時間本來就不太重要啦(本來就不算太慢) -
Ruby 3.3.0 的消息
也是有點奇特,年底的慣例長假反而釋出 Ruby 3.3.0:「Ruby 3.3.0 Released」。
整體看起來比較大的改變有兩組,一塊是 parser 相關的消息,包括了 GNU Bison 換成 Lrama,兩個都是 LALR parser,但後者是 Ruby 寫的。
另外一塊是 JIT 相關的消息,包括了 YJIT 的持續進步,以及 RJIT 的引入。
看起來有在用 Ruby 的大型站台都跳進去幫 YJIT 發展了,這邊應該是正循環,會有更多的 feedback 與實作進來改善 YJIT。
而 RJIT 看起來
https://blog.gslin.org/archives/2023/12/27/11555/ruby-3-3-0-%e7%9a%84%e6%b6%88%e6%81%af/
#Computer #Murmuring #Programming #Software #bison #jit #lalr #lrama #mjit #parser #rjit #ruby #yjit
-
In Ruby 3.3.0, you no longer need to pass #YJIT in #RUBYOPTS. You can now start and stop just-in-time at runtime,e.g. `RubyVM::YJIT.enable`. It's also supposed to be 3x faster than on 3.2! For some applications, this is going to be a really big deal!
https://www.ruby-lang.org/en/news/2023/11/12/ruby-3-3-0-preview3-released/
-
My teammate @byroot has been working on a reforking version of unicorn designed for use with YJIT, and it's finally rolled out for Shopify's massive Rails monolith.
https://railsatscale.com/2023-10-23-pitchfork-impact-on-shopify-monolith/
TLDR impressive latency and memory improvements.
-
The Shopify YJIT team is kicking it at MPLR this week, presenting on this paper:
-
If you have upgraded your instance to 4.2.x and want some more performance enable #YJIT in Ruby 3.2. It requires you install Rust and recompile, but in return you get 15-25% more RoR performance. #DEFCON.social has been running it with no known problems. Thanks to Shopify for developing it and Rails for adopting it!
#MastoAdmin -
Turns out the jemalloc really works!
So, in 10ish days of updates we've managed to _halve_ our response times, and do it while using less RAM!
-
@ruby_discussions As much as I dislike promoting anything #Java or Oracle related, I have to say that a lot of my #RubyLang code (so long as it doesn't require forking) runs ~1 gazillion times faster on #TruffleRuby than #CRuby even with #YJIT enabled. It's now my default for certain types of performance-oriented code, especially for threading.
-
@ruby_discussions As much as I dislike promoting anything #Java or Oracle related, I have to say that a lot of my #RubyLang code (so long as it doesn't require forking) runs ~1 gazillion times faster on #TruffleRuby than #CRuby even with #YJIT enabled. It's now my default for certain types of performance-oriented code, especially for threading.
-
@ruby_discussions As much as I dislike promoting anything #Java or Oracle related, I have to say that a lot of my #RubyLang code (so long as it doesn't require forking) runs ~1 gazillion times faster on #TruffleRuby than #CRuby even with #YJIT enabled. It's now my default for certain types of performance-oriented code, especially for threading.
-
@ruby_discussions As much as I dislike promoting anything #Java or Oracle related, I have to say that a lot of my #RubyLang code (so long as it doesn't require forking) runs ~1 gazillion times faster on #TruffleRuby than #CRuby even with #YJIT enabled. It's now my default for certain types of performance-oriented code, especially for threading.
-
@ruby_discussions As much as I dislike promoting anything #Java or Oracle related, I have to say that a lot of my #RubyLang code (so long as it doesn't require forking) runs ~1 gazillion times faster on #TruffleRuby than #CRuby even with #YJIT enabled. It's now my default for certain types of performance-oriented code, especially for threading.