BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #47218同步于 2016/1/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

大神们,小白求助一个大数组的回收问题

airfan
2016/1/11镜像同步15 回复
RT,程序里面会涉及到大数组运算,所以想在使用之后及时把占用的内存回收掉,原本打算直接把引用置null,但在网上搜了搜,有人说这样做用处不大;也有推荐每次自己调用System.gc()的,但也有人反对说自己调用后,JVM也不一定会立刻回收......小白晕晕的,到底怎么做比较好? 顺便希望大神们指导一下想要深入了解JVM原理,如何入门[ema1] 望大神们赐教[ema23]
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
icyfox机器人#1 · 2016/1/11
你的软件经常会OOM么? 如果不会的话,就不要考虑这个问题。 Java就是为了省事儿的
airfan机器人#2 · 2016/1/11
谢谢,还没写完,不过粗略算了算内存可能会的。 【 在 icyfox 的大作中提到: 】 : 你的软件经常会OOM么? : 如果不会的话,就不要考虑这个问题。 : Java就是为了省事儿的
aiquestion机器人#3 · 2016/1/11
建议不要自己搞,让JVM自己去管理内存就好了。 如果担心这个有问题,可以在写完之后做一下压力测试,可以主要关注一下GC的频率以及Full GC暂停的时间(因为full gc 会暂停所有线程,如果是webserver的话有可能导致这期间的request超时) 如果gc的值可以接受就不用搞什么优化了。 如果gc暂停时间太长,可以先考虑调整下JVM的参数(各个xx代的大小之类的)。 【 在 airfan 的大作中提到: 】 : RT,程序里面会涉及到大数组运算,所以想在使用之后及时把占用的内存回收掉,原本打算直接把引用置null,但在网上搜了搜,有人说这样做用处不大;也有推荐每次自己调用System.gc()的,但也有人反对说自己调用后,JVM也不一定会立刻回收......小白晕晕的,到底怎么做比较好? : 顺便希望大神们指导一下想要深入了解JVM原理,如何入门 : 望大神们赐教
poiuasd机器人#4 · 2016/1/11
使用软引用?
airfan机器人#5 · 2016/1/11
谢谢~ 【 在 aiquestion 的大作中提到: 】 : 建议不要自己搞,让JVM自己去管理内存就好了。 : 如果担心这个有问题,可以在写完之后做一下压力测试,可以主要关注一下GC的频率以及Full GC暂停的时间(因为full gc 会暂停所有线程,如果是webserver的话有可能导致这期间的request超时) : 如果gc的值可以接受就不用搞什么优化了。 : ...................
airfan机器人#6 · 2016/1/11
我查一查[ema1] 【 在 poiuasd 的大作中提到: 】 : 使用软引用?
airfan机器人#7 · 2016/1/11
所以说置null确实毫无用处是吗?
icyfox机器人#8 · 2016/1/11
还是说一句,有用, 有什么用呢,让JVM下次回收的时候回收掉 JVM下次什么时候回收呢? 不知道,很可能是eden不够的时候 我可以控制它的回收吗? 不能,也能。 System.gc() 但是,System.gc()只是告诉JVM,我想让你去回收内存。 至于JVM听不听话,要墨迹多久,那就不一定了。 话都说到这份上了,如果你的需求要消耗电脑内存以上的内存数(8G? 16G?),那回收也没用。 如果不用那么多,交给JVM处理。 如果觉得JVM实时性不好,请用C++。 【 在 airfan (airfan) 的大作中提到: 】 : 所以说置null确实毫无用处是吗?
aiquestion机器人#9 · 2016/1/11
http://stackoverflow.com/questions/850878/does-setting-java-objects-to-null-do-anything-anymore 【 在 airfan 的大作中提到: 】 : 所以说置null确实毫无用处是吗?