diff --git a/.obsidian/plugins/home-tab/data.json b/.obsidian/plugins/home-tab/data.json index ca8b0a68..b4ec7b87 100644 --- a/.obsidian/plugins/home-tab/data.json +++ b/.obsidian/plugins/home-tab/data.json @@ -25,7 +25,15 @@ "recentFilesStore": [ { "filepath": "knowledge/dev/java/gc/Garbage Collector.md", - "timestamp": 1725130607117 + "timestamp": 1725131416052 + }, + { + "filepath": "knowledge/dev/java/gc/Garbage First.md", + "timestamp": 1725131415307 + }, + { + "filepath": "wiki/zero/00 Java разработка.md", + "timestamp": 1725131193007 }, { "filepath": "Home.md", @@ -34,14 +42,6 @@ { "filepath": "_inbox/Монолитный ад.md", "timestamp": 1725126350746 - }, - { - "filepath": "_inbox/Монолитная архитектура.md", - "timestamp": 1725126347863 - }, - { - "filepath": "knowledge/dev/Скрипты для Git.md", - "timestamp": 1725126330349 } ], "bookmarkedFileStore": [], diff --git a/.obsidian/plugins/recent-files-obsidian/data.json b/.obsidian/plugins/recent-files-obsidian/data.json index a9b0e93e..1a4bee54 100644 --- a/.obsidian/plugins/recent-files-obsidian/data.json +++ b/.obsidian/plugins/recent-files-obsidian/data.json @@ -4,6 +4,14 @@ "basename": "Garbage Collector", "path": "knowledge/dev/java/gc/Garbage Collector.md" }, + { + "basename": "Garbage First", + "path": "knowledge/dev/java/gc/Garbage First.md" + }, + { + "basename": "00 Java разработка", + "path": "wiki/zero/00 Java разработка.md" + }, { "basename": "Home", "path": "Home.md" @@ -191,14 +199,6 @@ { "basename": "00 Работа", "path": "_inbox/00 Работа.md" - }, - { - "basename": "Роль Начинатель", - "path": "_inbox/Роль Начинатель.md" - }, - { - "basename": "Роль Исполнитель", - "path": "_inbox/Роль Исполнитель.md" } ], "omittedPaths": [], diff --git a/knowledge/dev/java/gc/Garbage Collector.md b/knowledge/dev/java/gc/Garbage Collector.md index 13db142f..8e5e8001 100644 --- a/knowledge/dev/java/gc/Garbage Collector.md +++ b/knowledge/dev/java/gc/Garbage Collector.md @@ -13,27 +13,25 @@ zero-link: parents: linked: --- -Под мусором подразумеваются объекты, которые больше не используются в приложении. - -Некоторые языки возлагают ответственность за управление памятью на разработчика, например C, C++, Rust. В таком случае разработчик должен сам, в коде, вызвать метод удаления объекта, чтобы освобождать память. Если этого не делать, то можно получить [[утечку памяти]]. - В некоторых языках есть механизм автоматического и безопасного освобождения оперативной памяти, ранее выделенной объектам в программе. Влияние разработчика на этот процесс опосредованное, прямого управления нет. Этот механизм принято называть Garbage collector (GC). -Наличие GC в языке можно сравнить с коробкой автомат в автомобиле: вы получаете удобство, но в какой-то степени теряете контроль. - -С GC Вы получаете следующие преимущества: -- Ускорение разработки. -- Защита от утечек памяти. - -и следующие недостатки: -- Потребление дополнительных вычислительных ресурсов. -- Утечки памяти :) -- [StopTheWorld](StopTheWorld.md) паузы - > [!WARNING] Структура памяти в Java > Перед изучением данной темы необходимо понимать, как устроена память в Java. -> [!NOTE]- Молитва сборщиков мусора +Некоторые языки возлагают ответственность за управление памятью на разработчика, например C, C++, Rust. В таком случае разработчик должен сам, в коде, вызвать метод удаления объекта, чтобы освобождать память. Если этого не делать, то можно получить [[утечку памяти]]. + +Наличие GC в языке можно сравнить с коробкой автомат в автомобиле: вы получаете удобство, но в какой-то степени теряете контроль. + +Вы получаете следующие преимущества: +- Ускорение разработки. +- Защита от утечек памяти. + +B следующие недостатки: +- Потребление дополнительных вычислительных ресурсов. +- Утечки памяти :) +- [StopTheWorld](StopTheWorld.md) + +> [!NOTE]- Шуточная молитва сборщиков мусора > Дай мне места для размещения того, что пока еще нужно. Дай мне смелости удалить то, что больше не пригодится. И дай мне мудрости, чтобы отличить одно от другого. ## Производительность GC Вам быстро, дешево или качественно? @@ -73,7 +71,6 @@ linked: #### Search thread - Отдельный поток, который занимается поиском мусора и подает сигнал для запуска сборки. - Как правило он один и работает параллельно с основной программой. - #### GC thread - Отдельный поток, который занимается сборкой мусора. - Таких потоков может быть много. diff --git a/wiki/zero/00 Java разработка.md b/wiki/zero/00 Java разработка.md index d677b4e9..d19003ec 100644 --- a/wiki/zero/00 Java разработка.md +++ b/wiki/zero/00 Java разработка.md @@ -4,3 +4,4 @@ tags: parents: - "[[00 Разработка]]" --- +- [Garbage Collector](knowledge/dev/java/gc/Garbage%20Collector.md) \ No newline at end of file