我有一个包含 20000 个节点的图。以下代码引发异常。
double Di=0;
Iterator<Relationship> rel;
int cnt=0;
for (int i = 0; i < geni.size(); i++)
{
Di=0;
cnt=0;
rel = geni.get(i).getRelationships(RelTypes.SIM).iterator();
while (rel.hasNext())
{Di+=(Double)rel.next().getProperty("SIM");
cnt++;
}
System.out.println(i+" "+cnt);
}
此代码打印:
0 11749
1 11974
2 11949
.
.
74 10126
75 10102
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
如果我使用:
Runtime r = Runtime.getRuntime();
long freeMem = r.freeMemory();
System.out.println("free memory: " + freeMem);
我可以看到很多可用内存。
我有Di的一种,cnt的一种,rel的一种。我不明白为什么我有这个例外。