가비지컬렉션

타마타마·2025년 9월 25일
0
post-thumbnail

가비지컬렉션을 왜?

가비지컬렉션이란 쓰레기 값 :: 참조되지 않는 값을 의미한다.
JVM이 지워준다고 하는데, 왜 우리가 신경을 써야할까 ?

파일은 어떻게 저장될까

같은 파일에 속성을 보았을 때, 왜 크기와 디스크할당크기가 나뉘어있고 크기가 다를까?

  1. 컴퓨터는 보조기억장치와 주기억장치로 나뉘어 있다. 디스크는 어디와 더 가까운 걸까?

    보조기억장치에 더 가깝다.

  2. 저장할 때는 1byte로 저장을 했는데, 사용할 때 사용되는 크기는 이제 (TLS)8kb로 사용하게 될 것이다.
    + ssd는 하드디스크랑 다르게 덮어쓰기가 불가능하다. read/write이 8kb와같이 크다면, 어떻게 구성해야하나 ?

그럼 이 때 가비지컬렉션은 언제 하는걸까 ?

SSD는 새로운 데이터를 쓰기 위해서 크게 3가지의 과정을 거친다.
1. 유효한 페이지 복사
2. 블록 전체 삭제
3. 새로운 데이터 쓰기

[쉽게 말하면,]

  1. 참조를 끊어놓는다. (실제 삭제하지 않음)
  2. OS 자체에서 사용자가 보조기억장치만 쓰고 주기억장치가 사용되고있지 않다고 판단되면, 그때 실제로 삭제한다.
    ex ) 게임하는데 갑자기 PC가 우웅하면서 재부팅 되는 느낌이 드는 것
    => 가비지컬렉션 하는 것
  1. 그렇다면 예를 들어보자.
    3-1.정말 꽉 찬 usb(블록) 두개가 있다고 가정하자.
    3-2. ssd 100%로 사용한다고 하자
    3-3. 그럼 블록을 복사해두고 사용해야할텐데,어떻게 하나?
    3-4. usb 속성을 보면, 용량이 자연수가 아닌 소수로 끝난다.
    이때, 남은 소수점자리는 뭐하나 ??

//reddit사이트의 r/Windows10님 사진

유효블록을 남겨둔 것이다.
1. 가비지컬렉션하기위해
2. 성능 좋게하기 위해서
3. 복원 잘 할 수 있기 위해서


내용을 어지럽게 써둔 것 같은데 다시 공부를 하고 잘 정리해야겠다. 이제 HW의 가격을 내리고 크기를 올리는 추세라고 하는데, 이거에 대응되는 SW를 만들기 위해 저장공간/가비지컬렉션 하는 방법을 주의하면서 공부해야겠다.

0개의 댓글