Erlang / Erlang Basics Interview questions
How can you optimize message passing between heavy processes?
The main cost in Erlang message passing is copying the message into the receiver's mailbox, so optimization mostly means reducing what gets copied and how often.
- Use off-heap binaries for large payloads — binaries over 64 bytes are reference-counted, so passing one only copies a small reference, not the data itself.
- Batch messages instead of sending many tiny ones; fewer, larger messages amortize per-message scheduling and copy overhead.
- Avoid large process state that gets copied unnecessarily during garbage collection triggered by message arrival.
- Watch mailbox growth — a slow consumer with a growing mailbox means the sender is
outpacing the receiver; back-pressure (e.g. via
gen_server:callinstead ofcast) can force the sender to wait rather than flood the queue.
For very hot paths, keeping data in ETS and passing only a key/reference between processes avoids the message-copy cost entirely, at the price of losing per-message isolation for that data.
Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!
Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.
Invest now!!! Get Free equity stock (US, UK only)!
Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.
The Robinhood app makes it easy to trade stocks, crypto and more.
Webull! Receive free stock by signing up using the link: Webull signup.
More Related questions...
