Java与64位架构

硬件、操作系统、Java虚拟机关系

64bit

如图所示,底层是64位的,上层可以选择32位的;反过来则不行。可以看出,要想安装64位的JVM,操作系统和硬件必须都是64位的才行。

Heap Size与GC的关系

64bit_2

可以看出,Heap=1.5G时的GC所占用的时间几乎是Heap=13.5G的5倍。也就是说,Heap=13.5G时的吞吐率是Heap=1.5G时的5倍。
但是,评估GC好坏的另一个指标是GC暂停时间,而GC暂停时间与两个因素有关:Heap大小和“活对象“的数量。一方面,Heap越大,GC暂停时间越长;另一方面,Heap越大,“活对象“的数量越小,数据访问集中在内存中,访问硬盘的几率很小,因此GC暂停时间越小。

32位到64位移植问题

从32位移植到64位的主要问题是JNI native code。如果使用了32位的JNI native code,则移植到64位上会有问题,因为32位的JNI native code无法运行在64位的操作系统中。你需要在64位平台上重新编译32位的JNI native code,如果你有源代码。如果没有源代码,则无法移植。

参考资料

(完)

开发版WebLogic Server使用说明

以前的WebLogic Server安装方式主要有两种,网络安装与安装包方式。WebLogic Server 10.3.3以后引入了一种新的安装方式,压缩包安装。

下载试用:http://www.oracle.com/technetwork/middleware/ias/downloads/wls-main-097127.html

选择:Oracle WebLogic Server 11gR1 (10.3.3) ZIP Distribution

为什么要引入压缩包安装

随着WebLogic Server功能的不断增强,其安装包的尺寸也越来越大。从当初的几十兆,到如今的近1个G,但问题是作为用户真得需要那么多功能吗?也许用户只想开发的WAR应用,但是也不得不安装诸如EJB容器这样的庞然大物。虽然WebLogic 10.x版后引入了模块化安装,即:用户在安装WebLogic Server时可以选择使用的模块,但是安装包却一点也没有减肥。那么有没针对开发人员的简化版的WebLogic Server呢?那就是压缩包安装WebLogic Server,它具备:尺寸小(400M多一点)、功能简、使用容的诸多特点。

如何安装配置

1. 将下载下来的压缩包(wls1033_dev.zip)解压缩到任一目录

2. 设置如下环境变量

  • JAVA_HOME
  • MW_HOME(即解压后的根目录,例如:d:\wls1033_dev)

3. 执行配置脚本

%MW_HOME%\configure.cmd

4. 创建Domain目录

随意创建Domain目录,例如:%MW_HOME%\mydomain

5. 启动Domain

%JAVA_HOME%/bin/java -Xmx1024m -XX:MaxPermSize=128m weblogic.Server

在提示符下输入管理用户名/密码,例如:weblogic/welcome1

Domain默认配置信息:

  • 监听地址:localhost
  • 监听端口:7001
  • 域管理服务器:myserver

关于Win7 64位

由于我使用的操作系统是Win7 64 Professional版本,所以在设置JAVA_HOME时,我也使用的是64位的JDK。因此,输入用户名/密码时,报如下错误信息:

Enter username to boot WebLogic server:weblogic
<2010-8-8 上午10时56分33秒 CST> <Error> <Security> <BEA-090783> <Server is Runni
ng in Development Mode and Native Library(terminalio) to read the password secur
ely from commandline is not found.>
<2010-8-8 上午10时56分33秒 CST> <Notice> <WebLogicServer> <BEA-000388> <JVM call
ed WLS shutdown hook. The server will force shutdown now>
<2010-8-8 上午10时56分33秒 CST> <Notice> <WebLogicServer> <BEA-000365> <Server s
tate changed to FORCE_SHUTTING_DOWN>

很明显,这个问题是由于terminalio库加载出的问题,于是将JDK换成32位,问题解决。其实,这个问题本可避免,因为在下载页面上也清楚注明只有32位JVM支持的下载,这又一次证明了永远不要和官方文档对着干的真理。解决此问题时,看到一个贴子不错,也一道分享了吧:http://forums.oracle.com/forums/thread.jspa?threadID=932173

(完)