Yes, Go’s lack of a generational collector can make moving certain large read only structures off heap make sense but a careful design of these structures (no pointers) often removes this need.
> On Nov 16, 2020, at 11:12 AM, Jesper Louis Andersen > <jesper.louis.ander...@gmail.com> wrote: > > >> On Mon, Nov 16, 2020 at 4:04 PM tapi...@gmail.com <tapir....@gmail.com> >> wrote: >> >> I feel there still room between the two to explore, though I have not a >> clear thought on this yet. > > Many of the tricks tend to coincide with both allocator strategies as you > work more on them. The methods are much more two sides of the same coin than > they are different. > > It is easy to have manually managed memory areas: just force a data copy in > and out of said area whenever you access them. Then the pointer spaces can be > kept separated from each other and you don't have to run GC for the data > space. This is what Erlang's ETS system is all about (If you want a pointer, > lookup Linda tuple spaces for an explanation). If you allow pointers to point > between spaces, then you have to handle that in some way. One way is to keep > forward sets of the pointers so you can handle them, but this is usually > easier if you have generational GCs as they have to do this anyway for most > languages (again, Erlang is the exception to the rule here). > > I'm more inclined to believe that careful handling of memory in Go is more > than adequate for handling a low latency scenario such as a game. If your > target is 60fps, the 16.7ms window per frame should be rather easy to reach > with the current GC, especially if you have some extra CPU resources to spare. > > -- > You received this message because you are subscribed to the Google Groups > "golang-nuts" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to golang-nuts+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/golang-nuts/CAGrdgiVfZD-F9-5jyN5bdHPh64UZfBDUX4ooJuRjjaeS0zCj6A%40mail.gmail.com. -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/8CB84093-49CA-46B8-AC01-CADF9DFAAE11%40ix.netcom.com.