vault backup: 2024-08-31 22:10:52
This commit is contained in:
parent
edb16ccd9c
commit
e0c12dac1e
18
.obsidian/plugins/home-tab/data.json
vendored
18
.obsidian/plugins/home-tab/data.json
vendored
@ -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": [],
|
||||
|
@ -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": [],
|
||||
|
@ -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
|
||||
- Отдельный поток, который занимается сборкой мусора.
|
||||
- Таких потоков может быть много.
|
||||
|
@ -4,3 +4,4 @@ tags:
|
||||
parents:
|
||||
- "[[00 Разработка]]"
|
||||
---
|
||||
- [Garbage Collector](knowledge/dev/java/gc/Garbage%20Collector.md)
|
Loading…
Reference in New Issue
Block a user