2011-01-04 14 views
6

Windows'ta Maven birim testlerimi çalıştırırken OutOfMemory istisnası alıyorum. Eminfire argLine için -XX: -HeapDumpOnOutOfMemoryError seçeneğini eklemeyi denedim, ancak döküm dosyası oluşturulmadı. Aynı şey MAVEN_OPTS için de eklemeye çalıştım, ama yine de bir şey yok, bir OutOfMemory istisnası alıyorum ve işlemi el ile öldürene kadar askıda kalıyorum.surefire HeapDumpOnOutOfMemoryError

<plugin> 
    <artifactId>maven-surefire-plugin</artifactId> 
    <configuration>      
     <testFailureIgnore>false</testFailureIgnore> 
     <argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:-HeapDumpOnOutOfMemoryError</argLine> 
     <forkMode>once</forkMode>    
    </configuration> 
</plugin> 

MAVEN_OPTS:

Benim pom aşağıdaki gibidir

set MAVEN_OPTS=-XX:-HeapDumpOnOutOfMemoryError 

herhangi bir döküm dosyası oluşturulur neden bir fikrin var mı?

+0

cevap doğru biridir. – t0r0X

cevap

2

bu deneyin:

Kişisel bellek sızıntısı sadece sabit olabilir
set MAVEN_OPTS="-Dmaven.surefire.debug=\"-XX:-HeapDumpOnOutOfMemoryError\"" 
+0

Hala hiçbir şey. Herhangi bir çıktı göremiyorum. Bir profiler kullanarak bağlanarak bellek sızıntısını bulmayı başardım, bu yüzden cevabınız için zaten teşekkürler. – Koby

1

, http://jira.codehaus.org/browse/SUREFIRE-495 bakın. 2.7.1 veya daha yeni bir şey denemek isteyebilirsiniz.

+0

Yanıtladığınız için teşekkürler, ancak sorunum eminimle ilgili değil. Testlerimde bahar kullanıyorum ve tekrar tekrar aynı fasulyeler için farklı uygulama ortamlarım var. Bahar önbellek uygulama performansları nedeniyle performans nedenlerinden dolayı hiçbiri imha edilmedi ve OutOfMemory hatasını aldım. Düzeltme, testlerimi farklı bağlamlarda kopyalamak yerine aynı bağlamları kullanacak şekilde değiştirmektir. – Koby

0

Sana yolunu unutmak düşünüyorum:

<argLine>-Xms512m -Xmx512m -XX:PermSize=256m -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp</argLine> 

bu argümanla: @twillouer dan

 -XX:HeapDumpPath=/tmp 
+0

Bu gerekli değildir. Öbek dökümü, proje dizininde varsayılan olarak oluşturulur (Netbeans aracılığıyla Maven'i başlatırım). Ne zaman gerekli olur? Geçerli dizin ne zaman farklı (ve yazılmaz) olur? –