Closed Nuclear6 closed 8 months ago
Would be nice to know more about advantages over garbage collector, if that makes sense. Does this can in somehow replace the GC?
@jorelosorio
Does this can in somehow replace the GC?
Not exactly. Memory arenas are more designed for cases where certain processing can generate a high number of objects that are subsequently discarded. A clear example of this case would be the parsing of a text input. For the rest of the cases, the GC is the way to go.
The main advantage of a memory arena over the GC is that allocating/deallocating memory translates into simply adjusting a memory pointer, without ever having to resort to the heap.
In the future, I plan to add some benchmark examples to validate that indeed the memory arena is more efficient than the GC in these types of scenarios.
@Nuclear6
What is {certain operations}?
Operations in which the lifespan is well delimited, such as a network operation on a server, or rendering a frame in a video game.
For these cases, those objects that are needed during this processing only temporarily can be sent to the memory arena instead of the GC, so they can all be released immediately once the operation has been completed.
@ortuman thanks for clarifications, It more clear, so I will keep on eye on this library to include it on one of my projects.
Additionally, we can inject a memory arena as part of a context, with the purpose of being used throughout the lifecycle of certain operations, such as an HTTP request.
What is {certain operations}?