2008/8/21 Trent Nelson <[EMAIL PROTECTED]>:
> Slightly off-topic: I'm fascinated by x64 vs. x86 performance comparisons
> like these, especially when x64 lags (often significantly) behind x86.
> What's going on here?  Does the sheer size difference between x64 code and
> x86 code trump all other benefits offered by x64?  What about all the extra
> registers available?  (Or is that a non-issue given the prolific register
> re-naming an Intel x86 chip does these days?)  Is it just that compilers
> generating x64 code just aren't as mature as x86 compilers yet?  Or do we
> incur a penalty from WoW64?  Can we never expect the performance of x64 code
> to surpass x86 code?  Surely the momentum towards x64 (try buy a non-x64 CPU
> these days) is sustained by something other than having access an
> addressable memory area greater than 2^32?

1. Code size difference matters *a lot*. Pointers are twice the size, and that
means less cache.
2. If you memory map data larger than 2 GB, x64 wins.
3. If you do bigint (anything involving 32bit-32bit multiplication), x64 wins.
See the case study at http://gmplib.org/32vs64.html
4. Extra registers *can* help, if your compiler explots it well. But the point 1
*may* offset any benefit.
5. IIRC Mono x64 JIT is basically the same codebase as Mono x86 JIT, and
the point 1 and 4 seems to pretty much offset each other. So they perform
about the same, except when the point 2 or 3 apply.

-- 
Seo Sanghyeon
_______________________________________________
Users mailing list
Users@lists.ironpython.com
http://lists.ironpython.com/listinfo.cgi/users-ironpython.com

Reply via email to