seriously, there was such an infinity of memory management problems coming from the combination of a fully automated concurrent mark and sweep GC as used in go 1.22 that i was able to positively identify was rooted in the use of strings
THE ONLY IMMUTABLE SHIT IN GO
and i spent the next 3 months rewriting everything to use mutable byte strings
and guess what
my relay is now at least as fast as strfry, and i'd love to have someone test them side by side to compare because i made sure that memory management was done right
immutable memory requires a second level of abstraction to be implemented at the CPU level that is inherently complex and racy and is going to create more latency
what you do is what i do
you use interfaces
you expose at compile time teh things that you need to be mutable
everything else is private and the compiler won't allow you to write access code that will be able to read that memory
problem solved
without using an MMU