3 ms·
Full disclosure: I have not had a problem with this. It's just a theory I have that this is low-hanging fruit to reduce C++ binary size. You're less likely to
by coroutines 11y ago
Full disclosure: I have not had a problem with this.
It's just a theory I have that this is low-hanging fruit to reduce C++ binary size.
You're less likely to define the same structure and methods of a type in exactly the same way as someone else in C because we don't have the STL (ofc). So it's probably a worse issue in C having a hundred different implementations of a linked list or some array type across your system in each program.
I just think there's an opportunity to aggressively dedupe object code for "representation-identical" types in C++.
- scott_s 11y agoWe've had optimizing C++ compilers for a long time - decades. I think it's safe to assume that the low-hanging fruit was picked a long time ago.
- coroutines 11y agoForgive me here if I'm being argumentative, but I think we're both speculating. Someone further up the chain mentioned this sort of deduplication might be done by the linker, but the code for the duplicated type would still exist in the binary before linking.. An old but probably negligible complaint about C++ is that it creates larger binaries than if one were writing C. I think this is something overlooked because C++ has a focus on type strictness - perhaps the linker has a better way of seeing through abstractions.. I've identified where I think a problem lies.. now I just have to find proof it :3 Unrelated: I wonder if identical libraries that exist in separate filesystem trees (like in Docker) are deduped in memory, or if it's done by inode.