JavaRush /Курстар /All lectures for KK purposes /Java-да қоқыс жинаушыны таңдау

Java-да қоқыс жинаушыны таңдау

All lectures for KK purposes
Деңгей , Сабақ
Қол жетімді

7.1* Қоқыс жинаушыны қалай дұрыс таңдау керек

Егер қосымшаңның кідіріс уақытына қатал талаптары жоқ болса, қосымшаны іске қосып, дұрыс жинаушыны таңдау міндетін JVM-ге қалдырсаң болады.

Көп жағдайда әдепкі баптаулар жақсы жұмыс істейді. Өнімділікті арттыру үшін кучу көлемін баптауға болады. Егер өнімділік күтулерге сай келмесе, қосымша талаптарына сәйкес жинаушыны өзгертіп көр.

  • Кезектесуші. Егер қосымшада кішігірім мәліметтер жинағы болса (шамамен 100 МБ дейін), және/немесе ол бір процессорда кідіріс уақытына талаптарсыз жұмыс істейді.
  • Параллельді. Егер бастысы — қосымшаның максималды өнімділігі болса, және кідіріс уақытына талаптар жоқ болса (немесе бір секундтан ұзақ үзілістер рұқсат етілсе).
  • CMS/G1. Егер жауап уақыты жалпы өткізу қабілеттіліктен маңыздырақ болса, және қоқыс жинау үзілістері бір секундтан қысқа болуы керек.
  • ZGC. Егер жауап беру уақытының маңызы жоғары болса және/немесе өте үлкен куча қолданылса.

7.2* Қоқыс жинауға ұсыныстар

Қолмен триггерлерден аулақ болыңыз

Негізгі қоқыс жинау механизмдерінен басқа, Java-дағы бұл процестің маңызды сәттерінің бірі — анықталмағандық. Яғни, орындау кезінде оның нақты қашан болатынын болжау мүмкін емес.

System.gc() немесе Runtime.gc() әдістері арқылы қоқыс жинаушыны іске қосу үшін кодқа нұсқау қосуға болады, бірақ бұл оның шынымен іске қосылатынына кепілдік бермейді.

Анализге арналған құралдарды қолданыңыз

Егер қосымшаны іске қосу үшін жады жеткіліксіз болса, баяулау, қоқыс жинаудың ұзақ уақыты, “әлемді тоқтату” оқиғалары және нәтижесінде жадының жетіспеушілігінен қателіктермен бетпе-бет келесіз. Бұл кучаның тым кіші екенін немесе қосымшада жадының ағып кетуі мүмкін екендігін білдіруі мүмкін.

Құрал мониторингісін, мысалы, jstat немесе Java Flight Recorder пайдалана отырып, куча қолданылуы шексіз өсіп жатқанын көріп, бұл кодтағы қателікке нұсқайтынын анықтай аласың.

Әдепкі баптауларды таңдаңыз

Егер сенде кішігірім дербес Java-қосымшасы болса, саған, мүмкін, қоқыс жинауды баптау қажет емес. Әдепкі баптаулар саған жақсы қызмет етеді.

JVM флагтарын баптауға пайдаланыңыз

Java-да қоқыс жинау баптауына жақсы тәсіл — JVM-флагтарды қолдану. Флагтар арқылы қоқыс жинаушыны сұрап (мысалы, Serial, G1 және т.б.), кучаның бастапқы және максималды көлемін, куча бөлімдерінің көлемін (мысалы, Жас буын, Қарттар буыны) және тағы басқаларын анықтауға болады.

Жинаушыны дұрыс таңдаңыз

Бастапқы баптаулар туралы жақсы нұсқаулық — бапталатын қосымшаның сипаты. Мысалы, параллельді қоқыс жинаушы тиімді, бірақ жиі “әлемді тоқтату” оқиғаларын тудырады, бұл оны ішкі өңдеу үшін, онда ұзақ үзілістер рұқсат етілген кезде, өте қолайлы етеді.

Сонымен қатар, CMS қоқыс жинаушысы кідірістерді азайтуға арналған, яғни жауап беру жылдамдығы маңызды болғанда веб-қосымшалар үшін тамаша.

Пікірлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION