[Modelinterpreter] IncQuery: GC overhead limit exceeded
Ujhelyi Zoltán
ujhelyiz at incquerylabs.com
Thu Sep 24 12:08:26 CEST 2015
Szia!
Ez azt jelenti, hogy az IncQuery betöltötte az alkalmazás heap méretét. Lehetséges megoldások:
* Heap méret növelése (ha nem érte el a maximális mennyiséget)
* Meggyőződni róla, hogy a minták jók (nem fogyasztanak egyesével túl sok memóriát); erre használható a QueryPerformanceTester base class az incquery repoban: http://git.eclipse.org/c/incquery/org.eclipse.incquery.git/tree/tests/org.eclipse.incquery.testing.core/src/org/eclipse/incquery/testing/core/QueryPerformanceTest.xtend
* Odafigyelni rá, hogy nem nyitottunk véletlenül több IncQueryEngine-t, ami sokszorozza a memóriafogyasztást.
Üdv,
Zoli
-- Zoltán Ujhelyi
Technology Expert
IncQueryLabs Ltd.
> On 24 Sep 2015, at 11:30, Boldizsár Németh <nboldi at caesar.elte.hu> wrote:
>
> Szia!
>
> Mostanság az IncQuery elkezdett a következő hibával meghalni. Nem determinisztikus a gond, több modellem is van egy workspace-ben, azóta produkálja ezt a viselkedést.
>
> !ENTRY org.eclipse.core.jobs 4 2 2015-09-24 11:23:51.300
> !MESSAGE An internal error occurred during: "Building workspace".
> !STACK 0
> java.lang.OutOfMemoryError: GC overhead limit exceeded
> at java.util.HashMap.resize(HashMap.java:703)
> at java.util.HashMap.putVal(HashMap.java:662)
> at java.util.HashMap.put(HashMap.java:611)
> at org.eclipse.incquery.runtime.rete.tuple.TupleMemory.add(TupleMemory.java:54)
> at org.eclipse.incquery.runtime.rete.tuple.TupleMemory.add(TupleMemory.java:1)
> at org.eclipse.incquery.runtime.rete.tuple.MaskedTupleMemory.add(MaskedTupleMemory.java:79)
> at org.eclipse.incquery.runtime.rete.index.IndexerWithMemory.update(IndexerWithMemory.java:50)
> at org.eclipse.incquery.runtime.rete.network.ReteContainer.messageConsumptionSingleThreaded(ReteContainer.java:461)
> at org.eclipse.incquery.runtime.rete.network.Network.waitForReteTermination(Network.java:347)
> at org.eclipse.incquery.runtime.rete.boundary.ExternalInputEnumeratorNode.update(ExternalInputEnumeratorNode.java:99)
> at org.eclipse.incquery.runtime.emf.EMFQueryRuntimeContext$EClassTransitiveInstancesAdapter.instanceInserted(EMFQueryRuntimeContext.java:450)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.notifyInstanceListeners(NavigationHelperContentAdapter.java:745)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.insertIntoInstanceSet(NavigationHelperContentAdapter.java:545)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperVisitor.visitElement(NavigationHelperVisitor.java:202)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:185)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseFeatureInternal(EMFModelComprehension.java:261)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:197)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseFeatureInternal(EMFModelComprehension.java:261)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObject(EMFModelComprehension.java:197)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseObjectIfUnfiltered(EMFModelComprehension.java:178)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResource(EMFModelComprehension.java:168)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResourceIfUnfiltered(EMFModelComprehension.java:158)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseResourceSet(EMFModelComprehension.java:146)
> at org.eclipse.incquery.runtime.base.comprehension.EMFModelComprehension.traverseModel(EMFModelComprehension.java:137)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.traverse(NavigationHelperImpl.java:1102)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.access$0(NavigationHelperImpl.java:1099)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl$5.call(NavigationHelperImpl.java:1079)
> at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.coalesceTraversals(NavigationHelperImpl.java:1028)
> at org.eclipse.incquery.runtime.emf.EMFBaseIndexWrapper.coalesceTraversals(EMFBaseIndexWrapper.java:60)
> at org.eclipse.incquery.runtime.internal.apiimpl.IncQueryEngineImpl.prepareGroup(IncQueryEngineImpl.java:585)
>
> Üdv,
> Boldi
More information about the Modelinterpreter
mailing list