- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 에러핸들링
- Git
- 알고리즘
- 배포
- First Project
- mongodb
- 코딩테스트
- react
- Err-Handling
- typescript
- LEVEL 1
- LEVEL1
- Refactoring
- Docker
- javascript
- 리팩터링 2판
- CSS
- MariaDB
- sql
- CRUD
- LEVEL 2
- 오늘도 개발자가 안된다고 말했다
- TWIL
- 프로그래머스
- 면접을 위한 cs 전공지식 노트
- java
- TMIL
- 코어 자바스크립트
- 아고라스테이츠
- TIL
Archives
성장에 목마른 코린이
가비지 컬렉션 본문
728x90
가비지 컬렉션
가비지 컬렉션은 프로그램에서 더 이상 사용하지 않는 메모리를 자동으로 정리하는 것입니다.
이 기능을 가진 언어는 자바, C#, 자바스크립트 등이 있습니다.
대표적인 가비지 컬렉션의 방법
1. 트레이싱
한 객체에 flag를 두고, 가비지 컬렉션 사이클마다 flag에 표시 후 삭제하는 mark and sweep 방법입니다.
객체에 in-use flag를 두고,
사이클마다 메모리 관리자가 모든 객체를 추적해서 사용 중인지 아닌지를 표시(mark)합니다.
그 후 표시되지 않은 객체를 삭제(sweep)하는 단계를 통해 메모리를 해제합니다.
2. 레퍼런스 카운팅
한 객체를 참조하는 변수의 수를 추적하는 방법입니다.
객체를 참조하는 변수는 처음에는 특정 메모리에 대해 레퍼런스가 하나뿐이지만,
변수의 레퍼런스가 복사될 때마다 레퍼런스 카운트가 늘어납니다.
객체를 참조하고 있던 변수의 값이 바뀌거나, 변수 스코프를 벗어나면 레퍼런스 카운트는 줄어듭니다.
레퍼런스 카운트가 0이 되면, 그 객체와 관련한 메모리는 비울 수 있습니다.
레퍼런스 카운트가 0이 된다는 말은 아무도 그 객체에 대한 레퍼런스를 가지고 있지 않다는 말과 같습니다.
'CodeStates > Section 3 (백엔드)' 카테고리의 다른 글
Git 브랜치 관리와 고급 기능 (0) | 2022.04.27 |
---|---|
웹 서비스에서의 캐시(Cache) (0) | 2022.04.22 |
프로세스, 스레드(Thread), 멀티 스레드 (0) | 2022.04.22 |
운영체제, 응용 프로그램 (0) | 2022.04.22 |
래스터와 벡터 이미지의 차이점 (0) | 2022.04.22 |
Comments