3 ms·
Ok, then array-of-structs. Maybe obstacks (region-based allocation). All that stuff that cannot be done in Java, Smalltalk, etc. Does that invalidate the genera
by qznc 10y ago
Ok, then array-of-structs. Maybe obstacks (region-based allocation). All that stuff that cannot be done in Java, Smalltalk, etc. Does that invalidate the generational hypothesis or not?
- pjmlp 10y ago> All that stuff that cannot be done in Java Maybe not on the standard implementation, but just like C and C++, Java also enjoys some extensions. Packed Objects in IBM J9 http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.ibm.java.lnx.80.doc/user/packed_intro.html http://www.ibm.com/support/knowledgecenter/SSYKE2_8.0.0/com.... ObjectLayout in Azul http://www.azulsystems.com/content/goto-conference-chicago-2015-2 http://www.azulsystems.com/content/goto-conference-chicago-2... And in some standard form in Java 10 http://openjdk.java.net/jeps/169 http://openjdk.java.net/jeps/169
- pron 10y agoI guess we'll see when Java gets value types soon, but the Go people can answer that now; only problem is, I'm not sure people build as many and as-data-heavy applications in Go as they do in Java just yet. Also, realtime Java VMs do support arenas (even scoped arenas). So, I don't know the answer, but let's put it this way: I haven't heard anyone saying it isn't true -- and that would be a pretty big thing -- even though there should be enough indicators by now.
- mike_hearn 10y agoC# can do value types and arrays of structs and it has a generational collector, so presumably Microsoft felt that C# fitted the hypothesis. Go does escape analysis and stack allocation. Presumably this would be pointless if Go allocations rarely died young. Bear in mind that the hypothesis talks about allocations in general. That means things that get put on the stack count as "dying young".