相关疑难解决方法(0)

错误java.lang.OutOfMemoryError:超出了GC开销限制

我在执行JUnit测试时收到此错误消息:

java.lang.OutOfMemoryError: GC overhead limit exceeded
Run Code Online (Sandbox Code Playgroud)

我知道它OutOfMemoryError是什么,但GC开销限制意味着什么?我怎么解决这个问题?

java garbage-collection heap-memory out-of-memory

766
推荐指数
13
解决办法
85万
查看次数

是否真的有必要在JUnit拆解方法中使对象无效?

我对类似问题的答案很感兴趣.我认为这是不正确的.所以我创建了一些测试代码.我的问题是,这个代码是否证明/反驳/不确定在拆解方法中使成员变量无效的假设?我用JUnit4.8.1测试了它.

JUnit为4个测试中的每个测试创建一个新的测试类实例.每个实例都包含一个Object obj.此obj也作为静态WeakHashMap的键插入.如果JUnit释放对测试实例的引用,则关联的obj值将被弱引用,因此符合gc条件.测试试图强制gc.WeakHashMap的大小将告诉我objs是否是gc'ed.一些测试使obj变量无效,而其他测试则没有.

import org . junit . Before ;
import org . junit . After ;
import org . junit . Test ;
import java . util . ArrayList ;
import java . util . WeakHashMap ;
import java . util . concurrent . atomic . AtomicInteger ;
import static org . junit . Assert . * ;

public class Memory
{
    static AtomicInteger idx = new AtomicInteger ( 0 ) ;

    static WeakHashMap < Object , …
Run Code Online (Sandbox Code Playgroud)

java junit

14
推荐指数
1
解决办法
6924
查看次数