[Openmcl-devel] 64 bit vs 32 bit

Raffael Cavallaro raffaelcavallaro at mac.com
Fri Jun 12 05:08:22 PDT 2009


On Jun 12, 2009, at 1:51 AM, Neil Baylis wrote:

> Is there any advantage to using the 64 bit version on a system with  
> less than 4 GByte of memory? Is it superior to the 32 bit version in  
> any other ways?

You might also want to take note of the fact that foreign calls are  
significantly slower on the 64-bit intel CCL than the 32-bit intel CCL:

<Gary Byers quoted below>

"there's a lot
more overhead in a Darwinx8664 foreign function call than there
is on other platforms."

"(let (t1 t2 t3 t4)
  (setq t1 (#_mach_absolute_time))
  (setq t2 (#_mach_absolute_time))
  (setq t3 (#_mach_absolute_time))
  (setq t4 (#_mach_absolute_time))
  (format t "~%t2-t1=~A, t3-t2=~A, t4-t3=~A" (- t2 t1) (- t3 t2) (- t4  
t3)))

generates results like:

t2-t1=341, t3-t2=146, t4-t3=140

in 32-bit Darwin x86 CCL, and generates results like:

t2-t1=1995, t3-t2=1809, t4-t3=1795

on x86-64 Darwin.  That's pretty pronounced - rouughly an order of
magnitud - and it's directly attributable to those extra syscalls
(Getting rid of the syscalls would speed up ff-call on x86-64 Darwin,
but would would make one less register available for general use
and would likely slow down many other things.)"



Raffael Cavallaro
raffaelcavallaro at me.com








More information about the Openmcl-devel mailing list