2015-09-18 5 views
0

Я хотел бы знать, как я могу отслеживать причину этой ошибки, показанной выше. Есть ли способ отслеживать объекты, сгенерированные во время тестирования, или если есть какое-либо хорошее решение для решения этой проблемы. Эта ошибка возникает при запуске тестов на jenkins.Ограничение верхнего предела GC, вызванное во время испытаний на Jenkins

java.lang.OutOfMemoryError: GC overhead limit exceeded 
Dumping heap to java_pid18526.hprof ... 
Heap dump file created [1438953690 bytes in 25.846 secs] 
Ran out of memory creating debug info for an error 
java.lang.OutOfMemoryError: GC overhead limit exceeded 
    at java.util.HashMap.resize(HashMap.java:580) 
    at java.util.HashMap.addEntry(HashMap.java:879) 
    at java.util.HashMap.put(HashMap.java:505) 
    at java.util.HashSet.add(HashSet.java:217) 
    at org.aspectj.apache.bcel.generic.InstructionHandle.addTargeter(InstructionHandle.java:161) 
    at org.aspectj.apache.bcel.generic.MethodGen.<init>(MethodGen.java:300) 
    at org.aspectj.weaver.bcel.LazyMethodGen.initialize(LazyMethodGen.java:336) 
    at org.aspectj.weaver.bcel.LazyMethodGen.markAsChanged(LazyMethodGen.java:504) 
    at org.aspectj.weaver.bcel.LazyMethodGen.getBody(LazyMethodGen.java:894) 
    at org.aspectj.weaver.bcel.BcelShadow.makeShadowForMethod(BcelShadow.java:679) 
    at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:675) 
    at org.aspectj.weaver.bcel.BcelShadow.makeMethodExecution(BcelShadow.java:655) 
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2532) 
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:480) 
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:99) 
    at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1691) 
    at org.aspectj.weaver.bcel.BcelWeaver.weaveWithoutDump(BcelWeaver.java:1635) 
    at org.aspectj.weaver.bcel.BcelWeaver.weaveAndNotify(BcelWeaver.java:1400) 
    at org.aspectj.weaver.bcel.BcelWeaver.weave(BcelWeaver.java:1186) 
    at org.aspectj.weaver.tools.WeavingAdaptor.getWovenBytes(WeavingAdaptor.java:525) 
    at org.aspectj.weaver.tools.WeavingAdaptor.weaveClass(WeavingAdaptor.java:361) 
    at org.aspectj.weaver.loadtime.Aj.preProcess(Aj.java:99) 
    at org.aspectj.weaver.loadtime.ClassPreProcessorAgentAdapter.transform(ClassPreProcessorAgentAdapter.java:54) 
    at sun.instrument.TransformerManager.transform(TransformerManager.java:188) 
    at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
+0

Каким образом это помогло? http://stackoverflow.com/questions/1393486/error-java-lang-outofmemoryerror-gc-overhead-limit-exceeded?rq=1 http://stackoverflow.com/questions/4371505/gc-overhead-limit-exceeded ? rq = 1 –

+0

Как в вопросе: «Есть ли способ отслеживать объекты, сгенерированные во время проверки?» Я хочу знать, есть ли способ отслеживать созданные объекты, кто их создает и т. д. У нас есть некоторые плагины на Java чтобы увидеть это, но я не смог найти ничего для тестирования. – Igor

ответ

0

Есть в любом случае для отслеживания объектов, сгенерированных во время испытания работы

Используйте профайлер, который имеет запись распределения.

Бесплатно: VisualVM, hprof (CLI)
Коммерческий: Java Mission Control, JProfiler, Yourkit Java Profiler.

Смежные вопросы