vault backup: 2024-08-31 22:10:52

This commit is contained in:
Struchkov Mark 2024-08-31 22:10:52 +03:00
parent edb16ccd9c
commit e0c12dac1e
No known key found for this signature in database
GPG Key ID: A3F0AC3F0FA52F3C
4 changed files with 32 additions and 34 deletions

View File

@ -25,7 +25,15 @@
"recentFilesStore": [ "recentFilesStore": [
{ {
"filepath": "knowledge/dev/java/gc/Garbage Collector.md", "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", "filepath": "Home.md",
@ -34,14 +42,6 @@
{ {
"filepath": "_inbox/Монолитный ад.md", "filepath": "_inbox/Монолитный ад.md",
"timestamp": 1725126350746 "timestamp": 1725126350746
},
{
"filepath": "_inbox/Монолитная архитектура.md",
"timestamp": 1725126347863
},
{
"filepath": "knowledge/dev/Скрипты для Git.md",
"timestamp": 1725126330349
} }
], ],
"bookmarkedFileStore": [], "bookmarkedFileStore": [],

View File

@ -4,6 +4,14 @@
"basename": "Garbage Collector", "basename": "Garbage Collector",
"path": "knowledge/dev/java/gc/Garbage Collector.md" "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", "basename": "Home",
"path": "Home.md" "path": "Home.md"
@ -191,14 +199,6 @@
{ {
"basename": "00 Работа", "basename": "00 Работа",
"path": "_inbox/00 Работа.md" "path": "_inbox/00 Работа.md"
},
{
"basename": "Роль Начинатель",
"path": "_inbox/Роль Начинатель.md"
},
{
"basename": "Роль Исполнитель",
"path": "_inbox/Роль Исполнитель.md"
} }
], ],
"omittedPaths": [], "omittedPaths": [],

View File

@ -13,27 +13,25 @@ zero-link:
parents: parents:
linked: linked:
--- ---
Под мусором подразумеваются объекты, которые больше не используются в приложении.
Некоторые языки возлагают ответственность за управление памятью на разработчика, например C, C++, Rust. В таком случае разработчик должен сам, в коде, вызвать метод удаления объекта, чтобы освобождать память. Если этого не делать, то можно получить [[утечку памяти]].
В некоторых языках есть механизм автоматического и безопасного освобождения оперативной памяти, ранее выделенной объектам в программе. Влияние разработчика на этот процесс опосредованное, прямого управления нет. Этот механизм принято называть Garbage collector (GC). В некоторых языках есть механизм автоматического и безопасного освобождения оперативной памяти, ранее выделенной объектам в программе. Влияние разработчика на этот процесс опосредованное, прямого управления нет. Этот механизм принято называть Garbage collector (GC).
Наличие GC в языке можно сравнить с коробкой автомат в автомобиле: вы получаете удобство, но в какой-то степени теряете контроль.
С GC Вы получаете следующие преимущества:
- Ускорение разработки.
- Защита от утечек памяти.
и следующие недостатки:
- Потребление дополнительных вычислительных ресурсов.
- Утечки памяти :)
- [StopTheWorld](StopTheWorld.md) паузы
> [!WARNING] Структура памяти в Java > [!WARNING] Структура памяти в Java
> Перед изучением данной темы необходимо понимать, как устроена память в Java. > Перед изучением данной темы необходимо понимать, как устроена память в Java.
> [!NOTE]- Молитва сборщиков мусора Некоторые языки возлагают ответственность за управление памятью на разработчика, например C, C++, Rust. В таком случае разработчик должен сам, в коде, вызвать метод удаления объекта, чтобы освобождать память. Если этого не делать, то можно получить [[утечку памяти]].
Наличие GC в языке можно сравнить с коробкой автомат в автомобиле: вы получаете удобство, но в какой-то степени теряете контроль.
Вы получаете следующие преимущества:
- Ускорение разработки.
- Защита от утечек памяти.
B следующие недостатки:
- Потребление дополнительных вычислительных ресурсов.
- Утечки памяти :)
- [StopTheWorld](StopTheWorld.md)
> [!NOTE]- Шуточная молитва сборщиков мусора
> Дай мне места для размещения того, что пока еще нужно. Дай мне смелости удалить то, что больше не пригодится. И дай мне мудрости, чтобы отличить одно от другого. > Дай мне места для размещения того, что пока еще нужно. Дай мне смелости удалить то, что больше не пригодится. И дай мне мудрости, чтобы отличить одно от другого.
## Производительность GC ## Производительность GC
Вам быстро, дешево или качественно? Вам быстро, дешево или качественно?
@ -73,7 +71,6 @@ linked:
#### Search thread #### Search thread
- Отдельный поток, который занимается поиском мусора и подает сигнал для запуска сборки. - Отдельный поток, который занимается поиском мусора и подает сигнал для запуска сборки.
- Как правило он один и работает параллельно с основной программой. - Как правило он один и работает параллельно с основной программой.
#### GC thread #### GC thread
- Отдельный поток, который занимается сборкой мусора. - Отдельный поток, который занимается сборкой мусора.
- Таких потоков может быть много. - Таких потоков может быть много.

View File

@ -4,3 +4,4 @@ tags:
parents: parents:
- "[[00 Разработка]]" - "[[00 Разработка]]"
--- ---
- [Garbage Collector](knowledge/dev/java/gc/Garbage%20Collector.md)