JavaFX Sahne Oluşturucu'da bellek sızıntısı (göründüğü gibi) ile ilgili sorun yaşıyorum. Bir hata raporu hazırladım, ancak bu arada Scene Builder 10+ GB kullandığından sistemim bazen dayanılmaz derecede yavaşlıyor.
Geçici bir düzeltme olarak, kullanabileceği bellek miktarını sınırlamak istiyorum. Aşağıdakileri JVMOptions altındaki SceneBuilder.cfg dosyasında ayarlamayı denedim:
-XX:InitialHeapSize=256m
-XX:MaxHeapSize=256m
-XX:MaxMetaspaceSize=256m
jps
Argümanların sürece iletildiğini onaylar:
3052 -Djava.library.path=/opt/SceneBuilder/app:/opt/SceneBuilder -Djava.launcher.path=/opt/SceneBuilder -Dapp.preferences.id=com/oracle/javafx/scenebuilder/app -XX:InitialHeapSize=256m -XX:MaxHeapSize=256m -XX:MaxMetaspaceSize=256m
Bununla birlikte, işlem hala bellek kullanımında tırmanıyor, 256 MB'yi geçiyor, hızla 6 GB'ı aştı.
Peki bir Java işleminde kullanılan bellek miktarını gerçekten sınırlamanın bir yolu var mı?
Düzenleme: Kullanmayı denedim ulimit
:
ulimit -d 1024000 -v 1024000 -m 1024000
ama sonra başlatmaya çalışırken bir hata alıyorum:
Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes
Java’nın gerçekten MetaspaceSize parametresini yoksayar. Java 8'de belleği sınırlamanın başka bir yolu var mı?