@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.
#java #rubylang #truffleruby #cruby #YJIT
My @rubyconf talk is now available to watch! Exit(ing) Through the YJIT covers what a JIT is, the difference between MJIT & YJIT, what it means to "exit" YJIT, and what to do about it.
When you type `ruby --yjit`, how do you pronounce yjit?
I gave an ending keynote about #YJIT for #RubyConfTH.
It's called "YJIT's Three Languages: The Fun of Code that Writes Code." It's about why it's interesting and useful to keep multiple representations of the same thing in your head.
It's kind of deep and involved, but I won't tell if you skip ahead, watch at different speeds or otherwise just get to (your personal idea of) the good parts.
https://www.youtube.com/watch?v=yZSe1BhiTvI&list=PLM_LdV8tMIaxpMTv9dnWk3cq61xJcE2Pv
Good news! The official #Ruby #docker images have been updated to include 3.2.0 and #YJIT is supported there:
$ docker git:(main) docker compose run --rm ruby sh -l
6ac53f211ce3:/# ruby -v
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux-musl]
6ac53f211ce3:/# RUBY_YJIT_ENABLE=1 ruby -v
ruby 3.2.0 (2022-12-25 revision a528908271) +YJIT [x86_64-linux-musl]
Time to upgrade my app 🙂
Benchmarking Ruby 3.2 https://www.solnic.dev/p/benchmarking-ruby-32-with-yjit #ruby #yjit
OK what I just observed requires a blog post. Watch this space 🙂
#ruby #benchmark #opensource #YJIT
WOAH benchmarking dry-validation with/without YJIT shows really interesting results:
YJIT disabled:
dry-validation 2.255k (± 1.9%) i/s - 11.300k in 5.013199s
YJIT enabled:
dry-validation 3.363k (± 1.8%) i/s - 17.034k in 5.066657s
#ruby #YJIT #performance #benchmark
YJIT in Ruby 3.2 is production-ready, folks.
Shopify rolled out #Ruby 3.2 and #YJIT globally this week, and that stack is handling ALL storefront requests.
https://twitter.com/tobi/status/1605656985185226753
I'm so proud of this team! In addition to YJIT, we've contributed object shapes and variable-width object heap improvements.
Lots to talk about here, expect to see more details from my teammates in January.
RT @eileencodes
I'm speaking @rubyconf tomorrow at 10:45am CST about finding exits in YJIT and how we can use that information to make optimizations. If you're interested in running YJIT you won't want to miss this. #yjit #ruby #rubyconf2022
I'm speaking
@rubyconf tomorrow at 10:45am CST about finding exits in YJIT and how we can use that information to make optimizations. If you're interested in running YJIT you won't want to miss this. #yjit #ruby #rubyconf2022
I guess I should do #followfriday
Follow @watzon who has been slowly porting ruby libraries over to Crystal and writing new Crystal libraries.
Follow @presidentbeef who recently managed to get mrubyc onto the Flipper Zero (a RF hacking swissarmy knife gadget).
Follow @timriley and @solnic who have recently released Hanami 2.0 and are now working on 2.1.
Follow @k0kubun who's working on improving CRuby's new YJIT.
#ruby #crystal #crystallang #hanami #mruby #mrubyc #yjit #jit
#followfriday #ruby #crystal #crystallang #hanami #mruby #mrubyc #YJIT #jit
Testing out Ruby 3.1 with #yjit vs Ruby 3.0.
This shows a sharp decrease of CPU usage for a small Sinatra-based API.
Improvements in response times aren't as visible because the app is mostly IO bound. The app is small, so the memory penalty is light too. I like it.
Thanks Shopify. 👍