probably 90% of programs run slightly better in 32 bits than in 64 bits version.
32 bit machines seem to me more equilibrated.64 bits are a waste of memory in many (not all) cases; probably 90% of programs run slightly better in 32 bits than in 64 bits version. And furthermore, a 32 bit program runs everywhere. So I stick to 32 bits as much as I can.But soon all the machines and all the software will be 64 bits. Ok, the transition will be very smooth.
Quote from: linuxfan on May 23, 2016, 06:57:56 pmprobably 90% of programs run slightly better in 32 bits than in 64 bits version.Curiously it should be the opposite. More memory is a thing but also the 64 bit ABI is bettermore sratch registers (theorically less usage of temporaries)loading memory to xmm register is easierBut of course the compiler must take advantage of that.
True, but the average size of data increases due larger pointer and the alignment issues resulting from that. Also, on windows there is no red zone which makes leaf procedures have more overhead.From work I know that floating point gets slower in x64 on Delphi (which uses sse fpu), up to 40% and more in some routines. Those routines use goniometric and other special functions though. IIRC I checked with FPC, and there was the same pattern
What I can measure, however, is that on modern Intels 64 bit code has much higher memory throughput than 32 bit code when correctly optimized. For non- float computation intensive code that is much more important.
Could you explain that? The memory bandwidth is between cache and memory, so I don't know what 32 vs 64-bit apps have to do with it. I would expect avx code to have the same speed.The only exception that I know is int64 using encryption code like AES where the algorithm is specified in 64-bit.
Quote from: marcov on August 01, 2016, 06:17:03 pmCould you explain that? The memory bandwidth is between cache and memory, so I don't know what 32 vs 64-bit apps have to do with it. I would expect avx code to have the same speed.The only exception that I know is int64 using encryption code like AES where the algorithm is specified in 64-bit.I don't exactly know yet. But I get 20% to up to 30% speed increase on large moves and copy operations. You should see that too, because it is really significant.
Haven't owned a 32-bit machine since late 2007 here, and I'm not sure why anyone would choose to do so (for home use, that is.)
Sadly, x32 is not supported by FPC now, AFAIR.