Sol Reklam
Sağ Reklam

Rehber [BİLGİ] Garbage Collector nedir ne işe yarar [sitesinden çeviri]

Durum
Mesaj gönderimine kapalı.

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22
Java TM 2 Platform, Standard Edition (J2SE TM platformu) giriş için ve çok çeşitli küçük uygulamaları masaüstü uygulamalardan büyük sunucularda web hizmetleri için kullanılır. J2SE platformu sürüm 1.4.2 dört adet çöp toplayıcıları aralarından seçim yapabileceğiniz ama kullanıcı seri çöp toplayıcı tarafından açık bir seçim olmadan önce her zaman cho yapılırdı. Version 5.0 toplayıcı seçtiğiniz uygulama başlatıldığinda makine sınıf üzerinde bağlıdır. Çöp toplayıcı "akıllı seçim" ile daha iyi ama her zaman en iyi değil. Çöp toplayıcıları kendi kendine seçim yapmak isteyen kullanıcı için bu belge bu seçimi temel alacağı hakkında bilgi sağlar. Bu ilk çöp koleksiyon ve bu özellikleri en iyi yararlanmak için ayarlama seçenekleri genel özelliklerini içerir. Örnek seri, dünya durdurmak toplayıcı bağlamında verilmiştir. O zaman diğer koleksiyonerler belirli özellikleri ne zaman olarak gereken faktörleri ile birlikte ele alınacak choos, diğer koleksiyonerler biri. Ne zaman bir çöp toplayıcı seçimi kullanıcıya fark eder mi? Birçok uygulama için öyle değil. Diğer bir deyişle, uygulama teknik mütevazı sıklığı ve süresi ile duraklar çöp toplama huzurunda içinde gerçekleştirebilirsiniz. Bir örnek bu durum böyle değil nerede (seri kolektör kullanıldığında) ölçekler büyük bir uygulama çok sayıda konu, işlemciler, yuva ve büyük miktarda bellek için iyi olurdu. Amdahl'ın unobservedtaskexceptioneventargs.observed çoğu iş yüklerini mükemmel parallelized olamaz; bir bölümü her zaman ardışık değil ve parallelism en büyük ölçüde yarar değil. Bu da J2SE platformu için doğrudur. Çok parti, sanal makineler için Java TM platform ilâ ve dahil olmak üzere sürüm 1.3.1 paralel atık toplama var mı, çöp toplama birden çok işlemcili bir sistemde etkisini aksi takdirde paralel bir uygulama göreli olarak büyür.

Grafik aşağıda çöp toplama dışında tamamen ölçeklenebilir ideal bir sistem modelleri. Kırmızı çizgi çöp toplama bir tek işlemcili sistemde zamanında sadece % 1'i harcama bir uygulamadır. Bu bir % 20 için çevirir 32 işlemci sistemlerde üretilen iş kaybı. Çöp toplama (çöp toplama tek işlemcili uygulamalarında zamanında çok çirkin bir miktarı kabul edilmez) zamanında yüzde 10'u, işlem hacmi % 75'den fazla ilâ 32 işlemci ölçekleme kaybolur. Bu küçük sistemlerde geliştirme asıl performans sorunlarını büyük sistemlere ölçeklerken olabilir zaman ihmal edilebilir hız sorunları gösterir. Ancak, böyle bir darboğaz azaltılmasında küçük iyileştirmeler performansında büyük kazançlar üretebilir. Yeterince büyük bir sistem için doğru çöp toplayıcı seçmek için ve gerekirse ayarlamak için de faydalı olur. Seri toplayıcı uygulamaların çoğu için yeterli olacaktır. Her diğer koleksiyonerler bazı ek yükü ve/veya özel davranış için fiyat olan karmaşıklık eklemiş. Uygulama alternatif bir toplayıcı özel davranışını ihtiyacı yok, seri toplayıcı kullanın. Ağır dişli ve büyük miktarda bellek ve işlemciler çok sayıda donanım üzerinde çalışan büyük bir uygulama nerede seri toplayıcı olmak belgili tanımlık en iyi seçme için beklenen bir durum örneğidir. Bu tür uygulamalar için şimdi üretilen iş toplayıcı seçim yapmak (ergonomi bölümünde 2 konuya bakın).

Bu belge J2SE platformu sürüm 1.5, Solaris TM işletim sisteminde kullanarak yazılmıştır SPARC (Platform Edition) temel platformu olarak en ölçeklenebilir donanım ve yazılım için J2SE platformu sağlar çünkü. Ancak, açıklayıcı metin Linux, Microsoft Windows ve Solaris işletim sistemi de dahil olmak üzere diğer desteklenen platformlar için geçerlidir x 86 platformu Edition ölçüde bu ölçeklenebilir donanım mevcuttur. Komut satırı seçenekleri platformlar arasında tutarlı olmasına rağmen bazı platformlar Varsayılanları burada açıklanandan farklı olabilir. Yeni sürüm 1.5 J2SE platformu ergonomi burada ergonomi olarak anılacaktır bir özelliktir. Komut satırı Tuning en az ile JVM iyi performans sağlamak için ergonomi hedefidir. Ergonomi çöp toplayıcı yığın boyutu çalışma zamanı derleyici bir uygulama için en iyi seçim eşleştirmeyi dener. Bu seçim sınıf uygulamanın üzerinde çalıştığı makinenin uygulama (büyük makinelerde çalıştırmak Yani, büyük uygulamalar) özellikleri konusunda bir ipucu olduğunu varsayar. Bu seçimler yanı sıra çöp toplama ayarlama basitleştirilmiş bir yoludur. Üretilen iş toplayıcıyı kullanıcı hedefleri en zaman ve bir uygulama için istenen işlem hacmi duraklatmak belirtebilirsiniz. Bu iyi bir performans için gerekli öbek boyutunu belirtme aksine. Bu özellikle büyük kümeler kullanmak büyük uygulamaların performansını artırmak için tasarlanmıştır. Daha genel ergonomi "ergonomi içinde için 1.5 Java sanal makinesi" başlıklı belgede açıklanmıştır. Bu önce daha ayrıntılı denetimlerini kullanarak bu belgede açıklandığı gibi bu ikinci belgede sunulan ergonomi yargılanmak önerilir. Üretilen iş toplayıcı altında bu belgedeki dahil, yeni edinilmiş boyutu ilkesinin parçası olarak sağlanan ergonomi özellikleri vardır. Bu gol için çöp toplama performansını belirtmek için yeni seçenekler içerir ve performans ince ayar yapmak için ek seçenekler ayarlamak

Nesiller bir J2SE platformu bellek ayırma ve çöp toplama karmaşıklığı geliştiricinin kalkanlar gücüdür. Ancak, çöp toplama asıl performans sorunu olduğunda, bu gizli uygulama bazı yönlerini anlamak değer öyle. Çöp toplayıcıları yolu uygulamaları hakkında varsayımlar nesneleri kullanın yapmak ve bu performansı artırmak için soyutlama gücünü ödün vermeden ayarlanabilir tunable parametre yansıtılır. Çalışan programın herhangi bir tanıtıcısından artık ulaşılabilir bir nesneyi çöp kabul edilir. En basit çöp toplama algoritmaları sadece erişilebilir her nesnenin üzerinde yineleme. Sol herhangi bir nesne üzerinde sonra çöp olarak kabul edilir. Bu yaklaşım süresini büyük miktarda canlı veri bakımı büyük uygulamalar için engelleyici olduğu canlı nesnelerinin sayısı ile doğru orantılıdır. J2SE platformu sürüm 1.2 ile başlayan, sanal makine birkaç kuşak koleksiyonu kullanılarak birleştirilir farklı çöp toplama algoritmaları dahil. Saf çöp toplama öbek canlı her nesne incelerken, kuşak koleksiyonu fazladan iş önlemek için uygulamaların çoğu birkaç ampirik olarak gözlenen özellikleri patlatır. Gözlenen bu özelliklerin en önemli bebek ölüm var. Mavi aşağıdaki diyagrama yaşam süreleri için tipik bir dağıtım nesneleri alanındadır. X ekseni ayrılan bayt cinsinden ölçülen nesnenin yaşam süreleri var. Bayt sayısı Y ekseninde nesnelerinde karşılık gelen yaşam süresi ile toplam bayt'tır. Sola keskin zirvesinde rejenere nesneleri gösterir (örneğin, "kısa bir süre sonra ayrılan öldü"). Yineleyici nesneleri, örneğin, tek bir döngü süresince hayatta çoğu kez.

Bazı nesneler daha uzun yaşamak ve bu yüzden dağıtım uzanır için sağ. Örneğin, genellikle işlem çıkar kadar canlı başlatma sırasında ayrılan bazı nesneler vardır. Bu iki büyük arasında görülen bazı ara hesaplama süresi için canlı nesnelerdir burada bebek ölüm tepe sağındaki götürü olarak. Bazı uygulamalar çok farklı görünümlü dağıtımları var, ama şaşırtıcı derecede çok sayıda sahip bu genel şekli. Gerçeği bir çoğunluğu "genç öl" obje üzerinde odaklanarak verimli toplama mümkün olmaktadır. Bu senaryo için en iyi duruma getirmek için bellek nesiller veya nesneleri farklı yaş tutan bellek havuzları yönetilir. Atık toplama işlemi gerçekleştiğinde her nesil nesil ne zaman doldurur. Nesneleri küçük nesneler için bir nesil ya da genç nesil ayrılır ve bebek ölüm nedeniyle nesnelerin çoğu orada ölmek. Genç nesil dolduğu zaman küçük bir koleksiyon neden olur. Küçük koleksiyonları yüksek bebek ölüm oranı varsayarak optimize edilebilir. Bu koleksiyon, ilk sipariş, canlı nesneler toplanmakta sayısıyla doğru orantılı maliyetlerdir. Ölü nesnelerin tam bir genç nesil çok hızlı bir şekilde toplanır. Hayatta kalan bazı nesneler tenured nesile taşınır. Tenured üretimi alınması gereken zaman çoğu zaman büyük bir koleksiyonu şurada daha yavaş çünkü tüm canlı nesneleri içerir. Aşağıdaki diyagrama aralıklarla yetecek kadar çok koleksiyonları arasında ölmek için nesnelerin izin vermek için meydana gelen küçük koleksiyon gösterir. Genç nesil kadar büyük anlamda (ve böylece küçük koleksiyonları yeterince arasındaki dönemi) iyi ayarlanmış küçük toplama yüksek bebek ölüm oranı avantajlarından yararlanabilir. Bu durum alışılmadık ömür boyu dağıtımları ile uygulamalar tarafından veya koleksiyon nesneleri zaman ölmek zorunda önce gerçekleşmesi neden kötü boy nesiller tarafından rahatsız edebilirler

İçinde belirtildiği gibi Bölüm 2 ergonomi nows çeşitli uygulamalar üzerinde iyi bir performans sunmak için farklı çöp toplayıcı seçimdir. Seri çöp toplayıcı küçük uygulamalar tarafından kullanılması amaçlanmıştır. Varsayılan parametrelerinin çoğu küçük uygulamalar için etkili olması için dizayn edilmiştir. Üretilen iş Çöp toplayıcı büyük uygulamalar tarafından kullanılması amaçlanmıştır. Ergonomi artı adaptif boyutu ilkesinin özelliklerini seçili yığın boyutu parametreleri sunucu uygulamaları için iyi bir performans sağlamak içindir. Bu seçimler de birçok uygulama için iş ama her zaman işe yaramaz. Bu Bu Belge Merkezi öğreti yol açar:

Varsayılan düzenleme (için tüm toplayıcılar üretilen iş toplayıcı hariç) nesillerin aşağıdakine benzer. Başlatma sırasında bir en fazla adres alanı neredeyse ayrılmıştır ancak gerekli olduğu sürece için fiziksel bellek ayrılmamış. Tam adres alanı için nesne bellek ayrılmış genç ve tenured nesiller ayrılabilir. Genç nesil eden ve iki kurtulan boşluk karakterlerinden oluşur. Nesneleri başlangıçta eden tahsis edilmiştir. Bir kurtulan boşluk her zaman boştur ve herhangi bir canlı nesneler topluluğu eden ve hayatta kalan alanı kopyalama ileri, bir hedef olarak hizmet vermektedir. Nesneler arasında hayatta kalan alanlarda tenured veya kopyalanan tenured üretimi için olacak yaşta onlar kadar bu şekilde kopyalanır. Diğer sanal makinelerin, üretim sanal makine J2SE platformu sürüm 1.2 için Solaris işletim sistemi için de dahil olmak üzere iki eşit büyüklükte alanlarda bir büyük eden artı iki küçük alanlarda yerine kopyalamak için kullanılır. Bu genç nesil boyutlandırma seçeneklerini doğrudan karşılaştırılabilir değildir anlamına gelir; bir örnek için performans SSS sayfasına bakın. Tenured üretimi ile yakından ilgili bir üçüncü nesil kalıcı olduğunu. Çünkü bir denklik Java dil düzeyinde var mı nesneleri açıklamak için sanal makine tarafından gerekli verileri tutan kalıcı üretimi özeldir. Örneğin sınıfları ve yöntemleri açıklayan nesneleri kalıcı nesilde depolanır.

3.1 performans değerlendirmeleri
orada çöp toplama performans iki birincil önlemlerdir. Üretilen iş çöp toplama, uzun bir süre kabul değil harcanan toplam süre yüzdesidir. Üretilen iş tahsisini harcanan süre içerir (ancak ayırma hızı için ayarlama genellikle gerekli değildir.) Duraklar çöp toplama meydana gelen çünkü ne zaman bir uygulama yanıt vermiyor görünür zamanlardır. Kullanıcılar atık toplama işleminin farklı gereksinimleri vardır. Örneğin, bazı çöp toplama sırasında duraklar tolere edilebilir ya da sade bir şekilde ağ gecikmeleri tarafından gizlenmiş olabilir bu yana üretilen iş, olmak bir web sunucusu doğru ölçüsünü düşünün. Ancak, bir etkileşimli grafik programında bile kısa duraklamalar olumsuz kullanıcı deneyimini etkileyebilir. Bazı kullanıcılar için diğer konuları duyarlıdır. Ayak izi sayfaları ve önbellek satırları ölçülen bir işlem çalışma kümesidir. Sınırlı fiziksel bellek veya birçok süreçleri ile sistemlerde, ayak izi ölçeklenebilirlik gerektirebilir. Çabukluk bir nesne ölü olduğu arasında geçen zamanı ve bellek kullanılabilir duruma geldiğinde, sistemleri, uzaktan yöntem çağırma (RMI) dahil olmak üzere önemli bir göz için dağıtılmıştır. Genel olarak, belirli üretimi boyutlandırma bir ticaret-off bu noktalar arasında seçer. Örneğin, çok büyük bir genç nesil performansı en üst düzeye ama çok yer kaplayan, çabukluk ve duraklama kez pahasına yapar. genç nesil duraklar küçük bir genç nesil üretilen iş pahasına kullanılarak en aza indirilebilir. Bir ilk yaklaşım, başka bir nesil için duraklama süreleri ve koleksiyonu sıklığı bir nesil boyutlandırma etkilemez. İşte boyutu nesillere kimse doğru yolu yoktur. En iyi seçim yolu uygulama kullanır bellek yanı sıra kullanıcı gereksinimleri belirlenir. Bu nedenle sanal makine seçimi bir çöp collectior her zaman en iyi durumda değilse ve kullanıcı komut satırı seçenekleri, aşağıda açıklanan şeklinde geçersiz kılınmış olabilir.

3.2 Öçme/Ölçüm
İşlem hacmi ve ayak izi en iyi ölçümleri özellikle uygulama kullanılarak ölçülür. Örneğin, bir web sunucusu-den geçerek ayak izi sunucu pmap komutunu kullanarak Solaris işletim sisteminde ölçülen bir istemci yük jeneratör kullanarak test edilebilir. Öte yandan, duraklar çöp toplama nedeniyle kolayca sanal makine tanılama çıktısını inceleyerek tahmin edilir. Komut satırı bağımsız değişkeni-verbose: gc her koleksiyon bilgileri yazdırır. Unutmayın biçimi - verbose: gc çıktıdır sürümler J2SE platformu arasında değişebilir. Örneğin, işte bir büyük sunucu uygulama çıktısı:
[GC 325407K->83000K(776768K), 0.2300771 saniye]
[GC 325816K->83372K(776768K), 0.2454258 saniye]
[Full GC 267628K->83769K(776768K), 1.8479984 saniye]

Burada iki küçük koleksiyon ve bir büyük bir bakın. Sayıları daha önce ve sonra okuyun {demiş}

325407K->83000K (ilk çizgide iken )

canlı nesneler Birleşik boyutunu önce ve çöp toplama sonra sırasıyla gösterir. Sonra küçük koleksiyonları sayısı mutlaka hayatta değil, ancak doğrudan hayatta oldukları için veya çünkü onlar içinde veya tenured(annamadım) nesilden başvurulan kazanılamıyor nesneleri içerir.
(776768K)(ilk çizgide iken)

Toplam kullanılabilir alan, alan eksi bir kurtulan mekanların toplam öbek kalıcı nesil saymazsak. Küçük toplama bir ikinci çeyrek hakkında aldı.
0.2300771 saniye"ler" (ilk çizgide iken )

Üçüncü satır büyük koleksiyon için benzer biçimidir. bayragı[kodu] -XX:+PrintGCDetails koleksiyonlarıyla ilgili ek bilgileri yazdırır. Bu bayrak ile yazdırılan ek bilgi sanal makineyi her sürümü ile değiştirmek sorumludur. Ek çıktı ile -XX:+PrintGCDetails bayrak özellikle geliştirme Java Virtual Machine [java sanal makine] ihtiyaçları ile değiştirir. İle çıktısı örneği -XX:+PrintGCDetails J2SE platformu için sürüm 1.5 seri çöp toplayıcı kullanarak burada gösterilir

[GC [DefNew: 64575K->959K(64576K), 0.0457646 secs] 196016K->133633K(261184K), 0.0459067 secs]]

küçük koleksiyonu genç nesil yaklaşık % 98'i yeniden elde etmek gösterir,
DefNew: 64575K->959K(64576K)
ve yaklaşık 46 milisaniye aldı.
0.0457646 secs [45.7646 ms]
Tüm yığın kullanımı yaklaşık % 51 düşürüldü
196016K->133633K(261184K)
ve son kez tarafından belirtildiği gibi hafif bazı ek yükü (üzerine genç nesil Topluluğu) koleksiyonu için oldu:
0.0459067 secs
bayrak[kod] -XX:+PrintGCTimeStamps Buna ek olarak bir zaman damgası her koleksiyonu başında yazdırılır.

111.042: [GC 111.042: [DefNew: 8128K->8128K(8128K), 0.0000505 secs]111.042: [Tenured: 18154K->2311K(24576K), 0.1290354 secs] 26282K->2311K(32704K), 0.1293306 secs]

Koleksiyon 111 saniye içine uygulama yürütme başlar. Küçük collection hakkında aynı anda başlar. Ayrıca bilgi Tenured tarafından belirlenen büyük koleksiyonu için gösterilir. Tenured üretimi kullanımı için yaklaşık % 10 azaldı
18154K->2311K(24576K)
ve.13 saniye sürdü.
0.1290354 secs
Olusturucuları Boyutlandırma
Bir dizi parametre üretimi boyutunu etkiler. Aşağıdaki çizimde öbek taahhüt alanı ve sanal uzay arasındaki farkı gösterir. Sanal makine başlatma sırasında alanın tamamını öbek için ayrılmıştır. Ayrılan alanı boyutunu - Xmx seçeneği ile belirtilebilir. -Xms parametresinin değeri - Xmx parametre değerden daha küçükse, tüm ayrılmış olan yer hemen kabul edilen sanal makineye. Kaydedilmemiş alanı "Bu şekilde sanal" etiketini taşır. Yığın (kalıcı üretimi, tenured üretimi ve genç nesil) farklı bölümlerini sanal alanıyla sınırlı için gerektiği şekilde büyüyebilir. Bazı parametrelerin oranları başka bir yığın bir parçası vardır. Örneğin parametresi NewRatio genç nesile tenured üretimi göreli boyutunu gösterir. Bu parametreler aşağıda ele alınmıştır. Büyümesini ve daraltılması yığını ile ilgili aşağıdaki tartışma üretilen iş toplayıcı için geçerli değildir. Yığını için üretilen iş toplayıcı yeniden boyutlandırma 5.2.2 bölümde açıklanan ergonomi tarafından yönetilir. Öbek toplam boyutu ve nesiller boyutunu kontrol parametreleri için üretilen iş toplayıcıları için geçerli.
4.1 Toplam öbek
Nesiller doldurduğunuzda koleksiyonları meydana beri üretilen iş kullanılabilir bellek miktarı ile ters orantılıdır. Toplam kullanılabilir bellek çöp toplama performansını etkileyen en önemli faktördür. Varsayılan olarak, sanal makine büyür ya da belirli bir aralıktaki her koleksiyon nesneleri canlı için boş alan oranı tutmak için denemek için her koleksiyon, yığın boyutunu küçültür. Bu hedef aralığı parametreleri ile yüzde olarak ayarlanır -XX:MinHeapFreeRatio=<minimum> ve -XX:MaxHeapFreeRatio=<maximum> ve toplam boyutu aşağıda - Xms ve yukarıda - Xmx tarafından sınırlıdır. 32 bit Solaris işletim sistemi için varsayılan parametreleri ( SPARC Platform Edition ) bu tabloda gösterilmiştir:
Kod:
-XX:MinHeapFreeRatio=

40



-XX:MaxHeapFreeRatio=

70

-Xms

3670k

-Xmx

64m
64-bit sistemlerde yığın boyutu parametrelerinin varsayılan değerleri yaklaşık % 30 oranında ölçeklenmiş. Bu artış daha büyük boyutta üstünde a 64-gem sistem nesnelerinin telafi etmek anlamına da gelmektedir. Bir nesil içinde boş alan yüzde @ altına düşerse bu parametreleri boyutunu nesil zaten sınırına ulaşıldı değil varsayarak boş alan % 40'ını var böylece üretimi boyutunu genişletilecektir. Boş alan yüzde p aşarsa, benzer şekilde, üretimi boyutunu üretimi daraltma sürece boş alan % 70'i üretimi en küçük boyut altında azaltmak değil sadece var böylece shrunk. Büyük sunucu uygulamaları bu varsayılan ayarları genellikle iki sorunlarla. Çünkü ilk yığın küçük ve çok sayıda büyük koleksiyonu resized gerekir yavaş başlatma, biri. Bir daha acil sorun varsayılan maksimum yığın boyutu çoğu sunucu uygulamaları için makul küçük olmasıdır. Sunucu uygulamaları için başparmak kurallar şunlardır:
Kod:
Sürece duraklar ile ilgili sorunlar varsa, sanal makine için mümkün olduğunca fazla bellek verme deneyin. Varsayılan boyutu (64MB) genellikle çok küçükse



-Xms ve - Xmx aynı değere ayarlamak öngörülebilirlik sanal makineden en önemli boyutlandırma karar kaldırarak artırır. Öte yandan, kötü bir seçim yaparsanız sanal makineyi telafi edemez

Ayırma parallelized beri işlemciler, sayısı arttıkça bellek artırmak emin olun.
Diğer sanal makine seçeneklerinin açıklamasını burada bulabilirsiniz

BURAYA DIKLA

4.2 genç oluşum

İkinci en etkili topuzu olan genç nesile adanmış yığın oranı. Daha büyük genç nesil daha az sık sık küçük koleksiyonları oluşur. Ancak, sınırlı yığın boyutu için daha büyük bir genç kuşak olan büyük koleksiyon sıklığını artacak bir daha küçük tenured üretimi, anlamına gelir. Uygulama tarafından ayrılan nesneleri ömür boyu dağılımı en uygun seçimi bağlıdır. Varsayılan olarak, genç nesil boyutu NewRatio tarafından kontrol edilir. Örneğin, ayarlama - XX: NewRatio = 3 genç ve tenured üretimi arasındaki oran 1:3 olduğu anlamına gelir. Başka bir deyişle, eden ve hayatta kalan alanlarda Birleşik boyutunu toplam yığın boyutu, dördüncü olacak. NewSize ve MaxNewSize parametreleri üzerinden altında ve üstünde genç nesil boyutu bağlı. Bunlar sadece Xms - ve - Xmx eşit ayarlama olarak eşit bir başka düzeltmeleri genç nesil için ayarlama toplam yığın boyutu giderir. Bu genç nesil NewRatio tarafından izin ayrılmaz katları daha ince bir taneciklik de ayarlamak için yararlıdır.

4.2.1 genç nesil garanti
İdeal bir küçük koleksiyonunda canlı nesneler (eden alanı artı ilk kurtulan alan) genç kuşağın bir bölümünden genç nesil başka bir bölümüne kopyalanır (İkinci kurtulan boşluk). Ancak, tüm canlı nesneler ikinci kurtulan uzaya uyacak hiçbir garantisi yoktur. Tüm nesneleri canlı olsa bile küçük koleksiyonu tamamlamak emin olmak için yeterli boş bellek tüm canlı nesneleri yerleştirmek için tenured nesilde ayrılmalıdır. En kötü durumda bu ayrılan bellek boyutu eden artı boş kurtulan alanda nesneleri eşittir. Büyük bir koleksiyonu yerine tenured nesil bu en kötü durum için kullanılabilir yeterli bellek olmadığında ortaya çıkar. Çünkü tenured nesilde ayrılan bellek genellikle sadece hemen hemen taahhüt ama aslında kullanılan bu küçük uygulamalar için iyi bir politikasıdır. Ama en büyük olası yığın gerektiren uygulamalar için yığın yarım hemen hemen tamamlanmış boyutundan daha büyük bir eden işe yaramaz: yalnızca büyük koleksiyonları oluşur. Genç nesil garanti yalnızca seri toplayıcı için geçerli olduğunu unutmayın. Üretilen iş toplayıcı ve eşzamanlı toplayıcı bir genç nesil koleksiyonu ile devam edecek ve tenured nesil genç kuşaktan tüm promosyonlar kapsayamaz Eğer, her iki nesiller toplanır. İsterseniz, parametre SurvivorRatio kurtulan alanlarının boyutunu ayarlamak için kullanılabilir, ancak bu kez performans için önemli değil. Örneğin, -XX:SurvivorRatio=6 ETS her kurtulan alanı ve eden 1:6 olmak arasındaki oran. Başka bir deyişle, (değil bir yedinci, çünkü iki kurtulan alanlarda) her kurtulan alanı 8 Genç nesil olacaktır. Survivor alanlarda çok küçük ise, koleksiyon kopyalama doğrudan tenured nesilde taşıyor. Survivor alanlarda çok büyük ise, onlar anlamsızca boş olacaktır. Her çöp toplama sanal makineyi eşik birkaç kez tenured önce nesneyi kopyalanabilir seçer. Bu eşik kurtulanların yarısı dolu tutmak için seçilir. Bir seçenek -XX:+PrintTenuringDistribution,Bu eşik ve nesneleri yaşları yeni nesilde göstermek için kullanılabilir. Bir uygulama ömür boyu dağılımı gözlemlemek için yararlıdır. İşte 32 bit Solaris işletim sistemi için varsayılan değerleri ( SPARC Platform Edition )
Kod:
NewRatio

2 ( client JVM: 8)



NewSize

2228k

MaxNewSize

Not limited

SurvivorRatio

32
Genç nesil en büyük boyutu toplam öbek ve NewRatio en büyük boyutu hesaplanacaktır. "Sınırlı değil" varsayılan değeri MaxNewSize için bir değer MaxNewSize için komut satırında belirtilmediği sürece hesaplanan değeri MaxNewSize tarafından sınırlı değildir anlamına gelir. Sunucu uygulamaları için başparmak kurallar şunlardır:
Kod:
Öncelikle size sanal makine vermek yapabiliyor belleğin toplam miktarını karar. O zaman kendi performans ölçümü en iyi ayarı bulmak için genç nesil boyutları karşı grafiğini çizin. Aşırı büyük koleksiyonu veya Duraklat kez sorunları bulamazsak, bellek genç nesil için bol verin. Genç nesil artan ters yarım toplam öbek, ya da daha az olur (ne zaman genç nesil garanti edemez bir araya geldi). Ayırma parallelized beri işlemciler, sayısı arttıkça genç üretimi artırmak emin olun.
Toplayıcıları türleri
Tartışma bu noktaya seri toplayıcı hakkında olmuştur. J2SE platformu sürüm 1.5 üç ek toplayıcıları vardır. Her uygulama veya düşük çöp toplama duraklama kez throughput vurgulamak için uygulanan kuşak bir koleksiyoncudur. Üretilen iş toplayıcı: genç nesil toplayıcı paralel bir sürümü bu toplayıcı kullanır. Eğer kullanılır - XX: UseParallelGC seçeneği komut satırında geçirilir. Tenured üretimi toplayıcı seri toplayıcı olarak aynıdır. Eş zamanlı düşük Duraklat toplayıcı: Bu Toplayıcı kullanılır - Xincgc™ veya - XX: UseConcMarkSweepGC komut satırında geçirilir. Eşzamanlı toplayıcı tenured üretimi toplamak için kullanılan ve uygulamanın yürütülmesi ile aynı anda koleksiyonunun en yok. Uygulama toplama sırasında kısa süre duraklatıldı. Toplayıcı kopyalama genç nesil paralel bir sürümü ile eş zamanlı toplayıcı kullanılır. Eş zamanlı düşük Duraklat toplayıcı kullanılır seçeneği - XX: UseConcMarkSweepGC komut satırında geçirilir. Artımlı (tren de denir) Duraklat toplayıcı düşük: Bu Toplayıcı yalnızca kullanılır - XX: UseTrainGC komut satırında geçirilir. Bu Toplayıcı sürüm 1.4.2 J2SE platformu beri değişmedi ve şu anda etkin geliştirme altında değil. Gelecekteki sürümlerde desteklenmeyecektir. Lütfen bakın 1.4.2 GC belge Bu Toplayıcı hakkında bilgi için ayarlama. Not - XX: UseParallelGC - XX ile kullanılmamalıdır: UseConcMarkSweepGC. Sürüm 1.4.2'den başlayarak J2SE platformu ayrıştırma bağımsız değişken yalnızca komut satırı seçenekleri için çöp toplayıcıları, yasal birleşimlerine izin vermek ama önceki sürümleri tüm yasadışı birleşimler algılamayabilir ve yasadışı birleşimler için sonuçlar tahmin edilemez. Her zaman açıkça başka bir toplayıcı seçmeden önce uygulamanızdaki JVM tarafından seçilen toplayıcı deneyin. Uygulamanız için yığın boyutu ayarlamak ve sonra uygulamanızın gereksinimleri ne yerine değildir düşünün. İkinci bağlı olarak, diğer koleksiyonerler birini kullanmayı düşünün

5.1 ne zaman işlemcilerin daha büyük sayılarla, uygulamanızın performansını artırmak istediğinizde üretilen iş toplayıcı kullanımı üretilen iş toplayıcı kullanılır. Seri toplayıcı çöp toplama bir iş parçacığı tarafından yapılır ve bu nedenle uygulamanın seri yürütme süresi için çöp toplama ekler. Üretilen iş toplayıcı küçük bir koleksiyon yürütmek için birden çok iş parçacığı kullanır ve böylece uygulama seri yürütme süresini azaltır. Tipik bir durum uygulama nesneleri ayırma konu çok sayıda olan biri. Böyle bir uygulama bu kez büyük bir genç kuşak gereklidir durum. 5.2 üretilen iş toplayıcı üretilen iş toplayıcı bir kuşak benzer koleksiyoncudur seri toplayıcı ama küçük toplama işlemini gerçekleştirmek için kullanılan birden çok iş parçacığı ile. Büyük koleksiyonları aslında seri toplayıcı ile aynıdır. N CPU içeren bir ana bilgisayar üzerindeki varsayılan olarak, işlem hacmi toplayıcı küçük koleksiyonda N çöp toplayıcı iş parçacıkları kullanır. Çöp toplayıcı kanalların bir komut satırı seçeneği (aşağıya bakınız) ile kontrol edilebilir. 1 bir ana bilgisayardaki CPU işlem hacmi toplayıcı büyük olasılıkla değil gerçekleştirmek yanı sıra seri toplayıcı için paralel yürütme (örneğin, eşitleme maliyeti) ek yükü nedeniyle. Bir ana bilgisayarda 2 CPU ile üretilen iş toplayıcı genellikle seri çöp toplayıcı yanı sıra gerçekleştirir ve ana 2'den fazla CPU bulunan bilgisayarlarda küçük çöp toplayıcı duraklama kez bir azalma beklenebilir.
Üretilen iş toplayıcı komut satırı bayrağını kullanarak etkin olması - XX: UseParallelGC. Çöp toplayıcı kanalların ParallelGCThreads komut satırı seçeneği ile kontrol edilebilir (- XX: ParallelGCThreads =<desired number="">). Açık yığını ayarlama komut satırı bayrakları ile yapılıyor Eğer ilk sipariş ile aynı seri toplayıcıyı gerekli işlem hacmi toplayıcı ile iyi performans için gerekli yığın boyutunu etmektir. Üretilen iş toplayıcı dönüm sadece daha kısa küçük toplama duraklar yapmak gerekir. Küçük koleksiyonda katılan birden çok çöp toplayıcı iş parçacığı olduğundan parçalanma toplama sırasında tenured nesil genç kuşaktan promosyonlar nedeniyle küçük bir olasılık vardır. Promosyonlar tenured oluşturulmasında bir parçası her çöp toplama iş parçacığı ayırır ve bu "Promosyon arabellekleri" kullanılabilir alanın lige bir parçalanma etkisi neden olabilir. Çöp toplayıcı iş parçacığı sayısını azaltarak tenured üretimi boyutunu artırma gibi bu parçalanma etkisi azaltır. 5. 5.2.1 nesiller nesiller düzenlenmesi üretilen iş toplayıcı farklı yukarıda belirtildiği gibi işlem hacmi toplayıcı. Düzenleme aşağıdaki şekilde gösterilmiştir. 5.2.2 ergonomi üretilen iş toplayıcı içinde
J2SE platformu sürüm 1.5 server sınıf makinelerde çöp toplayıcı olarak üretilen iş toplayıcı seçilecektir. Belge ergonomi 5 Java sanal makine içinde çöp toplayıcı bu seçim anlatır. Çöp toplama ile ilgili uygulamanın istenen bir davranış dayalı üretim için toplayıcı ayarlama yeni bir yöntem eklenmiş olan. Aşağıdaki komut satırı bayrakları maksimum duraklama süresini ve uygulama için daha fazla işlem hacmi için hedefleri açısından istenen davranışı belirtmek için kullanılabilir. Maksimum duraklama süresi amaçları komut satırında belirtilen bayrak - XX: MaxGCPauseMillis<nnn> = Bu kez <nnn>milisaniye duraklatmak üretilen iş toplayıcı için bir ipucu olarak yorumlanır veya daha az istenen. Varsayılan olarak hiçbir maksimum duraklama süresi hedefi vardır. Üretilen iş toplayıcı Java yığın boyutu ayarlar ve diğer çöp toplama ile ilgili parametreleri çöp toplama tutmak için bir girişim <nnn>daha kısa milisaniye duraklatır. Bu ayarlamalar uygulamanın genel üretilen işi azaltmak çöp toplayıcı neden olabilir ve bazı durumlarda istenen duraklama süresi hedefi karşılanamıyor. Varsayılan olarak hiçbir maksimum duraklama süresi hedefi ayarlanır. İşlem hacmi hedefi harcanan süre açısından ölçülür çöp toplama ve zaman geçirdim dışında çöp toplama (Uygulama süresi adlandırılır). Hedef komut satırı ile belirtilen bayrak - XX: GCTimeRatio =<nnn> çöp oranını koleksiyonu uygulama süresi zamanı 1 / (1 <nnn>) örneğin - XX: GCTimeRatio 19 kümeleri çöp toplama için toplam süre % 5'lik bir hedef =. Varsayılan olarak % 1'i atık toplama için toplam süre için hedeftir. Ayrıca üretilen iş kollektör dener örtülü bir hedef olabilir en küçük öbek diğer gol tanıştım. 5.2.2.1 öncelik gol gol maksimum duraklama süresi hedefi ilk tanıştığım aşağıdaki sipariş maksimum Duraklat zaman hedef işlem hacmi hedefi en az ayak izi kalede ele alınmaktadır. Sadece karşılandıktan sonra üretilen iş hedefe yöneliktir. Benzer şekilde, yalnızca ilk iki gol tanıştıktan sonra kabul ayak izi hedef alınır.

5 2.2.2 ayarlama üretimi istatistikleri (örneğin, ortalama duraklama süresini) muhafaza boyutları toplayıcı tarafından bir toplama işleminin sonunda güncelleştirilir. Daha sonra gol tanıştım eğer belirlemek için testler yapılır ve bir nesil boyutunda herhangi bir gerekli değişiklikler yapılır. Açık çöp istisnadır koleksiyonları (istatistik tutma ve boyutları ayarlamaları nesillerin yapmak açısından System.gc()) çağrıları dikkate alınmaz. Büyüyen ve bir nesil boyutunu küçültmek üretimi boyutunu sabit bir yüzdesi artımlar halinde yapılır. Bir nesil yukarı veya aşağı doğru adım istenen boyutuna. Büyümesini ve daraltılması farklı oranlarda yapılır. Varsayılan bir nesil % 20 artışlarla büyür ve % 5'lik artışlarla küçülür. Yüzde büyüyen komut satırı ile kontrol edilir için bayrak - XX: YoungGenerati > - XX ve genç nesil için: TenuredGenerati > tenured üretimi için. Hangi bir nesil küçülür yüzde komut satırı ile ayarlanır - XX bayrak: AdaptiveSizeDecrementScaleFactor =<nnn>. Büyüyen bir artış boyutu * yüzde ise, daralma için azaltma boyutunda * olacaktır / nnn yüzde. Toplayıcı bir nesil başlangıçta büyümeye karar verir ise ek bir yüzde artışı için eklendi. Bu ek koleksiyon sayısıyla bozunmaları ve hiçbir uzun vadeli etkiler bu ek yoktur. Ek başlangıç performansı artırmak için kararlıdır. Küçültme yüzdesini hiçbir ek vardır. Maksimum duraklama süresi hedefi karşılanmazsa, yalnızca bir nesil boyutunu teker teker shrunk. Her iki nesillerin duraklama kez kalenin üzerinde iseniz, üretimi büyük duraklama süresini ile boyutunu ilk shrunk. Üretilen iş hedef karşılanmazsa, her iki nesiller boyutları artar. Her toplam çöp toplama zaman kendi katkısı ile orantılı olarak artar. Örneğin, % 25 genç nesil, çöp toplama zamanı toplam topluluğu % 20 oranında zaman ve tam bir genç nesil artırmak olacağını, sonra genç nesil %5 oranında artmış.
5.2.2.3 boyutu yığın değilse aksi takdirde set komut satırında, başlangıç yığın ve maksimum yığın boyutunu temel fiziksel bellek boyutu hesaplanır. Phys_mem platform üzerinde fiziksel bellek boyutu ise, ilk yığın boyutu phys_mem için ayarlanacak / DefaultInitialRAMFraction. DefaultInitialRAMFraction 64 bir varsayılan değere sahip bir komut satırı seçeneği var. Maksimum yığın boyutu için phys_mem benzer şekilde ayarlanacak / DefaultMaxRAM. DefaultMaxRAMFraction 4 bir varsayılan değeri vardır. 5.2.3 Eğer çok fazla zaman atık toplama yapıyor harcanan out belleğin özel üretilen iş toplayıcı bir bellek içi özel durum oluşturur. Örneğin, JVM 98 %'in çöp toplama yapmak toplam zaman harcama ve öbek % 2'den az kurtarma, bir bellek içi expection atmak olacaktır. Bu özellik uygulama 1,5 değişti. İlkesi aynıdır ancak yeni uygulama nedeniyle davranışlarında hafif farklılıklar olabilir. 5.2.4'ten seri toplayıcı üretilen iş toplayıcıyı için aynı ölçümleri ile üretilen iş toplayıcı ayrıntılı çöp toplayıcı çıkış var. 5.3 eşzamanlı düşük Duraklat toplayıcı kullanılacağı durumlar
Uygulamanız daha kısa çöp toplayıcı duraklar yararlanacak ve uygulama çalıştırırken çöp toplayıcısı ile işlemci kaynaklarını paylaşmak Ödeyebileceğinizden eşzamanlı düşük Duraklat toplayıcı kullanın. Genellikle uzun ömürlü veri (bir büyük tenured üretimi) nispeten geniş bir dizi var ve iki veya daha çok işlemcili makinelerde çalıştırmak uygulamalar bu toplayıcı kullanımından fayda eğilimindedir. Ancak, bu toplayıcı bir düşük Duraklat süre şartı ile herhangi bir uygulama için düşünülmelidir. Tek işlemcide mütevazı boyutta tenured nesiller ile etkileşimli uygulamalar için en iyi sonuçları gözlemlenmiştir. 5.4 eşzamanlı düşük Duraklat toplayıcı eşzamanlı düşük Duraklat toplayıcı seri toplayıcıya benzer kuşak bir koleksiyoncudur. Tenured üretimi ile aynı anda bu toplayıcı toplanır. Bu Toplayıcı tenured üretimi toplamak için gerekli duraklama süresini azaltmaya çalışır. Uygulamaları konu ile aynı anda büyük koleksiyon parçalarını yapmak için bir ayrı çöp toplayıcı iş parçacığı kullanır. Komut satırı ile eş zamanlı toplayıcı etkinleştirilene - XX seçeneği: UseConcMarkSweepGC. Her önemli koleksiyonu için eşzamanlı toplayıcı koleksiyon ve koleksiyon ortasına doğru bir kısa dönem başında için bütün uygulama konuları ara verilecektir. İkinci Duraklat iki duraklar daha uzun olma eğilimindedir ve birden çok iş parçacığı o duraklatma sırasında toplama işi yapmak için kullanılır. Koleksiyon geri kalanı uygulama ile aynı anda çalışır bir çöp toplayıcı iplik ile yapılır. Birden çok iş parçacığı toplama işlemini gerçekleştirmek için kullanılmasına rağmen küçük koleksiyonları seri toplayıcıya benzer şekilde yapılır. "Paralel küçük toplama seçenekleri ile eş zamanlı kollektör" aşağıdaki bilgi için bkz: eş zamanlı düşük Duraklat toplayıcıyı birden çok iş parçacığı kullanarak. Eşzamanlı toplayıcı (tenured üretimi koleksiyonu için) kullanılan teknikler, açıklanmıştır:
http://research.sun.com/techrep/2000/abstract-88.html
5.4.1 eşzamanlılık eşzamanlı toplayıcı yükü (ki aksi takdirde uygulama için kullanılabilir olacaktır) işlemci kaynaklarını daha kısa büyük koleksiyonu duraklama süreleri için esnaf. Eşzamanlı koleksiyonunun bir tek çöp toplama iş parçacığı tarafından yapılır. Eşzamanlı koleksiyonunun çalıştırırken, bir N işlemci sistemde bu 1 kullanacak olan / n. kullanılabilir işlemci güç. Herhangi bir avantaj sağlanan tek işlemcili makinede tesadüfi olur (Bu ifadenin özel durumu için artımlı modunu bölümüne bakın). Eşzamanlı toplayıcı da bazı tür uygulama için uygulamalar-den geçerek uzak alacak bazı ek giderler ve doğal bazı dezavantajları (örneğin, parçalanma) vardır. Bir iki işlemci makine üzerinde bu yüzden bir işlemci uygulamaları konu için kullanılabilir eş zamanlı koleksiyonunun çalışırken eş zamanlı çöp toplayıcı iş parçacığı çalıştıran "uygulama durmaz". Eşzamanlı toplama amaçlı olarak azaltılmış duraklama kez olabilir ama tekrar daha az işlemci kaynaklarını uygulamanın kullanılabilir ve bazı yavaşlama uygulamanın beklenmelidir. N arttıkça, eşzamanlı çöp toplayıcı iş parçacığının işlemci kaynaklarını koşma nedeniyle azalma olur daha az, ve eş zamanlı toplayıcı avantajları daha fazla olur. 5.4.2 genç nesil garanti
Tıpkı seri toplayıcı gibi J2SE platformu eşzamanlı toplayıcı genç nesil karşılamak zorunda sürüm 1.5 önce garanti. J2SE platformu sürüm 1.5 ile başlayan bu artık doğru değil. Bu genç nesil başlatılır ve yeterli boşluk değil genç kuşaktan promosyon gerektiren tüm nesneleri tutmak için tenured nesil eşzamanlı toplayıcı kurtarabilirsiniz. Bu işlem hacmi toplayıcıya benzer. 5.4.3 tam koleksiyonları aynı anda tam olmadan önce tenured üretimi koleksiyonu tamamlamak amacı ile uygulama iş parçacığı ile çalışan bir tek çöp toplayıcı iplik eşzamanlı toplayıcı kullanır. Normal çalışma içinde eş zamanlı toplayıcı ile çalışmaya devam, bu yüzden sadece kısa duraklamalar uygulama iş parçacıkları tarafından görülür uygulama iş parçacığı kendi işlerin çoğunu yapmak yapabiliyor. Geri, bir düşüş olarak eşzamanlı toplayıcı tenured üretimi doldurur bitmesi gereken çözümleyemiyorsa, uygulama duraklatıldı ve koleksiyon durdu bütün uygulama konuları tamamlanır. Böyle koleksiyonları ile durdu uygulama için tam koleksiyon olarak adlandırılır ve bazı ayarlamalar eşzamanlı koleksiyon parametrelerini için yapılması gereken bir işaret vardır. 5.4.4 yüzen çöp çöp toplayıcı canlı nesneleri yığın halinde bulmak için çalışır. Uygulama konuları ve çöp toplayıcı iş parçacığı aynı anda büyük bir toplama sırasında çalıştığı için hayatta olmak çöp toplayıcı iş parçacığı tarafından bulunan nesneleri koleksiyonu bitirir zaman ölü hale gelebilir. Bu tür nesnelere yüzen çöp adlandırılır. Yüzen çöp eşzamanlı koleksiyonu uzunluğuna bağlıdır ( daha fazla zaman için bir nesneyi silmek için uygulamaları konu) ve uygulama detayları üzerinde. Kaba bir kural olarak için kayan çöp hesap için % 20 oranında tenured üretimi boyutunu artırmayı deneyin. Çöp yüzen bir sonraki çöp toplama toplanır).
5.4.5 iki kez bir uygulama sırasında eşzamanlı bir koleksiyon döngüsü eşzamanlı toplayıcı duraklar duraklatır. Doğrudan erişilebilir nesneleri (örneğin, nesneleri iş parçacığı yığın, statik nesneleri vb.) köklerinden ve başka bir yerde yaşamak yığın (örn., genç kuşak) olarak işaretlemek için ilk es nedir. Bu ilk duraklama ilk işareti adlandırılır. İkinci Duraklat işaretleme aşamanın sonunda gelir ve uygulama iş parçacığı eşzamanlı yürütülmesi nedeniyle eş zamanlı işaretleme aşamasında cevapsız nesneleri bulur. İkinci Duraklat açıklama adlandırılır. 5.4.6 eşzamanlı aşama ilk işareti ve remark arasında eşzamanlı işaretleme oluşur. Eşzamanlı çöp toplayıcı işaretleme eşzamanlı sırasında iş parçacığı yürütme ve başka uygulama için kullanılabilir olacağını işlemci kaynaklarını kullanarak. Remark sonra ölü nesneleri toplayan bir eşzamanlı süpürme aşama vardır. Bu evre sırasında eşzamanlı çöp toplayıcı iplik yine işlemci kaynaklarını uygulamadan çıkarıyor. Süpürme aşamasından sonra eş zamanlı toplayıcı sonraki büyük toplama başlangıç kadar uyur. 5.4.7 seri toplayıcı büyük bir koleksiyonu bir koleksiyonla zamanlama tenured üretimi tam ve koleksiyon yapılır iken tüm uygulama iş parçacığı durdurulur başlatılır. Buna ek olarak tam tenured üretimi olmadan önce koleksiyonu bitirebilir miyim öyle ki aynı zamanda oluşan bir koleksiyon teker teker başlatılmalıdır. Aynı zamanda oluşan bir koleksiyon başladı birkaç yolu vardır.
Tenured nesil önce kalan süreyi üzerinde eşzamanlı toplayıcı tutar istatistikleri (T-kadar-tam) tam ve zamanında eşzamanlı koleksiyonu (T-toplamak) yapmak için gerekli. Tam kadar T T-toplamak yaklaştığında, aynı zamanda oluşan bir koleksiyon başlatıldı. Bu test uygun bir grup konservatif erken başlatmak için sıfır. Doluluk tenured nesil Başlatan doluluk (yani, eşzamanlı bir toplama başlamadan önce kullandığı geçerli yığın yüzdesi) büyürse eşzamanlı bir koleksiyon da başlatılacak. Başlatan doluluk varsayılan olarak yaklaşık % 68'e ayarlanır. Bayrağı ile komut satırında ayarlanabilir CMSInitiatingOccupancyFraction parametresiyle ayarlanabilir - XX: CMSInitiatingOccupancyFracti > <nn>şimdiki tenured nesil boyutunun bir yüzdesi değerdir. 5.4.8 Genç nesil toplama ve tenured üretimi koleksiyonu için duraklar bağımsız olarak meydana duraklar zamanlama. Onlar üstüne gelemez, ancak böyle bir koleksiyonundan bir diğer Collection tarafından hemen ardından Duraklat tek, daha uzun bir duraklama gibi görünür hızlı bir şekilde meydana gelebilir. Bunu remark önlemek için duraklar eşzamanlı koleksiyonu için önceki ve sonraki genç nesil duraklar arasında midway olması planlanıyor. İlk işareti Duraklat genellikle planlama değer çok kısadır. 5.4.9 artımlı modu
Eşzamanlı toplayıcı içinde artımlı olarak eşzamanlı aşama bitti mi modunda kullanılabilir. Eş zamanlı bir aşamasında bir işlemci çöp toplayıcı iş parçacığı kullanarak çağırmak. Artımlı modu düzenli olarak işlemci uygulamasına geri vermeye eşzamanlı faz durduğunuz kadar eşzamanlı aşamaları etkisini azaltmak anlamına gelir. (Burada "i-cms" olarak anılacaktır) Bu mod iş aynı anda zaman genç nesil koleksiyonları arasında yapılacak küçük parçalara toplayıcı tarafından yapılan böler. Eşzamanlı toplayıcı tarafından sağlanan düşük duraklama kez gereken uygulamalar (örneğin, 1 veya 2) işlemcilerin küçük sayılarla makinelerde çalıştırdığınızda bu özellik yararlı olur. Eşzamanlı toplama döngüsü genellikle aşağıdaki adımları içerir: tüm uygulama iş parçacığı; durdur ilk işareti yapmak; tüm uygulama konuları yapmak özgeçmiş (eşzamanlı çalışması için bir işlemci kullanır) eşzamanlı işareti (kullanan bir procesor eşzamanlı iş için) do önceden temiz eşzamanlı durdurmak bütün uygulama konuları; remark yapmak; tüm uygulama devam konuları yapmak eşzamanlı süpürme (eşzamanlı iş için kullandığı bir işlemci) do eşzamanlı sıfırlama (eşzamanlı iş için kullandığı bir işlemci) normalde, eşzamanlı toplayıcı bir işlemci eşzamanlı çalışma tüm eşzamanlı işareti faz için (gönüllü olarak) vazgeçme olmadan kullanır. Benzer şekilde, bir işlemci tüm eşzamanlı süpürme aşama için yeniden vazgeçme olmadan kullanılır. Bu işlemci kullanımı özellikle sadece bir veya iki işlemci çalıştıran sistemlerde çalıştırdığınızda bir bozulma Duraklat zaman kısıtlamaları, uygulamalar için çok fazla olabilir. i-cms eşzamanlı aşamalar halinde küçük duraklar arasında orta yolda gerçekleşmesi planlanan etkinlik, kısa patlamaları kesiliyor bu sorunu çözer.
Eşzamanlı toplayıcı içinde artımlı olarak eşzamanlı aşama bitti mi modunda kullanılabilir. Eş zamanlı bir aşamasında bir işlemci çöp toplayıcı iş parçacığı kullanarak çağırmak. Artımlı modu düzenli olarak işlemci uygulamasına geri vermeye eşzamanlı faz durduğunuz kadar eşzamanlı aşamaları etkisini azaltmak anlamına gelir. (Burada "i-cms" olarak anılacaktır) Bu mod iş aynı anda zaman genç nesil koleksiyonları arasında yapılacak küçük parçalara toplayıcı tarafından yapılan böler. Eşzamanlı toplayıcı tarafından sağlanan düşük duraklama kez gereken uygulamalar (örneğin, 1 veya 2) işlemcilerin küçük sayılarla makinelerde çalıştırdığınızda bu özellik yararlı olur. Eşzamanlı toplama döngüsü genellikle aşağıdaki adımları içerir: tüm uygulama iş parçacığı; durdur ilk işareti yapmak; tüm uygulama konuları yapmak özgeçmiş (eşzamanlı çalışması için bir işlemci kullanır) eşzamanlı işareti (kullanan bir procesor eşzamanlı iş için) do önceden temiz eşzamanlı durdurmak bütün uygulama konuları; remark yapmak; tüm uygulama iş parçacığı denetimi tutarı bir "görev döngüsü" eşzamanlı toplayıcı gönüllü olarak işlemci kadar vermeden önce yapmak için izin iş eşzamanlı sıfırlama (eşzamanlı iş için kullandığı bir işlemci) ben-cms kullanan eşzamanlı süpürme (eşzamanlı iş için kullandığı bir işlemci) musun devam. İş hacmi eşzamanlı toplayıcı çalıştırma izni genç nesil koleksiyonları arasında zamanın yüzdesidir. Ben-cms otomatik olarak uygulama (önerilen yöntem) davranış tabanlı iş hacmi hesaplayabilir veya iş hacmi komut satırındaki sabit bir değere ayarlayabilirsiniz.

5.4.9.1 komut satırı aşağıdaki komut satırı seçenekleri denetim i-cms (başlangıç seçenekleri kümesi için öneriler için aşağıya bakınız): - XX: CMSIncrementalMode varsayılan: Engelli bu bayrağı artımlı modu etkinleştirir. Eşzamanlı toplayıcı etkin gerekir unutmayın (- XX ile: UseConcMarkSweepGC) çalışmak bu seçenek için. -XX: CMSIncrementalPacing varsayılan: devre dışı bu bayrak sağlar otomatik istatistik dayalı artımlı modu iş hacmi düzeltilmesi toplanan JVM çalışırken. -XX: CMSIncrementalDutyCycle = Varsayılan: eşzamanlı toplayıcı çalıştırma izni küçük koleksiyonları arasında zamanın yüzdesi (0-100) bu 50. CMSIncrementalPacing etkinleştirilmişse, o zaman bu sadece başlangıç değeridir. -XX: CMSIncrementalDutyCycleMin =<N> Varsayılan: Bu alt sınırdır CMSIncrementalPacing etkin olduğunda görev çevrimi (0-100) yüzde 10. -XX: CMSIncrementalSafetyFactor =Varsayılan: 10 Bu iş hacmi hesaplarken muhafazakarlık eklemek için kullanılan yüzdesi (0-100). -XX: CMSIncrementalOffset = Varsayılan: 0 Bu hangi tarafından artımlı modu iş hacmi kaymıştır sağa süresi içinde küçük koleksiyonları arasında yüzde (0-100). -XX: CMSExpAvgFactor = Varsayılan: geçerli örnek eşzamanlı koleksiyonu istatistikler için üstel Ortalamalar hesaplarken ağırlık için kullanılan yüzdesi (0-100) bu 25. 5.4.9.2 seçenekleri ne zaman i-cms trying i-cms için önerilen, aşağıdaki komut satırı seçenekleri başlangıç kümesi olarak öneririz:
-XX:+UseConcMarkSweepGC \

-XX:+CMSIncrementalMode \

-XX:+CMSIncrementalPacing \

-XX:CMSIncrementalDutyCycleMin=0 \

-XX:+CMSIncrementalDutyCycle=10 \

-XX:+PrintGCDetails \

-XX:+PrintGCTimeStamps \

-XX:-TraceClassUnloading
5.4.9.3 temel sorun giderme böylece eşzamanlı koleksiyonları tamamlamadan öbek dolmasına neden olacak bir görev hesaplamak için programın çalıştığı sırada toplanan istatistikleri döngüsü i-cms otomatik hız ayarlama özelliği kullanır. Ancak, son davranış gelecekteki davranışı mükemmel bir tahmin değil ve tahminler her zaman öbek tam olmasını önlemek için doğru olmayabilir. Çok fazla tam koleksiyonları oluşursa, aşağıdaki adımları teker teker deneyin: güvenlik faktörü artırmak: - XX: CMSIncrementalSafetyFactor =<N> en az iş hacmi artırın: - XX: CMSIncrementalDutyCycleMin =<N> Otomatik pacing devre dışı bırakmak ve sabit görev döngüsü kullanın: - XX:-CMSIncrementalPacing - XX: CMSIncrementalDutyCycle =<N> </N> </N> </N>

5.4.10 ölçümleri ile eş zamanlı toplayıcı aşağıda çıkışı için - verbose: gc - XX ile: PrintGCDetails (bazı ayrıntılar kaldırılmıştır). Not çıktı eşzamanlı toplayıcı için küçük koleksiyonları çıktısı ile serpiştirilmiş. Genellikle çok sayıda küçük koleksiyonu eşzamanlı toplama döngüsü sırasında ortaya çıkar. CMS-ilk-işaretleme: eşzamanlı toplama döngüsü başlangıcını gösterir. CMS-eşzamanlı-işareti: eşzamanlı işaretleme faz ve CMS-eşzamanlı-süpürme sonuna gösterir: eşzamanlı süpürme faz sonunu gösterir. Daha önce tartışılan değil precleaning faz CMS-eşzamanlı-preclean tarafından belirtilir:. Biriktirme aynı anda yapılabilir iş temsil eder ve remark faz CMS-remark hazırlığında olduğunu. Son aşama CMS-eşzamanlı-sıfırlama tarafından belirtilir: ve sonraki eşzamanlı koleksiyonu hazırlanırken.
[GC [1 CMS-initial-mark: 13991K(20288K)] 14103K(22400K), 0.0023781 secs]

[GC [ DefNew: 2112K->64K(2112K), 0.0837052 secs] 16103K->15476K(22400K), 0.0838519 secs]

...

[GC [DefNew: 2077K->63K(2112K), 0.0126205 secs] 17552K->15855K(22400K), 0.0127482 secs]

[CMS-concurrent-mark: 0.267/0.374 secs]

[GC [DefNew: 2111K->64K(2112K), 0.0190851 secs] 17903K->16154K(22400K), 0.0191903 secs]

[CMS-concurrent-preclean: 0.044/0.064 secs]

[GC[1 CMS-remark: 16090K(20288K)] 17242K(22400K), 0.0210460 secs]

[GC [DefNew: 2112K->63K(2112K), 0.0716116 secs] 18177K->17382K(22400K), 0.0718204 secs]

[GC [DefNew: 2111K->63K(2112K), 0.0830392 secs] 19363K->18757K(22400K), 0.0832943 secs]

...

[GC [DefNew: 2111K->0K(2112K), 0.0035190 secs] 17527K->15479K(22400K), 0.0036052 secs]

[CMS-concurrent-sweep: 0.291/0.662 secs]

[GC [DefNew: 2048K->0K(2112K), 0.0013347 secs] 17527K->15479K(27912K), 0.0014231 secs]

[CMS-concurrent-reset: 0.016/0.016 secs]

[GC [DefNew: 2048K->1K(2112K), 0.0013936 secs] 17527K->15479K(27912K), 0.0014814 secs]
İlk işareti Duraklat genellikle küçük toplama duraklama süresini göre kısadır. Bir kez daha aynı zamanda oluşan aşamaları (eşzamanlı işareti, eşzamanlı biriktirme ve eşzamanlı süpürme)-ebilmek var olmak nispeten uzun (örnekte olduğu gibi) bir küçük toplama duraklama karşılaştırıldığında ama uygulama eşzamanlı aşamalarında duraklatılmış değil. Remark Duraklat uygulama özellikleri tarafından etkilenir (örneğin, daha yüksek oranda bir nesnelerde değişiklik yapma Bu duraklama artırabilir) ve zamandan beri geçen küçük toplama (yani, daha fazla nesneyi genç nesil bu duraklama artabilir).
Solaris 8 işletim sistemi konu hafif işlemleri (LWPs) doğrudan bağlar libthread alternatif sürümü destekler. Bazı uygulama büyük ölçüde diğer libthread kullanımından yararlanabilirsiniz. Bu dişli herhangi bir uygulama için potansiyel bir şeydir. -E doğru denemek bu, sanal makineyi başlatmadan önce /usr/lib/lwp eklemek LD_LIBRARY_PATH ortam değişkenini ayarlayın. Alternatif libthread varsayılan libthread Solaris 9 işletim sistemi var. Yumuşak başvuruları daha az sunucu sanal makinedeki istemci daha agresif temizlenir. Takas oranı komut satırı parametresiyle SoftRefLRUPolicyMSPerMB artırarak yavaşladı - XX bayrak: SoftRefLRUPolicyMSPerMB 10000 =. SoftRefLRUPolicyMSPerMB yumuşak bir başvuru hayatta zaman belirli bir miktar boş alan öbek için bir ölçüsüdür. Megabayt başına 1000 ms varsayılan değerdir. Bu (son güçlü başvuru nesnesine toplanmıştır sonra) yumuşak bir başvuru her megabayt boş alan öbek için 1 saniye süreyle hayatta kalacak demek okuyabilirsiniz. Çok yaklaşık bu. Sonuç çöp toplama uygulamaların gereksinimlerini bağlı olarak farklı uygulamalarda performans sorunu olabilir. Uygulama ve çöp toplama seçenekleri gereksinimlerini anlayarak, çöp toplama etkisini en aza indirmek mümkündür.
Umarım bi rep alabilirim :D[DOUBLEPOST=1494171967,1494171864][/DOUBLEPOST]yazdıgım bazı yerler &43 fln diye gozukmus düzeltiyorum[DOUBLEPOST=1494172212][/DOUBLEPOST]düzelttim
 
Son düzenleme:

bertek41

The Developer of Apia Team
Katılım
29 Ağustos 2016
Mesajlar
1.068
Elmaslar
464
Puanlar
15.745
Yer
Kocaeli
Minecraft
YasinSubasi
Okuyan varsa bana özet geçsin :D
 

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22

bertek41

The Developer of Apia Team
Katılım
29 Ağustos 2016
Mesajlar
1.068
Elmaslar
464
Puanlar
15.745
Yer
Kocaeli
Minecraft
YasinSubasi
Tamamını düşünemiyorum :D Sen okudun mu acaba :D
 

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22

bertek41

The Developer of Apia Team
Katılım
29 Ağustos 2016
Mesajlar
1.068
Elmaslar
464
Puanlar
15.745
Yer
Kocaeli
Minecraft
YasinSubasi
Google Çeviri gibi duruyor :D
 

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22
Google Çeviri gibi duruyor :D
prof değilim
ve google çeviri değil başka çeviri
6 adet siteden hepsine satır satır [hata olmasın diye] çevirttim ve en mantıklısını koydum
üstünde oynama yapcam[DOUBLEPOST=1494173586,1494173074][/DOUBLEPOST]siteler
https://www.translate.com
http://www.bing.com/translator/
https://ceviri.yandex.com.tr
http://www.ingilizceceviri.org/
https://www.freetranslations.org
https://www.trceviri.com/
 

Fix3d

Bir Kömür Göründü Kaptanım!
Katılım
29 Ocak 2015
Mesajlar
148
Elmaslar
17
Puanlar
0
Yaş
28
Java Bellek Yönetimi, yerleşik çöp toplama ile dilin en iyi başarılarından biridir. Geliştiricilerin, bellek ayırma ve ayrılma hakkında açıkça endişelenmeden yeni nesneler oluşturmalarına olanak tanır; çünkü çöp toplayıcı otomatik olarak yeniden kullanım için belleği geri alır. Bu, bellek sızıntılarını ve diğer bellekle ilgili sorunları ortadan kaldırırken, daha basit kalıp kodu ile daha hızlı geliştirmeyi sağlar. En azından teorik olarak.

İronik olarak, Java çöp toplama çok fazla nesne oluşturup kaldırarak çok iyi çalışıyor gibi görünüyor. Çoğu bellek yönetimi sorunu çözülür, ancak genellikle ciddi performans sorunları yaratma pahasına. Çöp toplama her türlü duruma uyarlanabilir hale getirmek, karmaşık ve optimize edilmesi zor bir sisteme neden olmuştur. Başınızı çöp toplama etrafında sarmak için önce bellek yönetiminin bir Java Sanal Makinesi'nde (JVM) nasıl çalıştığını anlamanız gerekir.
Diss to @GrahambeLL :) Devamı gelicek
 

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22
Java Bellek Yönetimi, yerleşik çöp toplama ile dilin en iyi başarılarından biridir. Geliştiricilerin, bellek ayırma ve ayrılma hakkında açıkça endişelenmeden yeni nesneler oluşturmalarına olanak tanır; çünkü çöp toplayıcı otomatik olarak yeniden kullanım için belleği geri alır. Bu, bellek sızıntılarını ve diğer bellekle ilgili sorunları ortadan kaldırırken, daha basit kalıp kodu ile daha hızlı geliştirmeyi sağlar. En azından teorik olarak.

İronik olarak, Java çöp toplama çok fazla nesne oluşturup kaldırarak çok iyi çalışıyor gibi görünüyor. Çoğu bellek yönetimi sorunu çözülür, ancak genellikle ciddi performans sorunları yaratma pahasına. Çöp toplama her türlü duruma uyarlanabilir hale getirmek, karmaşık ve optimize edilmesi zor bir sisteme neden olmuştur. Başınızı çöp toplama etrafında sarmak için önce bellek yönetiminin bir Java Sanal Makinesi'nde (JVM) nasıl çalıştığını anlamanız gerekir.
Diss to @GrahambeLL :) Devamı gelicek
başarılar
 

Nugato

Demir Cevheri Gibiyim
Katılım
26 Nisan 2017
Mesajlar
213
Elmaslar
51
Puanlar
13.470
Yer
Bursa
In in bitmedi yarıda ömrüm tükendi saten
 

GrahambeLL

Koydum Çalışma Masasını
Katılım
21 Mart 2017
Mesajlar
70
Elmaslar
4
Puanlar
0
Yaş
22
Java Bellek Yönetimi, yerleşik çöp toplama ile dilin en iyi başarılarından biridir. Geliştiricilerin, bellek ayırma ve ayrılma hakkında açıkça endişelenmeden yeni nesneler oluşturmalarına olanak tanır; çünkü çöp toplayıcı otomatik olarak yeniden kullanım için belleği geri alır. Bu, bellek sızıntılarını ve diğer bellekle ilgili sorunları ortadan kaldırırken, daha basit kalıp kodu ile daha hızlı geliştirmeyi sağlar. En azından teorik olarak.

İronik olarak, Java çöp toplama çok fazla nesne oluşturup kaldırarak çok iyi çalışıyor gibi görünüyor. Çoğu bellek yönetimi sorunu çözülür, ancak genellikle ciddi performans sorunları yaratma pahasına. Çöp toplama her türlü duruma uyarlanabilir hale getirmek, karmaşık ve optimize edilmesi zor bir sisteme neden olmuştur. Başınızı çöp toplama etrafında sarmak için önce bellek yönetiminin bir Java Sanal Makinesi'nde (JVM) nasıl çalıştığını anlamanız gerekir.
Diss to @GrahambeLL :) Devamı gelicek
devamı nerede ?

In in bitmedi yarıda ömrüm tükendi saten
kolay gelsin
 
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı