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

Reply to this note

Please Login to reply.

Discussion

No replies yet.