After several months of work, we finally enabled Pitchfork reforking on 100% of Shopify's monolith.
~30% reduction in memory usage, ~9% better latency and more!
https://t.co/93L8LC2Lzo
@lewispb@tobscher - Boot time is a key metric for me.
- Dependency on the DB during boot is also a no-no
- Not sure it scales well on larger monoliths
- I'm worried of maintenance cost.
@lewispb@tobscher As for exercising codepaths during boot. That's something that has very often been opposed to me when reforking is mentioned.
I've always been wary of it because:
@tobscher@lewispb Interesting. I wonder why you're sticking with Puma, and even go trough the trouble of patching it, if you run it single threaded?
Why not just use Pitchfork at that point? (not saying this because I'm the author, I'm genuinely curious).
๐ Ruby Ireland is back!
Agents of Concurrency - September 10th at @fin_ai
Jean Boussier makes the case for multiprocessing in Rails, while Ryan Sherlock gets into shipping AI agents on Rails - fast, repeatedly, and in production.
Thx Fin!
RSVP ๐
https://t.co/XcodEhsZRX
@watson1978 Yeah, I saw your issue, and I generally agree.
But I changed the implementation several times, so not really in a rush to upstream it in Ruby, as just yesterday it seems another even faster one dropped https://t.co/mm38drsAUX
I'll probably release the final 3.0.0 version early September, so if you got time please try the RC1 and submit any feedback you may have: https://t.co/TolqgvoRgm
While it has been 18 months since I blogged about it, the json gem performance has improved quite significantly since, so now is a good time to add a few more parts to my JSON series: https://t.co/cZPoSMYWxi
@paracycle@Dagnan@vipulnsward To be fair to this article, the very first version of "chilled strings" did return true when `frozen?` was called on it.
It was changed a little bit after that post was published.
@marcoroth_ About the boot performance, as discussed in Hakodate, I'd be interested to look in what it would take to support precompiling templates with Bootsnap, making parsing performance less important.
@samsaffron Well, the proposed `ban` directive does answer that.
But while I didn't list it here, optional dependencies are indeed a long requested feature. E.g. in Active Support, we don't force you to install `dalli` or `redis`, but if you do it has to satisfy a certain minimum version.