x64 for Imaging Purposes: What’s the Catch?
Long gone is the period when addressing 64-bit memory is the prerogative of Itanium, SPARC, RISC processor, PowerPC, etc. Now almost every desktop PC is built on the x86-64 architecture, let alone a server. x64 has become cheap, opening new horizons for various applications.
Of course, those who have already run (or will be running) the x64 platform have a long-term thinking: bringing science to migrate to x64 today will yield multiplied results in the long run.
Migrating to x64 becomes a very sensible problem when it comes to image processing. If you have never dealt with something larger than 5000 × 5000 pixels, you probably will not read this article. If not, you can watch your application get rid of memory errors from time to time and think about lifting the 2-Gb-per-process curse. Install more memory (if necessary) and switching to the x64 platform is often that simple. This is basically the main idea behind the Graphic Port ported to x64 here on Aurigma.
However, the often complicated and expensive nature of migration to x64 is often a key factor in saying no to a natural solution to the problem. So, developers are forced to find roundabouts due to memory problems. Some of these solutions weigh heavily on performance and are full of development and debugging implications. This often exceeds the possible benefits. Also, the cost of developing debugging added often exceeds the cost of migrating entire farms to x64.
On the other hand, more and more applications and services are ported to x64 and some are original x64 and which are no longer limited to scientific computing and complex mathematical modeling tasks. In fact, x64 for servers has been an industry standard for some time. So, if having a legacy 32-bit application prevents you from permanently switching your IIS to 64-bit, I will reply with a marketer-standard call to action: Think big go x64 !, or even worse. Enlarge your address space now!
So, how much does it cost to say goodbye to get out of mem? For Graphics Mill for .NET, that means replacing several DLLs in the API. If you ask me, I would say it’s definitely worth a try at least. Finally, it’s up to you to decide whether to keep x86 and rediscover the page file or utilize the crude raw power of x64 (I think I will be able to use it for future use).