`
kingsz1
  • 浏览: 155159 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

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 到底对内存要求是多少?它真的有特别的优势么?为什么 官方推荐它呢?
:-

  • 大小: 46.4 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics