the jvm lacks structs and more specifically arrays of structs as a way to allocate memory. this causes extreme bloat due to object overhead as well as a ton of indirections when using large collections. the indirections destroy any semblance of locality you may have thought you had which is the absolute worst thing you can do from a performance perspective on modern processors. what people end up doing instead is making parallel arrays of primitives where there is an array for each field. this is also not ideal for locality but it's better than the alternative since there isn't a data dependency between the loads (they can all be done in parallel).
i am not that familiar with the C# runtime and i know C# has user definable value types, but i'm not sure what their limitations are.
i am not that familiar with the C# runtime and i know C# has user definable value types, but i'm not sure what their limitations are.