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": [
|
"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": [],
|
||||||
|
@ -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": [],
|
||||||
|
@ -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
|
||||||
- Отдельный поток, который занимается сборкой мусора.
|
- Отдельный поток, который занимается сборкой мусора.
|
||||||
- Таких потоков может быть много.
|
- Таких потоков может быть много.
|
||||||
|
@ -4,3 +4,4 @@ tags:
|
|||||||
parents:
|
parents:
|
||||||
- "[[00 Разработка]]"
|
- "[[00 Разработка]]"
|
||||||
---
|
---
|
||||||
|
- [Garbage Collector](knowledge/dev/java/gc/Garbage%20Collector.md)
|
Loading…
Reference in New Issue
Block a user