4 ms·
Even if you can put a function pointer into a data structure, that's still just a data structure.
by CyberDildonics 6mo ago
Even if you can put a function pointer into a data structure, that's still just a data structure.
- fluffybucktsnek 6mo agoI don't know where you are trying to go with this logic. You still haven't assured that the 50MB is actually related to data structures used behind by bevy, lest you are insunating that the data structures used by bevy are solely responsible for that size, which is not what the post claims.
- CyberDildonics 6mo agoYou should probably read the whole thread. You jumped in half way through and got all mixed up.
- fluffybucktsnek 6mo agoI know the thread. Your point is about whether Bevy's "data structure" is worth 50MB. I pressing on the fact that you haven't shown what this 50MB actually are. But, out of curiosity, do you also consider the Linux Kernel also a data structure?
- CyberDildonics 6mo agoI pressing on the fact that you haven't shown what this 50MB actually are. To be clear you think an ECS implementation is 50 MB? But, out of curiosity, do you also consider the Linux Kernel also a data structure? Do you think a spreadsheet the holds function pointers is a kernel?
- fluffybucktsnek 6mo ago> To be clear you think an ECS implementation is 50MB? No. > Do you think a spreadsheet the[sic] holds a function pointer is a kernel? Do you think an entire engine, including its system scheduler, is a spreadsheet? If so, shouldn't be hard to apply the same argument to any kernel. Of course, it all relies on your definitions and sense of reductionism.
- CyberDildonics 6mo agoI think you're conflating other big features of a game engine with a way to store data. If you look at other ecs implementations they are data structures, they don't do "system scheduling" (is that different from regular scheduling?)
- fluffybucktsnek 6mo agoOther ECS implementations might not, but Bevy does come with a system scheduler. You register systems (functions that operate over the components) and, through their parameters, Bevy's scheduler decides how to parallelize the registered systems while avoid data races.
- CyberDildonics 6mo agoOther ECS implementations might not, but Bevy does come with a system scheduler. That's an ecs data structure and a system scheduler. If I make a vector and a system scheduler, vectors don't suddenly have system schedulers, they are two different things. You register systems (functions that operate over the components) That's just adding a function pointer to a field.
- fluffybucktsnek 6mo ago> That's an ecs data structure [...] ECS isn't a data structure tho, it's a pattern. You must be referring to the component storage. That's, at best, half the equation. You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right? > That's just adding a function pointer to field Just as much as creating a new process, through the IP/PC field in the TCB. Don't know why you focused on that particular point, but sure.
- CyberDildonics 6mo agoECS isn't a data structure tho, it's a pattern. Every implementation out there is a data structure. You keep talking about things that use it and then lump them together. That's just you. You do realize the discussion is about the 50MB program, which uses both the component storage, the system scheduler and other features, right? No, the first person I replied to said that justified a 50MB program. A few other software components don't make any sense either. 50MB is not something you get to with 4 or 5 parts of a game engine. That's the stripped binary too, it was originally 700MB. Don't know why you focused on that particular point, but sure. You brought it up, I'm not even sure what point you are trying to make.
- alfiedotwtf 6mo agoHow small is a hello world in C on Linux? The last time I checked a few years ago, it was either 9Mb or 13Mb (memory is fuzzy on this one but one of them was right). Edit: wow I’m way off… it must have been the 90s when I checked this lol
- fluffybucktsnek 6mo agoYeah, testing here with GCC 13.3.0 led to 16K. Perhaps, when you made your test, the compiler was statically linking some libs, which would explain the massive increase in size.
- CyberDildonics 6mo agoC statically linked hello world binaries have never been 9MB or 13MB, they definitely weren't in the 90s. Also these are rust binaries. https://github.com/MichalStrehovsky/sizegame https://github.com/MichalStrehovsky/sizegame