如果楼主的内存是16G的话,不妨可以装64位的JDK(当然操作系统也要64bit),并确认开启了指针压缩(64位的JDK相对于32位JDK要更耗内存),这样就基本没有内存限制了。堆内存可以设置为一半,8G,这个要看你的应用规模了。当然,如果楼主使用的是hotspot虚拟机的话,堆里面各个代(新生代,老生代,PermGen)的大小也需要好好设置一下。一般来说,新生代设置(-XX:NewSize=...)为堆大小的3/8,PermGen(-XX:PermSize=512m, -XX:MaxPermSize=512m)有512m足够了。总的来说,要看应用的需求。
这个是你运行程序时所需要的内存大小,只要够你的程序运行就可以了 ,如果你的程序需要的内存大呢就把这个 JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】'
set JAVA_OPTS=-Xms1024m -Xmx2048m 设的大点。
Under Windows (for my application - a long running risk management
application) we observed that we could go no further than 1280MB on
Windows 32bit.