32-bit vs. 64-bit
As the number of bits increases there are two important benefits.
- More bits means that data can be processed in larger chunks which also means more accurately.
- More bits means our system can point to or address a larger number of locations in physical memory.
32-bit systems were once desired because they could address (point to) 4 Gigabytes (GB) of memory in one go. Some modern applications require more than 4 GB of memory to complete their tasks so 64-bit systems are now becoming more attractive because they can potentially address up to 4 billion times that many locations.
A 64-bit application will require more memory to open any particular file than a 32-bit application, because the address sizes of memory pointers and other structures automatically become larger. This means a user should have a minimum of 4 GB of memory installed to benefit from a 64-bit application.
Performance of 32-bit vs. 64-bit apps:
Unless you need to access more memory that 32b addressing will allow you, the benefits will be small, if any.
When running on 64b CPU, you get the same memory interface no matter if you are running 32b or 64b code (you are using the same cache and same BUS).
Check out [1], [2], [3] for more info.
When to provide 32-bit vs 64-bit softwares:
The choice is tough to make. You have to consider a lot of staffs before determining a 32-bit or 64-bit software, for example:
- Users: if the users of the software are using x32/x86 machines, you should choose to provide 32-bit software accordingly as 64-bit softwares are not well compatible woth such machines.
- Memory-to-use: if your software need to (or must) use more 4G memory, you have to choose to provide 64-bit softwares. I recently did some work on video processing where I need to load very large video into memory, so I have to target my coding on 64-bit.
Moreover, the following articles that you maybe interested in during this choosing: