När jag granskat genererad assemblerkod så är sådant här helt avgörande.
I exemplet visas två olika structar, de hanterar nästan samma data bara att en struct har en string medan den andra har en buffer för texten. självklart är där en string mer "användbart" och kräver mindre kod, och det är den lösning som i princip alltid används i GC kod.
Så varför då använda en buffer?
Andra structen som endast lagrar text internt och då har en maxgräns har fördelen att det bara är block, inga destruktorer eller konstruktorer körs och minnet ligger väl placerat.
Samma med den postade tabell klassen, ett enda stort minnesblock.Låt säga att du haft 1000 rader i en tabell och det ligger värden på varje rad som är objekt. radera 1000 rader och en hel hög kod måste köras för det som rensar upp.
Kod som refaktorerats med den klassen har sett betydande prestandaförbättringar i kombination med mindre domänspecifik kodmassa.
Så fort medlem i klass läggs till som hanterar sitt eget minnesblock blir klassen långsammare, har inte sett att processorer eller kompilatorer kan fixa till det