Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I had 32bit Ubuntu (with Xfce) and now I switch to 64bit Xubuntu and I'm not sure but I think that 32bit had better performace, but just a feeling. I want to know which one 32 or 64 will give better performace.

I'm don't ask about the kernel but the whole system.

My Machine: Asus laptop k51e with 4GB Ram and AMD Sempron 2 GHz processor.

share|improve this question
    
For which host machine? –  galegosimpatico Aug 30 '13 at 6:27
    
@uprego 64bit laptop, I think that you can't install 64bit on 32bit processor machine. –  jcubic Aug 30 '13 at 6:28
    
how much memory do you have? –  Keltari Aug 30 '13 at 6:29
    
For which x86_64 compatible host laptop? –  galegosimpatico Aug 30 '13 at 6:31
    
Updated info about my machine. –  jcubic Aug 30 '13 at 6:44

4 Answers 4

up vote 2 down vote accepted

AMD crammed 64-bit support into the Sempron without a redesign. This necessarily entailed a lot of compromises as a design optimized for 64-bit operation would have a lot of fundamental differences at a very low level.

As a result, 64-bit operations in 64-bit mode are about 35% slower on the Sempron than similar 32-bit operations in 32-bit mode. Of course if you would need two 32-bit operations instead of one 64-bit operation, that's still a win for 64-bit mode. But if you replace 64-bit operations with 32-bit operations, as the kernel does for pointers, you take that performance penalty.

There are still a lot of benefits to 64-bit operation. 64-bit operations are significantly faster for those times when you need them. And you have twice as many general purpose registers.

Unfortunately, 64-bit programs tend to require more memory bandwidth than 32-bit programs, and the Sempron has a memory controller with just a single channel. It relies on caches to hide this cost, but 64-bit programs move more data and so tend to have higher cache miss rates for the same cache size.

So your results aren't really all that surprising.

share|improve this answer
    
So your results aren't really all that surprising. OP bought a machine with an AMD CPU and has concerns about performance? I agree, this is expected. –  ta.speot.is Aug 30 '13 at 7:27
    
@ta.speot.is Intel did the same thing with the Pentium D with similar results. But your response is very funny. –  David Schwartz Aug 30 '13 at 7:29
    
What 64bit processor will be faster in 64bit mode then? What to know if I plan to buy another machine. –  jcubic Aug 30 '13 at 8:04
    
Pretty much every x86 CPU put on the market since 2008 was designed from the ground up to perform well in 64-bit mode. –  David Schwartz Aug 30 '13 at 20:29

Do a search and you'll find tons of benchmark out there. In general 64 bit OS will have better performance because they have a larger register number which reduce memory access, SSE2 by default and many other newer features. But very large programs may suffer from cache miss because larger pointer and some data size, although most variable type still have the same size as 32 bit version

share|improve this answer

You would typically expect the same or better performance (depending on the way the software is written and the compile option) from a 64 bit OS unless your system is very memory constrained - 64 bit computers may take up more memory when representing some values.

share|improve this answer

Space is performance.

Little caches perform better than big ones, and more 32-bit entries will fit in a fixed-size cache than 64-bit ones.

So, all other things being equal, 32-bit systems perform better than 64-bit ones.

share|improve this answer
    
The thing is, all other things are not equal. For example, his CPU has more general purpose registers in 64-bit mode than it does in 32-bit mode. So while this answer is correct, it doesn't apply to any real-world situation. –  David Schwartz Aug 30 '13 at 7:01
    
How do you get that little caches perform better then big ones ? This makes no sense to me - and in the case where you are talking of a cache with fewer entries being faster to parse then a cache with lots of entries, the number of entries are the same in a 32 and 64 bit system, just the byte offsets will be different. As an operation typically takes place across all the bits, you will get performance speedups for some representations of data, and operations on variables optimumly represented with fewer bits will take the same amount of time. –  davidgo Aug 30 '13 at 7:08
    
Little caches perform better than big ones, and more 32-bit entries will fit in a fixed-size cache than 64-bit ones. What if the host system has 128 GB of RAM and the size of the fixed-size cache is 64 GB? How much faster will the 32-bit system be now? –  ta.speot.is Aug 30 '13 at 7:25
    
Performance is inherently tied to a component complexity. Little cache (as direct-mapped against fully associative) are faster because simpler. The cache number of entries is the same regardless of the 32/64-bit aspect (in general 64 bytes cache lines), but the point is that such a 64 bytes cache line would contain 16 32-bit entries and only 8 64-bits ones. Memory use is 'stretched', leading to more cache lines being used for the same program, and finally to more cache eviction. –  lled Aug 30 '13 at 7:33
    
@ysomane: in fact due to the large register file, memory access on x86_64 would be much less than on x86. Consequently, cache miss on x86_64 is less than on x86 i.imm.io/1g4yc.png cs.ucf.edu/~wspires/32bit_versus_64bit_amd64.pdf –  Lưu Vĩnh Phúc Sep 13 '13 at 5:16

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.