2013-04-27 22 views
5

Ben Maksimum yığın boyutu biliniyorsa, maksimum nesne boyutunu nasıl şifreleyebilirsiniz?

for (int m = 128;; m++) { 
     try { 
      byte[] a = new byte[m * 1024 * 1024]; 
     } catch (OutOfMemoryError e) { 
      System.out.println(m + "M"); 
      break; 
     } 
    } 

yığın

üzerinde oluşturabileceğiniz maksimum nesne boyutunu belirlemek için -Xmx256M ile bu testi yaptı ve 171M var. Bu büyüklüğü hesaplamanın bir yolu var mı?

+1

Döngüsün artışının 'm ++' olması gerekir mi? – michaelb958

+0

Evet, bu m, teşekkürler –

+1

'-XX: + UseG1GC' kullandı ve' 255M' aldım. – johnchen902

cevap

2

Bu boyutu hesaplamanın bir yolu var mı?

sayılı maksimum tahsisat nesne boyutu yığın içinde mevcut bitişik boş alan miktarına bağlıdır. AFAIK, şu anda ne yaptığınızı yapmaktan başka ne olabileceğini öğrenmenin pratik bir yolu yok.

0

Bu ilginç, ben de aynı şeyi çalıştırın:

java -Xmx256M -XX:+AggressiveHeap HeapTest //I hoped this would help 

Ama sürekli AggressiveHeap ile daha az olsun.

İlgili konular