Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 67240|Yanıt: 2

[Kaynak] VM hatasının başlatılması sırasında JAVA hatası meydana geldi

[Bağlantıyı kopyala]
Yayınlandı 14.08.2017 16:49:22 | | | |
VM'nin başlatılması sırasında hata meydana geldi
3145728KB nesne yığını için yeterli alan ayıramadım



Son zamanlarda Java için bir program üzerinde çalışıyorum. Başlangıçta, Java'nın bellek yönetimini hep sevmişimdir, hafıza tahsis etmekten endişelenmenize gerek yok, sadece tahsis edin, çöp toplayıcı belleği sizin için geri alacak. Şimdi program büyük miktarda veriyle geliştirildi ve hız için tüm bilgileri hafızaya yükleyeceğim, böylece hızlı yanıt sağlanacak. Hâlâ kendi veri miktarımı tekrar tekrar sayıyorum, bu da başlangıçta yeterli olmalı (makinemde 4G bellek var, ama Windows 3.5G'yi tanıyor ama mevcut veri hacmimle karşılaştırıldığında sorun yaşamalı).

Beklenmedik şekilde, ilk deneyin programı birkaç saat çalıştı ve bir Hafıza Dışı İstisna ile karşılaştı. Kendi VM ayarlarıma baktığımda -Xms512M -Xmx1024M ayarlarını ayarladım. Düşünmeden doğrudan -Xms512M -Xmx2048M olarak değiştirdim ve sonuçta nesne yığını için yeterli alan ayıramadım. Program kalkmıyor. Ancak o zaman orijinal maksimum hafızanın hâlâ bir sınırı olduğunu fark ettim. İnternette arama yaptım ve bu konuyu ele alan birçok makale buldum. Son olarak, BEA'nın DEV2DEV forumunda en faydalı makaleyi buldum

Burada moderatör YuLimin testi yaptı ve sonuca vardı:

Şirket JVM sürümü Maksimum bellek (mega) istemci Maksimum bellek (mega) sunucu

SUN 1.5.x 1492 1520

SUN 1.5.5(Linux) 2634 2660

PAZAR 1.4.2 1564 1564

SUN 1.4.2(Linux) 1900 1260

IBM 1.4.2(Linux) 2047 N/A

BEA JRockit 1.5 (U3) 1909 1902

Şu anda JDK1.6.0_05 kullanıyorum, test ettim. İstemci durumunda en büyük sorun, JDK'nın -Server parametresini tanımaması ve sunucu durumunu test edememesi. Tahminler de yaklaşık aynı.

PAZAR 1.6.0 1442 Yayın

Java'da büyük bellek kullanmak imkansız görünüyor. Genel olarak deyim, hafıza çok büyükse çöp toplama süresi uzun olur. Bu da anlaşılır, genellikle bellek yeterli olmadığında toplanır, tarama 2G bellek elbette 1G'den çok daha yavaştır ve daha fazla bellek nesnesi vardır, tahmini ilişki katlanarak artar.

Aşağıda YuLimin'in test yöntemleri ve test kayıtları eklenmiş olarak yer almaktadır.

Test Yöntemi:Komut satırı altında java -XmxXXXXM -sürüm komutuyla test edin, ve ardından XXXX değerini kademeli olarak artırır; normal şekilde çalıştırılırsa, belirtilen bellek boyutu kullanılabilir olur, aksi takdirde bir hata mesajı yazılır.





JVM'nin maksimum desteklenen belleğini test edin ve ardından sistemdeki ortam değişkenlerini ayarlayın

Değişken adı: _JAVA_OPTIONS
Değer: - Xmx1G






Önceki:jQuery fullscreen eklentisi "jQuery Fullscreen Plugin" kullanılır
Önümüzdeki:SSL, OV, DV ve EV sertifikaları arasındaki fark
 Ev sahibi| Yayınlandı 14.08.2017 16:51:30 |
Java version "1.8.0_144"
Java(TM) SE Çalışma Zamanı Ortamı (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, karışık mod)



Java sürümü "1.8.0_144" 64-bit sunucu tarafı modu, 80g bellek, sorun yok

 Ev sahibi| Yayınlandı 1.09.2020 22:29:04 |
JVM parametreleri Seçenekler
https://www.itsvse.com/thread-9369-1-1.html

Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com