Xeon + Mac OS X + Java
研究室の Mac Pro は Dual Core Xeon x 2 で Mac OS X が入っているんだけど、当然 Java も 64bits モードで動くと思っていたら。
% java -Xmx4000m test Error occurred during initialization of VM Could not reserve enough space for object heap
あれ?
% file $(readlink $(which java)) /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java: Mach-O universal binary with 2 architectures /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java (for architecture i386): Mach-O executable i386 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Commands/java (for architecture ppc): Mach-O executable ppc
32bits の Universal Binary かよ。せっかく 12GBytes のメモリを積んでいるのに、これだと Java では 2GBytes しかメモリを使えない。なんだかなぁ。
しかも、
% arch i386
だったり、gcc の生成コードはデフォルトで 32bits コードだったり。
% gcc -o test test.c % file test test: Mach-O executable i386 % gcc -m64 -o test test.c % file test test: Mach-O 64-bit executable x86_64
まぁ、OS 自体は 32bits だから仕方ないといえば仕方ないのかなぁ。Leopard になると違うのかもしれない。
とりあえず、昨日の件もあわせて OS を Linux に入れ替える方向で進言したほうがいいような気がしてきた。