-
May 24th, 2010, 03:31 PM
#1
32bit or 64 bit
Hi everyone...
I'm working in a project that uses C++ and I want to get the best performance possible. My software code should be platform independent, so I can run it in any OS.
Today, I am compiling the project only for 32 bit machines, forcing the OS of 64 bit machines to translate the compiled instructions.
My question is: This approach I've chosen (compile only in 32 bit) impacts the performance negatively if I run it in a 64 bit machine? Is so, would it be slower than a 32 bit machine (completely equivalent machine, but 32 bit), or it would have the same speed?
Thanks in advance for your attention
-
May 24th, 2010, 03:40 PM
#2
Re: 32bit or 64 bit
It's pretty much the same speed on most processors.
However, why don't you also add a 64bit executable? If it's a new project, I think that would definitely make sense and then you could have speed increases over 32 bit.
Get this small utility to do basic syntax highlighting in vBulletin forums (like Codeguru) easily.
Supports C++ and VB out of the box, but can be configured for other languages.
-
May 24th, 2010, 03:55 PM
#3
Re: 32bit or 64 bit
If using lots of memory, then 64-bit can produce a huge speed boost as there is less swapping. What is your project?
-
May 24th, 2010, 04:17 PM
#4
Re: 32bit or 64 bit
Yves
The problem is that if we compile to 64 here, we will have to duplicate the number of tests - we would test everything in both, the 32 bit and the 64 bit to make sure there is no incompatibility (it's kind of company's rules, we have no choice here).
ninja
My project is being developed using QT, and will have animation and some fancy graphics to make an attractive UI mainly to touch devices, but also for netbooks, notebooks, etc. Our starting version does not use much memory, and we hope not to use too much, since some of our target are devices with low processing capability (that's why I need a good performance).
So, by the answers I got until now, I believe there's no problem in compiling only the 32 bit version... Does anyone have another opinion?
-
May 24th, 2010, 04:21 PM
#5
Re: 32bit or 64 bit
Well from what I understood, 64 bits is only faster when using huge amounts of memory, so typically for image processing software (photoshop), video editing etc. For any other program, (especially on embedded platforms), there are no gains to be had.
Is your question related to IO?
Read this C++ FAQ article at parashift by Marshall Cline. In particular points 1-6.
It will explain how to correctly deal with IO, how to validate input, and why you shouldn't count on "while(!in.eof())". And it always makes for excellent reading.
-
May 24th, 2010, 05:32 PM
#6
Re: 32bit or 64 bit
I would probably just recommend going with whatever is standard for the platform. Windows is still in the switching period, but Apple finished their switch 5 years ago, so if you build for OSX, go with 64, it is optimized for 64-bit. Linux still has a lot of distros in both though.
-
May 24th, 2010, 05:33 PM
#7
Re: 32bit or 64 bit
Usually 64-bit architectures have a larger number of registers available, and only programs compiled for 64-bit get access to all of them. So speed could be an issue too. You really need to try it and see; there are a lot of variables.
-
May 25th, 2010, 06:52 AM
#8
Re: 32bit or 64 bit
Originally Posted by monarch_dodra
Well from what I understood, 64 bits is only faster when using huge amounts of memory, so typically for image processing software (photoshop), video editing etc. For any other program, (especially on embedded platforms), there are no gains to be had.
No, the memory issue is an aside (that can be very helpful of course, but still).
64 bit code is faster in these situations:
- Your program has integer arithmetic takes advantage of 64 bit values.
Examples are image processing libraries, matrix libraries, scientific calculations, cryptography. These benefit a lot and get to sometimes 3 to 3.5 times faster on 64 bit as compared to 32 bit. However, you (or the library developer) usually has to change the algorithms slightly to take advantage of the extra space.
In your case, this might apply for your image processing. - The compiler can take advantage of the extra registers and thus speed up inner loops and other bottlenecks. The speed up is most of the time negligeable, unless you explicitly optimize your inner loops for this.
- Huge memory requirements are an issue and you run on machines with more than 4GB of memory.
This is quite rare and doesn't seem to apply to your case anyways.
Get this small utility to do basic syntax highlighting in vBulletin forums (like Codeguru) easily.
Supports C++ and VB out of the box, but can be configured for other languages.
-
May 25th, 2010, 10:37 AM
#9
Re: 32bit or 64 bit
Thank's for all answers, guys. It was very helpful.
However, I have one extra request. Does anyone have or know an article or even a book where this comparison is made, or where the performance of 64 bit processor's are analyzed, so I can use it as a reference? I've googled it and I didn't find relevant information outside forums (maybe I was searching with the wrong terms...).
Tags for this Thread
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|