gc에 소양 좀 있는 사람 있음? 직접 구현해 봤다던지
강제로 gc를 호출하지 않을 때 gc가 메모리 회수를 결정하는 건 언제 어떻게 함?
내가 생각하는 가능성
1. 주기적으로 루프 돌면서 사용량 체크함
2. 마지막으로 메모리에 접근하며 gc를 통과할 때 체크함
3. 둘 다
gc에 소양 좀 있는 사람 있음? 직접 구현해 봤다던지
강제로 gc를 호출하지 않을 때 gc가 메모리 회수를 결정하는 건 언제 어떻게 함?
내가 생각하는 가능성
1. 주기적으로 루프 돌면서 사용량 체크함
2. 마지막으로 메모리에 접근하며 gc를 통과할 때 체크함
3. 둘 다
저는아닙니다찾으시는그분이
gc라고 말하면 항상 java 이야기 하던데.. 난 gc 비슷한 피쳐폰에 들어갔던 수작업으로 구현했던 malloc에 대해서 좀 알걸랑. 메모리가 이진트리 형태로 링크드 리스트로 되어 있었는데.. malloc을 하게 되면 자료 연속성 등록 현황 검색해서 연속으로 넣기 가장 큰 공간이 malloc으로 할당 받고자 하는 공간 보다 크면 그기를 할당해주는 식으로 하고, 그게 없을 경우는 메모리 정리에 들어가는 식으로 했던 기억이 가물가물 난당.
레퍼런스 카운팅. 오픈된 스코프의 끝.
딱히 주기적인건 아님.
내가 알기로도 가비지 컬렉터가 메모리 돌아다니면서 쓰이는지 않쓰이는지 확인하고
안쓰이면 '어 안쓰이네?'하면서 카운팅을 해놓은걸로 알고 있음 그러다 또 다시 안쓰이면 카운팅 하면서 스케쥴링에 따라 가비지 컬렉터가 메모리 헤체 카운팅이 되면 그에 해당하는 메모리를 해체하는 걸로 알고 잇음
gc도 종류가 다양함 제일 쉬운 구현은 레퍼런스 카운팅 쯤 되겠는데 그건 걍 카운트 0되면 free해 주면 되겠고
카운팅은 GC가 능동적으로 하는게 아냐..
GC가 능동적으로 하게 되는건 메모리 컴팩션.
Rc는안대하지마루프에빠져바린단말야
Gc 최고봉은 generational GC지!
카운팅은 조팝용