首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

大局化ArrayList,做为大型网站常用数据存储容器,是否会导致内存泄漏

2012-12-14 
全局化ArrayList,做为大型网站常用数据存储容器,是否会导致内存泄漏最近开发一个行网项目,对于一些频繁用

全局化ArrayList,做为大型网站常用数据存储容器,是否会导致内存泄漏
最近开发一个行网项目,对于一些频繁用到又不易更新的数据,譬如地区信息、一些基本的分类、新闻的分类,我采用了ArrayList 静态化 做为数据存储的容器,这样避免每次读取都要经过数据库,但是在做性能测试的时候发现jvm每次gc后的可用内存越来越小,到最后只剩下34M可用内存,于是想到了是不是全局化ArrayList造成的。
[最优解释]
就算你不做静态化存储,JVM的可用内存也会越来越小;关键是后面能否GC回收回来。

缓存只要正确控制好内容和条目数,是可以有效提升性能的。
如果你担心的话,就注意检查你ArrayList的规模。

其实。。。如果你用了Hibernate或MyBatis之类的数据访问组件的话,它们都是可以针对表配置缓存的。
[其他解释]
静态化在GC后是不会变化的,运行一顿时间后如果稳定在一个值上是没有问题的。
[其他解释]
你说的关键就是我要说的关键,每次GC后可用内存都慢慢变小,一直到34M后才算稳定了,我设置的JVM大小可是1G
[其他解释]
你是用什么工具看的?

另外,检查下你用于缓存的ArrayList的规模,也就是size()。
[其他解释]
自己写的脚本测试的,并没有存储大型数据,各位这么说我心里有数了,感谢各位了
[其他解释]
你的这种方式我们也经常用,一次性加载到内存一般是稳定,但是不要太大。
[其他解释]
应该是代码有问题。  怎么会内存越来越高了呢。

热点排行