I can’t believe this! (Gaming)

by Xenos @, Shores of Time, Thursday, October 17, 2019, 11:03 (263 days ago) @ Cody Miller

The real reason is very simple: a 32 bit instruction will take up a full 64 bit instruction on a 64 bit OS. So every instruction used is taking up twice the space everywhere. In addition to support 32 bit applications you have to have in many instances a 32 bit version of the library needed as well as a 64 bit version. So two apps that use the same libraries but one is 32 bit and one is 64 bit, the 32 bit application can’t use the same library, even if the libraries are the same in functionality. If you extrapolate this, 32 bit apps potentially take up not just twice the disk space, but twice the memory to run. This doesn’t mean they necessarily run slower, but if you’re running against the limits of the memory you’re using 32 bit applications will make the problem even worse. There are even more issues, but this is a very basic representation of the problem.

See that doesn't seem so bad to me, since 32 bit apps are all old and small anyway.

Is there a reason it was designed this way? Is designing a 'universal' library impossible? Can the OS not be programmed to allow instructions of varying sizes?

If you are running a 64 bit app, can you not program 32 bit variables so save memory? That seems wasteful to have a 64 bit integer if you only need to count to ten.

No. Explaining this is beyond the scope of a forum reply, if you are going to judge it based on this and actually want to learn you need to go do the research. Variables do not apply on an instruction level, variables are for a programming level. Designing a universal library is totally possible, and it will be roughly double the size of the 64 bit library. So rather than force you to install an extra large library to support a tiny fraction of programs the libraries are typically divided to help the user. The problem is you’re thinking of this from a software perspective when the real problem is the hardware. 64 bit processors can only use 64 bit instructions. It doesn’t matter if the OS converts it for the processor the hardware still only takes 64 bit.

Complete thread:

 RSS Feed of thread