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": [
{
"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": [],

View File

@ -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": [],

View File

@ -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
- Отдельный поток, который занимается сборкой мусора.
- Таких потоков может быть много.

View File

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