java程序 在32位机和64位机上运行,有什么区别
展开全部
严格意义上来说,性能上会有一点差异,同样的程序迁移到64bit的性能可能会有小幅度下降。另外,64bit的jvm不再有heap size的限制。
The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.
理论上来说32位的JVM有4G的堆大小限制。但是因为各种条件限制比如交换区,内核地址空间使用,内存碎片,虚拟管理机的管理开销,实际上可用的堆的大小远远比理论上的4G要少。
在32位windows的机器上,堆最大可以达到1.4G至1.6G。
在32位solaris的机器上,堆最大可以达到2G
而在64位的操作系统上,32位的JVM,堆大小可以达到4G
补充一句,在使用java参数-xms -xmx定义堆大小的时候,
1. 如果是32bit的jvm超过4G肯定是没用的,定义了4G,最终使用到的可能只有2G
2. 这两个值最好定义成一样,可以减少java gc的操作,有小幅度性能提高
The maximum theoretical heap limit for the 32-bit JVM is 4G. Due to various additional constraints such as available swap, kernel address space usage, memory fragmentation, and VM overhead, in practice the limit can be much lower. On most modern 32-bit Windows systems the maximum heap size will range from 1.4G to 1.6G. On 32-bit Solaris kernels the address space is limited to 2G. On 64-bit operating systems running the 32-bit VM, the max heap size can be higher, approaching 4G on many Solaris systems.
理论上来说32位的JVM有4G的堆大小限制。但是因为各种条件限制比如交换区,内核地址空间使用,内存碎片,虚拟管理机的管理开销,实际上可用的堆的大小远远比理论上的4G要少。
在32位windows的机器上,堆最大可以达到1.4G至1.6G。
在32位solaris的机器上,堆最大可以达到2G
而在64位的操作系统上,32位的JVM,堆大小可以达到4G
补充一句,在使用java参数-xms -xmx定义堆大小的时候,
1. 如果是32bit的jvm超过4G肯定是没用的,定义了4G,最终使用到的可能只有2G
2. 这两个值最好定义成一样,可以减少java gc的操作,有小幅度性能提高
展开全部
哈,按照oracle官方给出的内容: java是编写一次,到处运行的一种编程语言.也就是传说中的跨平台. 但是这个所谓的跨平台,其实都是建立在同一个前提条件下的,就是你的运行java文件的os环境,必须安装好jdk,使用jvm运行.
那么问题就来了,每一个os都有不同的版本,如win的32和64,那么安装jdk就要选择好对应的版本安装了. 其实在64位上安装32位的jdk也是可以运行的,但是并不提倡这么做. 在服务器环境中,一般采用的都是64的os platform , 所以,一般都是安装64的jdk.
要是真论32和64的话,跟系统架构有关,理论上64位的cpu处理速度比32位的快,但就是java程序来说,并没有区别,语法一样,只是jdk不一样而已
那么问题就来了,每一个os都有不同的版本,如win的32和64,那么安装jdk就要选择好对应的版本安装了. 其实在64位上安装32位的jdk也是可以运行的,但是并不提倡这么做. 在服务器环境中,一般采用的都是64的os platform , 所以,一般都是安装64的jdk.
要是真论32和64的话,跟系统架构有关,理论上64位的cpu处理速度比32位的快,但就是java程序来说,并没有区别,语法一样,只是jdk不一样而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
64位机上写好的程序导入到32位机上会出现问题,换一下jre system library 就可以了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java程序没有区别,主要是jvm有区别,需要安装对应版本的jdk
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没区别,都能运行,他是集成软件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询