首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Glassfish v3 内存和StAX 哪位高手惹的祸

2012-11-05 
Glassfish v3 内存和StAX 谁惹的祸?我办公室的电脑内存不富裕,只有1GB。Glassfish v3 用的是缺省安装,把 Fi

Glassfish v3 内存和StAX 谁惹的祸?
我办公室的电脑内存不富裕,只有1GB。Glassfish v3 用的是缺省安装,把 Firefox 设为缺省浏览器。每每调试时,总是越来越慢,几乎是回到 286 时代,看着屏幕的现实逐个字符弹出来。

想想我的电脑其实挺新的,Dual CPU 2.2G, 1GB 内存, Sata 硬盘。还是这么慢。在 任务管理器看到, java 占内存达 630MB 或以上, Netbeans 占 250MB, firefox 也有 110MB. 看来是 glassfish 用的内存太多了,优化优化吧。

在网上乱搜一通,修改 glassfish 的内存占用是在 domains\domain1\config 的 domain.xml 文件,找到 Xmx 一项:



把 512 改为 384, 保存。重启Glassfish, 好像很正常,感觉快了一点,不象老牛负重了。

我的项目把几个配置写在 xml 文件了,所以要 读取 xml 然后按取得的值转到不同的页面。开始的时候,我是用 DOM 来读取的,我的xml文件也很小,一切正常。

前几天在看网文,对于读取xml, 几乎人人口诛笔伐 DOM 占用内存大, 而 SAX 也不好,而大家一起推荐的就是 StAX. 而 StAX 是官方 在 java ee 1.5 的时候正式引入,在 java ee 1.5 tutorial 有专门的介绍和详细用法。而 java ee 1.6 也是推荐 StAX 的。既然这样,就学学它吧。

上周和周末化了点时间在网上乱搜,找到一些 StAX 的例子,找葫芦画瓢,写了读取我自己的 xml 文件的代码,测试过很正常。把这些代码段放入 我的ee项目,没问题。

周末是在家里测试代码,家里的电脑 2GB内存,Glassfish 的配置是缺省的 Xmx512m。 不过,刚开始我没注意这点。

星期一回到办公室,继续代码的干活。怪了,不断的出错。即使不出错,也是停留在某个页面,而不是按设定的 转 到其他页面。

一时头绪全无。只好慢慢追踪,把这天新加的代码全部删除,居然还是不正常。呵呵。打开 IEInspector 追踪 页面的交互,发觉没有形成 有效的链接,而这些 链接是从 xml 读取的,一步一步的断定是 xml 的读取有问题了。StAX 读取 xml 的代码应该是没问题的,我是在控制台测试后放入 ee 项目的,而且上周这些代码都正常运作。那为什么呢?难道 ee项目运行后 内存不够 StAX 的运作?

把 domain.xml 的Xmx 设置改为 512, 重启 Glassfish, 呵呵,项目页面的跳转正常了,说明 StAX 解析 xml 正常了。

很不明白,StAX 到底对内存要求是多少?它真的有特别的优势么?为什么 官方推荐它呢?
:-

热点排行