32ビットOSから64ビットOSへの移植にあたり、Javaヒープとスタックの使用量が増加します。
以下の記事を熟読の上、十分なチューニングを実施してください。
Javaヒープ
64ビットOS上で64ビットモードのOpenJDKを使ってJavaプログラムを動作させる場合、32ビットOSまたは64ビットOS上で32ビットモードのJDK/JREを使ってJavaプログラムを動作させた場合の設定に対して、1.5~2倍のJavaヒープ量が必要です。これは、64ビットモードの場合、1オブジェクトあたりに必要となるメモリ域の大きさが32ビットモードの場合よりも大きくなっているためです。
そのため、32ビットモードのJDK/JREを使用して他システム上で動作していたアプリケーションを移植する際、同じ設定で64ビットモードのOpenJDKを使用して動作させた場合、OutOfMemoryErrorが発生するか、ガーベジコレクション(GC/Full GC)による性能への影響が考えられます。
オブジェクト参照圧縮機能が有効な場合のJavaヒープ
Interstage Application Server V10.0より、「オブジェクト参照圧縮機能」が実装され、かつデフォルト状態で当該機能が有効となっています。そのため、Javaヒープサイズ(注)の指定が32GB未満の場合に本機能が有効になり、本機能がない場合より、少ないJavaヒープ量でJavaアプリケーションが実行できます。
詳細は、「チューニングガイド」の「OpenJDK 8のチューニング」の「ガーベジコレクション(GC)」の「オブジェクト参照の圧縮機能」を参照してください。
注)メタスペースを含まないメモリ割り当てプールの大きさになります。
スタック
Java APIで生成されたスレッドや動的コンパイルを行うコンパイラスレッドのスタックサイズは、64ビットモードのOpenJDKと32ビットモードのJDK/JREでは異なり、64ビットモードのOpenJDKの場合の方がより大きな値になっています。
詳細は、「チューニングガイド」の「OpenJDK 8のチューニング」の「チューニング方法」の「スタックのチューニング」を参照してください。