2011-09-29 18 views

cevap

6

totalMemory(), şu anda ne kadar bellek kullanıldığını döndürürken, maxMemory(), JVM'nin toplam olarak ne kadar kaynak ayırabileceğini belirtir.

Not: Bu izler o: totalMemory() <= maxMemory() ve ayrıca maxMemory() - totalMemory()

biri Kullanım örneğine göre 'sol ne kadar bellek' elde edebilirsiniz bunun için program kullandığı ne kadar bellek teşhis etmek, ve Bunun için totalMemory() kullanacaksınız.
Not: her ikisi de yalnızca bellek hafızasına atıfta bulunur ve hafızada yığılma değil.

+0

"TotalMemory() şu anda ne kadar belleğin kullanıldığını döndürür" USED ?! Tahsis edilmiş demek istiyorsun? –

5

Toplam bellek, şu anda JVM'ye ayrılan bellektir. Zamanla değişir. Maksimum bellek, JVM'nin ulaşabileceği maksimum bellek. Toplam belleğin üst sınırı.

3

MaxMemory() güncel javadoc değeri başına yeni objects.As için kullanılabilir nesneler ve boş bellek tarafından işgal kullanılan bellek kombinasyonudur JVM mevcut yığın boyutu temsil Xmx parametresi

+0

Program başlatıldıktan sonra Xms parametresini nasıl alabilirim? –

0

totalMemory() tarafından belirlenen bir değerdir totalMemory() tarafından döndürülen, çevreye bağlı olarak zaman içinde değişebilir. JVM totalMemory da JVM yığın boyutunu başlangıç ​​eşittir maksimum yığın boşluk yeni nesnenin hiçbir yaratılmış Ama göre) totalMemory (boyutunu genişletmek için çalışıyoruz her zaman JVM hayat cycle.Jvm içinde değişebilir gitmiyor

maxMemory() boyut unles'in ötesinde java.lang.OutOfMemoryError olsun.

+0

"zamana göre değişebilir" az ya da çok "genel yığın boyutuna eşittir" genel durumda güvenilir olma olasılığının düşük olduğunu söylüyor. – Gus

İlgili konular