Technology sharing

[GC quisquiliarum collectio algorithm et collector]

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Author: ofLJli
Link: https://juejin.cn/post/7003213289425633287?searchId=20240709085629749958B21D886D4E67D4
Source: Rara Terra Nuggets
Copyright pertinet ad auctorem. Pro reprinting commercial, pete auctori de licentia.


Overview

Praecipuae structurae in JVM sunt: ​​apparatus virtualis acervus, acervus, et methodus area. Moles ACERVUS frame machinae virtualis ACERVUS a compilator est constituta. Cumulus et modus areae Java significant incerta habent. Destinatio et redivivus huius memoriae partis dynamicae sunt.

Hic articulus tria sequentia respicit quae GC ad perficiendum indiget;

  • Quando redivivus? (Condiciones quae trigger GC)
  • Purgamentum collectio algorithmus
  • Purgamentum init

Cum ad redivivus

Secundum hypotheses duas generationis;绝大多数的对象都是朝生夕死熬过越多次的GC回收的对象就越难回收 . Acervus in generationes divisus est: generatio nova (Eden, From, To), vetus generatio, et redivivus generationis etiam in GC fiunt.

image.png

Minor GC : Redivivus rerum insueta in nova generatione. Felis tempor sunt,

  • Spatium in Eden spatio minus GC minorem facit. Cum spatium Eden magnitudine limitatur, Minor GC frequentius urget.标记-复制算法Haec area redivivus (postea de quo agitur).

Maior GC : redivivus insueta in antiqua generatione.communis usus标记-清除算法or *标记-整理算法Redivivus.

plena GC : insueta rediviva in cumulum ac modum ret. Amplitudo plena GC redivivus relative magna est, et tempus longum exsecutionis causare pigri potest, ergo numerus plenae GC quam maxime reduci debet. Tempora excitato sunt fere hoc modo:

  • Insufficiens spatium in veteri generatione causatur per novam generationem objecta intrans in antiquam generationem, magna objecta intrantibus generationi veteris directe, etc. Si haec in maximo continuo spatio veteris generationis reponi non possunt, fiet plena GC redivivus. .

  • Insufficiens spatium in methodo area. Methodus areae maxime recondit notitias et lacus constantes.

  • System.gc() expresse vocatur et redivivus a plena GC.

Tres purgamenta algorithmorum collectio:

1. Mark et verrunt algorithmus

Principium: usus可达性分析算法Fac unavailable obiectinotaac deinde praestarePatet . Incommoda: Vestigium efficientiae est humilis cum multa obiecta sunt. Post purgato obiecto, fiet memoria ruptio, et memoria discontinuabitur. Propositum: Nonnulli collectores hoc algorithmo in antiqua generatione collectione utentur

2. Mark-copy algorithmus

Principium: Memoriae spatium in duo divide, dimidium pro repositione obiecto ponitur, altera dimidia libera est.Si area in qua res reconduntur, plenum est, utere可达性分析算法Movere animantianotaet venieffingo Vade ad aliam aream vacuam et omnes areas superiores in continua spatia vacua purga. Incommodum: Si multae res superstites sint, magna copia memoriae exscribendae et progressionis requiretur. Spatium memoriae tantum potest uti dimidia parte commodorum et facultatum vastantium. Munus: Hic algorithmus redivivus plerumque usus est pro obiectis quae in nova generatione vivunt et moriuntur. Nihilominus replicatio algorithmus optimized est in nova generatione, sed haec algorithmus mechanismum praestitit cautionem, ne nimium multa superstites obiecta sint partita. Stylus appellatus redivivus algorithmus adhibetur:

image.png

3. Vestigium-collatio algorithmus

Principium: Processus signandi sequitur标记-清除算法Idem, ergo整理存Vivere objecta movent ad unum finem, et omnia objecta extra terminum vivant清除 . Incommoda: Movens objecta involvit aliquod periculum. Nimis multae res inhabiles sunt.

image.png

Purgamentum init

Quisquiliarum collector usus GC pro redivivo adhibetur. Cum continua progressione magis magisque sunt collectores purgamentorum. collectio.

Una-fila collector

Compositiones collectorum simplicium staminum sunt: ​​Serial/Serial Collector Vetus. Illi non solum filo collectionis utuntur ad operationem collectionis perficiendam, sed dum filum collectio operatur, usor filo cessare debet exspectans donec collectio perficiatur. Imago ostendit schematicum schematis Serial/Serial collector Vetus:

image.png Si huius memoriae facultates limitatae sunt, numerus nucleorum processus processus exiguus est vel processus unius nuclei est, eius simplicitas et efficacia colligere possunt suum opus quam celerrime colligere.

Multi-fila parallela collector

Multiplices collectores comprehendunt: ParNew, Parallel Scavenge, et Parallelus Vetus, inter quos Parallelus Scavenge/Parallel Vetus coactor coniunctus est. Hi multi-filae collectores tantum adiciunt purgamenta collectionis filorum, et stamina usoris adhuc desinunt exspectationem collectionis purgamentorum.

image.png

parNew collector: Re vera multi-filam versionis Serial.

Collector Parallel Scavenge: Fere in coniunctione cum Collectore Veterum Parallel.Cum parNew collector comparatus, attentius attendit吞吐量imperium, throughput isExecutio sequela usoris temporis computat pro toto CPU tempore currentipertractatio utique quanto melior est.

Multi-stratio plerumque utitur servo, quia exsecutio multi- staminum implicat consumptionem temporis rotationis scalpere. Sed valde bonum est ad facultates, et in calculorum analysi parte server, qui non indiget utentis mutuam cum efficientia exsecutionis augere potest.

concurrente collectori

Concurrentes collectores comprehendunt: CMS collector, qui est collector, qui studet ut ratio temporis quam brevissime moratur et melius usuario usum praebeat. Eius filum collectio simul cum filo usoris facere potest. CMS habet tres标记(nota initialis, signum concurrens, notatum) et semel清理(Concurrent tersus), duo e tribus notis exigunt breviorem stamina usoris obsistere, unum longiorem notationem quae cum filo usoris concurrit et defensionem quae cum filo usoris concurrit.

image.png

initialis marcam: Animadverte primum obiectum GC Roots adiunctum, tempus est brevissimum simul notati: Execute referentem catenam GC Roots (reachability analysis algorithmus) simul cum filo usoris, quod longum tempus accipit. relabel : Re- quaerere novam catenam referentialem a filo usoris generatam durante convenienti notatione phase. Initialis nota paulo longior.Concurrentes patet: usus标记-清除算法Patet inutilia obiecta.

Tria maiora incommoda: 1: CPU sensus, concursus, operationem filorum usoris in processoribus cum paucitate nucleorum afficere possunt. 2: Curabitur quisquiliarum: Purgamentum init generatur in concurrente tersus Phase potest solum expectare proximam GC collectionem. Tres: Memoria ruptionis, notati-purgatio Puja producta magnam vim habent spatii discontinuos memoriae.

summarium

Hic articulus incipit a那些内存需要回收什么时候回收如何回收Ut exsequendum, duo objecti algorithmi iudicium superstes, condiciones pro Classis area redivivus, mechanismus generationalis et collectionis leo redivivus, tres algorithmi collectio et collectores vulgo purgamenta adhibita scripta sunt.