Develop for x86 and x64 platforms

Asked

Viewed 356 times

6

More and more operating systems are prioritizing the "version" 64bits, with this, developing applications for this architecture becomes increasingly attractive.

  • Based on this scenario, I ask what are the advantages/disadvantages of developing for the x64 platform?
  • To take advantage of this architecture you need some kind of specific application, eg: Editing images, Games, etc?
  • My project is configured as Platform target: Any Cpu automatically get version 32 and 64bit?
  • 2

    Complementary: http://answall.com/q/1986/101

  • The question answers some questions. :)

1 answer

7


Generally speaking you don’t need anything specific, especially in . Net that turns on which platform you will run. Of course there may be some incompatibilities with things that are external to . NET and are in 32 bits. Native code has more difficulty to reconcile the two forms, even if possible. O . NET compiles to native code the way you tell it to run and turns to make everything work inside it.

The . NET will adjust the application to the most appropriate one where it is executed. The rules may change. The default was to try using 32 bits whenever possible (clicked on a 32-bit process) but I don’t know if it changed in newer versions. You can configure this on the target machine.

In most cases it will not cause problems, but some say that the ideal is to choose one platform or another, but I don’t know if this is still valid. Of course this has its drawbacks there.

Perks

The biggest advantage of using 64 bits is the ability to address more than 4GB of memory. Which in practice means you can access more than 2GB of memory in the same application.

Another advantage is that some instructions and registers of the processor can be accessed in this mode, can have a higher performance and do some extra things. Especially large number calculations can be done in fewer cycles. "long" integers and double precision numbers fit in the recorder. This is not the same as saying that the application will be faster. See the disadvantages.

We can also count as an advantage the fact of running directly in 64 bit operating systems without adaptations.

Another advantage is not intrinsic, but in practice is happening with . NET and before it was a disadvantage, everything that was for 64 bits was something second class. Now investments are being made in the tools for this architecture. And they are using more modern techniques. More and more we will have better tools for 64 bits than for 32 bits. A clear example is the new Jitter (what is).

Disadvantages

It’s not all flowers.

Memory consumption increases since all addressing needs 8 bytes instead of 4. It’s nothing that makes such a difference in almost every case. It is customary to adopt the rule of only using a 32-bit operating system with a machine with at least 4GB of memory.

This can disturb a little the cache, which today is one of the things that most help the performance. The bigger the information, the less it fits in the cache, which is very small. This is a real problem that people tend to neglect. The same goes for shooting the Garbage Collector and pressure the stack.

If the operating system is 32 bits, it does not run. Which is not a problem for . NET, because it can choose. Unless the application requires memory consumption above 2GB.

Complement. Differences.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.