如何让JVM快速释放对象的内存?

为什么要快速释放内存?这个得具体情况具体分析吧,频繁的GC并不是好事。可以试着用下软引用和和弱引用具体参看: java.lang.ref.SoftReference和 java.lang.ref.WeakReference。Java出现内存泄露和outMemery的情况不多,更多的是发生避免发生full GC。如果程序运行时占用内存很大并且有持续增加的倾向才需要专门调整JVM参数,大多数情况下默认的JVM设置就够用了,不了解的话调了反而容易出问题。

jvm性能调优都做了什么

JVM性能调优有很多设置,这个参考JVM参数即可.
主要调优的目的:
1. 控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为
2. 控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较多的时候,就需要控制新生代的堆大小.同时,还要需要控制总的JVM大小避免内存溢出
3. 控制JVM线程的内存分配.如果是多线程程序,产生线程和线程运行所消耗的内存也是可以控制的,需要通过一定时间的观测后,配置最优结果

jvm对 Survivor Space怎么控制最大值

使用-XX:SurvivorRatio=8参数控制。因为surivor有两个,设置为8的意思是Eden Space对两个Survivor比值为8:1:1如果你-Xmn配置的为什么1000M的话,那单个Survivor的空间即为1000/10(8+1+1) * 1 = 100M