DOTS is based around using C# structs.
In C# structs have a maximum recommended size.
Exceeding that size is possible, but is said to bring various penalties.
How does DOTS deal with this?
I might've missed something, but I haven't found any mention about treating that C# fact.
I've only encountered info on DOTS memory layout, chunks, etc..
But this C# struct specifics is more about how the structs are processed by the CPU.
Considering how DOTS is all about faster CPU processing, it would seem that this point should've been clarified.
So the question is: What is it for DOTS?
Does that C# specific still hold for DOTS?
Is it irrelevant because the DOTS code actually gets compiled into LLVM code?
Is it something else?
Details and references:
Most sources, including the Microsoft official docs talk about the 16 bytes limit.
There are also sources which say it's 32 or 64 bytes these days for most CPUs.
Just to cite the sources, some of them explain why is this a thing:
-- Microsoft C# docs -- https://learn.microsoft.com/en-us/dotnet/standard/design-guidelines/choosing-between-class-and-struct
-- a SO answer -- https://stackoverflow.com/questions/1082311/why-should-a-net-struct-be-less-than-16-bytes#:~:text=As long as the structure,make it a class instead.
-- a Reddit thread -- https://www.reddit.com/r/csharp/comments/8grfur/struct_what_is_16_bytes/?rdt=61707
-- a thread with a lot of relevant answers -- https://www.appsloveworld.com/csharp/100/27/why-is-16-byte-the-recommended-size-for-struct-in-c