Learning MIO: Zero allocations at runtime

Hi! I started learning MIO. When I was skimming through the readme file I noticed "Zero allocations at runtime". What does it even mean?

Mio promises to not do memory allocations (on the heap) during runtime by itself[*1].
E.g. it requires Tokens to be passed around and used to identify which event happened. It's up to higher-level libraries or your application code to take action on these events/tokens.

*1: After looking through the code just briefly, this is not entirely true, at least the epoll wrapper uses an internal Vec to store events.

1 Like

That allocation happens at initialize/setup time and doesn't reallocate at running time. This is what we call usually "Zero allocation at runtime", allocate a few at startup and just use it over and over.

1 Like

Ah, fair enough, thanks for the clarification. Slightly different views on what "runtime" is then.


This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.