Bu soru HotSpot generations kapsamında sınırlanmıştır. Belirli bir durumun hangi nesilde yaşadığını program aracılığıyla öğrenmenin bir yolu var mı?Bir örnekte hangi GC neslinin yaşadığını programlı olarak bulabilir miyim?
- Young veya eski nesil Aşağıdakiler gibi veriler?
- Gençler hangi hayatta kalır?
- TLAB İçinde? Hangi iplik? (. Ex, BTrace, JVMTI)
Herhangi bir teknik Böyle bir şey yapabiliriz sürece çalışır:
Dilenciler seçim olamaz ama zaman örnek ideal olarak ben de öğrenebilirlerObject x = new Object();
HotSpotGenerationInfo info = HotSpotGenerationUtil.getInfo(x);
cevaplarında
ilgilenmiyorum - faiz o (. yoklama örtülü gecikme & yükü ilgilenmiyor yani olay geri arama bazlı) olur anda başka bir nesilden taşınıyor edildi O sadece "hayır" gerekçe :) olmadan
Neden bununla ilgileneceğinizi merak ediyorum. Tabii ki saf bir meraktan başka bir şey de yok :) – drekka
Muhtemelen yapılamaz çünkü a) kaynakların daha pahalı olmasını sağlar ve b) hiç kimse bunu yapmak için iyi bir şey bulamaz. Belki de iyi bir kullanımınız var ve ortaya çıkarabilir? –
bir gen0 koleksiyonunu gerçekleştiren hayatta kalan tüm nesneler Gen1 veya daha yüksek, ve bir Gen1 veya gen2 toplama hayatta kalan tüm nesneler gen2 veya daha yüksek olduğunu ima eder ve ima ederse sistem belirten her nesne için birkaç bayraklarını devam ederse olup olmadığını bir gen0 veya Gen1 koleksiyon Nesnenin en son değiştirilmesinden bu yana gerçekleştirilmiştir, sistem, gen0 veya gen1 koleksiyonunu gerçekleştirirken, nesnenin herhangi bir gen0 veya gen1 referansı bulundurmadığını bilecektir. Çok kullanışlı bir optimizasyon. – supercat