작동 방식

Hedroom의 작동 방식을 단계별로

Hedroom은 macOS에서 몇 가지 수치를 읽고, 앱 하나가 이상해진 것을 알아채고, 조치 하나를 제안하며, 사용자가 수락한 뒤 어떤 일이 있었는지 측정합니다. 각 단계를 사용하는 기준값과 함께 설명합니다.

이 페이지의 수치는 Hedroom의 설계 문서와 코드에서 가져왔습니다. 측정값인 경우 언제 어느 Mac에서 측정했는지 적어 두었습니다. Hedroom은 아직 출시되지 않았으므로 여기에 적힌 내용은 공개 버전을 설명하는 것이 아닙니다.

1. 측정: 무엇을, 얼마나 자주 읽는가

모든 측정값은 메인 스레드 밖에서 실행되는 샘플러 하나에서 가져오므로 앱의 반응성이 유지됩니다. 각 소스는 인터페이스 뒤에 있는 별도의 코드이며, 가짜 데이터로 테스트할 수 있는 것도 그 때문입니다. 소스는 다음과 같습니다:

Hedroom이 macOS에서 읽는 것
측정 항목용도시점
메모리 압력 수준여유 공간을 찾기 위해 얼마나 애쓰고 있는지에 대한 macOS 자체의 판단입니다. 메모리에 관한 주된 신호입니다.틱마다, 그리고 macOS가 변화를 보고하면 즉시.
메모리 구성과 스왑 활동앱, 와이어드, 압축, 캐시된 메모리와 스왑이 늘어나는 속도.틱마다.
앱별 메모리, CPU 시간, 에너지각 프로세스의 풋프린트(활동 상태 보기에서 "메모리"로 표시되는 값). 앱과 그 도우미가 하나로 집계되도록 묶습니다.창이 열려 있는 동안은 틱마다, 전원 연결 중 백그라운드에서는 2틱마다, 배터리 사용 중에는 3틱마다, 저전력 모드에서는 4틱마다.
코어별 CPU 부하부하가 큰 앱, 그리고 고성능 코어와 고효율 코어 사이의 부하 분배.틱마다.
칩 전력Mac이 보고하는 경우 CPU, GPU, Neural Engine, 메모리의 와트. Apple이 문서화하지 않은 macOS 인터페이스를 사용하므로, 실패하면 Hedroom은 추측하지 않고 "사용할 수 없음"이라고 표시합니다.3.5초 이상의 구간 단위로.
열 상태와 배터리macOS가 성능을 제한하고 있는지, 배터리 사이클 수와 용량, 남은 시간.틱마다.
저장 공간 여유시동 볼륨의 여유 공간.창이 열려 있을 때는 30초마다, 닫혀 있을 때는 5분마다.
WindowServer CPUCPU 화면과 디스플레이 어드바이저에서만 사용합니다.해당 화면 중 하나가 열려 있는 동안에만.
오디오, 마이크, 카메라 사용 상태안전 확인: Hedroom은 통화 중인 앱을 건드리지 않습니다.동작을 검토할 때.

틱

"틱"은 측정 한 회분입니다. 빈도는 사용 상황에 따라 달라집니다:

샘플링 주기
상황틱
Hedroom 창이나 메뉴 막대 패널이 열려 있음2초
전원 연결 중 백그라운드5초
배터리 사용 중 백그라운드10초
저전력 모드가 켜져 있음15초
메모리 압력이 "경고" 또는 "위험"2초(고정)
모니터링을 일시 정지함중지됨

설정에는 창이 열려 있을 때의 주기를 2, 5, 10초 중에서 고르는 "Mac 확인 주기" 항목이 있으며, 백그라운드 주기는 그에 맞춰 달라집니다. 원본 측정값은 48시간 동안 보관됩니다. 모든 것은 Mac 안의 라이브러리 폴더에 있는 데이터베이스 파일 하나에 저장됩니다. 개인정보 보호를 참고하세요.

2. 감지: 무엇을 발견 사항으로 보는가

Hedroom은 수치가 크다고 해서 알림을 내지 않습니다. 각 앱을 그 앱이 내 Mac에서 보통 어느 정도 크기인지와 비교하고, 그 변화가 이어지는지 지켜봅니다.

메모리: 양호, 부담, 위험

Hedroom은 세 가지 상태 중 하나를 보여 줍니다. 기준값은 문서화되어 있고 테스트됩니다.

메모리가 "부담" 또는 "위험"이 될 때
상태진입 조건해제 조건
부담macOS가 압력 수준을 "경고"로 보고하거나, 압축 메모리가 RAM의 20% 이상인 상태에서 스왑이 분당 20MB 이상 속도로 2분간 늘어날 때.수준이 "보통"이고 스왑 증가가 3분 동안 분당 5MB 미만일 때.
위험macOS가 수준을 "위험"으로 보고하거나, 스왑이 분당 200MB 이상 속도로 60초 동안 늘어나거나, 여유 메모리와 캐시를 합친 양이 60초 동안 RAM의 3% 미만일 때.이 조건 중 어느 것도 2분 동안 해당하지 않을 때. 그러면 "부담"으로 내려갑니다.

단순히 사용된 스왑이 Mac을 "부담" 상태로 만드는 일은 없습니다. macOS가 오래된 스왑을 남겨 두기 때문입니다. 집계하는 것은 늘어나고 있는 스왑뿐입니다. 압력이 양호하면 "사용 중" 메모리가 많아도 "양호"입니다. 차이는 왜 사용 중인 RAM이 아니라 압력인가에서 설명합니다.

누수: 평소 크기를 훌쩍 넘은 앱이 한동안 이어질 때

Hedroom은 각 앱에 대해 최근 7일간의 평소 사용에서 평소 크기를 학습합니다. 다음 조건이 모두 맞을 때만 누수로 표시합니다:

  • 앱이 평소 크기의 3배 이상입니다. 2.5배일 때는 "커지는 중"으로만 표시합니다.
  • 1GB 이상이거나, 그보다 크다면 RAM의 6% 이상입니다.
  • 그 상태가 20분 연속으로 이어졌거나, 30분 추세에서 계속 커지고 있습니다.
  • 건드리지 않는 목록에 없고, Apple이 만든 것이 아니며(직접 사용하는 Apple 앱에는 작은 예외가 있습니다), 프로세스 라이브러리가 동영상 편집 앱이나 Docker처럼 보통 크다고 표시한 앱도 아닙니다.

Hedroom이 앱을 약 6시간 학습하기 전에는 아직 학습 중이라고 표시합니다. 이름을 아는 앱에는 프로세스 라이브러리의 일반적인 크기를 사용하고, 모르는 앱은 RAM의 15% 이상이면서 계속 커지는 크기만 알리며 배율이 아니라 "평소보다 큼"이라고 표시합니다.

CPU 폭주

백그라운드 앱(지금 쓰고 있는 앱이 아닌 것)이 3분 평균으로 코어 하나의 80% 이상, 그리고 그 앱 자신의 평소 백그라운드 CPU의 3배 이상을 쓰면 폭주로 봅니다. 단, 라이브러리가 평소에도 바쁜 앱(컴파일러, 백업, 동영상 인코더, 인덱싱)으로 표시했거나 통화 중인 앱은 제외합니다. 3분 후 오늘 화면에 표시되며, 알림은 10분 동안 이어진 뒤에 나옵니다.

알림 줄이기

같은 앱에 대한 같은 발견 사항은 6시간에 최대 한 번만 알립니다. 급하지 않은 알림은 하루 3회까지입니다. 어떤 앱의 알림을 세 번 닫으면 Hedroom은 그 앱에 대한 알림을 멈추고 건드리지 않는 목록에 추가하도록 제안합니다.

3. 판단: 제안 하나, 그리고 안전 게이트

Hedroom이 할 수 있는 동작이 여러 개일 때는 되찾을 양과 위험도를 비교해 순위를 매기고 상위 두 가지를 보여 줍니다. 강제 종료는 순위가 매겨진 조치로 제시되지 않습니다.

다시 실행, 종료, 일시 정지, 고효율 코어로 이동 전에는 항상 하나의 안전 게이트를 거칩니다. 게이트는 대상이 다음에 해당하면 거부합니다:

  • Hedroom 자신(아무 표시 없이 무시합니다).
  • Apple이 만들었거나 시스템 폴더에 있는 것. 클릭 한 번으로 다시 실행하거나 종료할 수 있는, 직접 사용하는 Apple 앱은 제외합니다.
  • 건드리지 않는 목록에 있는 것.
  • 지금 사용 중인 앱. 규칙이 일시 정지, 이동, 종료를 요청한 경우.
  • 오디오를 재생 중이거나 마이크를 사용 중인 앱, 또는 카메라가 켜져 있는 동안의 통화 앱.
  • 백업이 실행되는 동안의 백업 앱.
  • 일시 정지에 대응하는 것으로 확인되지 않은 앱. 규칙이 일시 정지나 종료를 요청했고 사용자가 그 앱을 직접 고르지 않은 경우. Hedroom은 저장하지 않은 작업을 확실하게 볼 수 없습니다.
  • 라이브러리가 위험한 압력 상태에서 다시 실행하는 것이 안전하지 않다고 표시한 앱.
  • 별도의 두 번째 확인이 없는 강제 종료.

이 중 하나를 Hedroom이 확인할 수 없으면(예: 오디오 확인이 실패한 경우) 규칙은 아무것도 하지 않고, 클릭일 때는 먼저 묻습니다. 거부된 경우에는 오류가 아니라 "Slack 앱이 통화 중입니다."와 같은 문장으로 이유를 보여 줍니다. 거부한 것도 실행한 것도 모두 기록됩니다. 자세한 내용은 Hedroom이 절대 하지 않는 일을 참고하세요.

4. 실행: 동의를 받아

동작은 작고 되돌릴 수 있습니다:

  • 다시 실행은 ⌘Q처럼 앱에 종료를 요청하고, 기다린 뒤, 다시 엽니다.
  • 고효율 코어는 앱의 우선순위를 낮춰 그 앱의 작업이 고효율 코어에서 실행되게 합니다.
  • 일시 정지는 그 앱으로 돌아올 때까지, 길어도 60분 동안 앱을 멈춰 둡니다. Hedroom이 충돌해도 작은 감시 프로세스가 앱을 재개합니다.

버튼을 클릭하는 것은 그 동작에 대한 동의입니다. 규칙은 미리 준 동의이며, 모든 템플릿은 꺼진 상태로 제공됩니다. 안전한 것으로 확인되지 않은 앱을 종료하거나 다시 실행할 때는 항상 먼저 묻습니다. 매번 사용자의 허락 없이는 아무것도 삭제되지 않으며, 정리는 파일을 휴지통으로 옮깁니다. 조치와 규칙에 모든 제한을 적어 두었습니다.

5. 영수증: 전, 후, 그리고 정직한 판정

모든 동작마다 영수증이 하나 만들어집니다. Hedroom은 동작 전 5분의 측정값과 동작 후 5~15분의 측정값을 비교합니다. 상태가 안정되도록 처음 30초(다시 실행한 뒤에는 60초)는 제외합니다.

영수증 측정 구간타임라인. 동작 시점에서 끝나는 5분의 전 구간, 이어지는 짧은 안정화 구간, 그다음 5~15분의 후 구간.전: 5분동작안정화후: 5~15분
측정값이 안정적이면 영수증은 5분 만에 끝날 수 있습니다. 그렇지 않으면 최대 15분까지 계속 측정합니다.

정직한 결과는 네 가지입니다:

  • 측정됨. 변화가 Hedroom이 인정하는 최소값 이상입니다. 메모리 100MB, CPU 코어 하나의 10포인트, 전력 0.3W, 디스크 50MB입니다.
  • 효과 없음. 변화가 그보다 작거나 반대 방향이었습니다. 영수증에는 "측정할 수 있는 효과가 없습니다."라고 적히며 성과로 내세우지 않습니다.
  • 측정 불가. 같은 시간에 다른 앱이 크게 변했습니다(다른 앱이 1GB 넘게 변했거나, 500MB를 넘게 쓰는 새 앱이 실행되었거나, 다른 앱을 종료했거나, Mac이 잠자기에 들어갔거나, 전원을 연결하거나 분리한 경우). 영수증은 성과로 내세우지 않고 그 사실을 표시하며, 합계에서도 제외합니다.
  • 취소됨. 측정이 끝나기 전에 동작을 되돌렸거나 Hedroom이 종료되었습니다. 효과는 주장하지 않습니다.

각 영수증에는 신뢰도(높음, 보통, 낮음)도 함께 표시됩니다. 신뢰도가 낮은 영수증에는 "대략적"이라고 표시되며 합계에 포함되지 않습니다. 영수증은 두 시간 구간을 비교하는 것으로, 통제된 실험이 아닙니다. 읽는 방법은 영수증 읽는 방법을 참고하세요.

왜 사용 중인 RAM이 아니라 메모리 압력인가

한동안 켜 둔 Mac은 설계상 메모리 대부분이 사용 중으로 표시됩니다. macOS는 남는 메모리를 캐시된 파일로 채워 두는데, 다음에 여는 것이 더 빨라지기 때문이며 앱이 필요로 하면 즉시 돌려줍니다. 메모리 막대가 가득 찬 것은 문제가 아닙니다. 중요한 것은 macOS가 여유 공간을 찾느라 애쓰고 있는지이며, 이것이 메모리 압력이고 스왑이 늘어나는 속도와 함께 봅니다. 그래서 Hedroom에는 메모리를 "비우는" 버튼이 없습니다. 그렇게 하면 macOS가 쓸모 있는 캐시를 버리게 됩니다. 압력과 사용 중인 RAM에 대한 가이드에서 활동 상태 보기로 직접 확인하는 방법을 보여 줍니다.

가볍게 작동하는 이유

Hedroom의 예산은 평균 CPU 코어 하나의 0.5% 미만, 메모리 80MB 미만입니다. 지금까지 측정한 결과:

측정한 부하(릴리스 빌드, MacBook Pro 한 대: Mac15,6, Apple M3 Pro, 18GB, macOS 27.0)
측정 항목결과날짜
CPU, 창 열지 않음, 5초 틱코어 하나의 0.27%(30분 실행 중 138개 구간). 테스트 한도: 0.3% 미만.2026-10-13
메모리, 창 열지 않음중앙값 29.2MB, 최대 31.7MB. 한도: 80MB 미만.2026-10-13
웨이크업, 창 열지 않음평균 초당 0.45회. 한도: 5 미만.2026-10-13
오늘 화면을 연 상태, 안정 시코어 하나의 0.5%, 풋프린트 71MB(390초, 창이 표시된 것을 확인함). 이 실행은 일부만 진행한 것입니다.2026-10-15

이 수치는 약속이 아니라 측정값으로 읽어 주세요. Mac 한 대에서 측정했고, 그 Mac이 메모리 압력을 받고 있어서 실행 일부는 더 빠른 2초 틱이었습니다. 설치 후 첫 실행에서는 저장 공간 검사에 몇 분이 걸리며 낮은 우선순위로 최대 코어 하나를 사용합니다. 오늘 화면 이외의 탭은 모두 다시 측정하지는 않았습니다. 같은 기록에 있는 수정 전에는 창을 열면 코어의 20~40%를 사용했는데, 이는 이 테스트에서 발견되어 수정되었습니다. 원본 파일과 전체 기록은 저장소의 bench/results 폴더에 있으며, 설정에서는 내 Mac에서 Hedroom 자체가 측정한 부하를 보여 줍니다. 출시 전 확인은 벤치마크와 서명된 빌드에서의 부하 측정이며, 아직 진행되지 않았습니다.

가볍게 유지하는 방법: 모든 것을 샘플러 하나로 처리하고, 아무 일도 없을 때는 틱을 느리게 하고, 백그라운드에서는 앱별 검사를 몇 틱에 한 번만 하며, 창 내용은 창이 화면에 있는 동안에만 만들고, 창이 가려지면 애니메이션을 멈춥니다.

건드리지 않는 것

  • macOS 자체: Apple이 서명했거나 시스템 폴더에 있는 것. Hedroom은 kernel_task, WindowServer 같은 프로세스를 설명하지만 일시 정지하거나 느리게 하거나 종료하지 않습니다. kernel_task, WindowServer 등 프로세스 설명을 참고하세요.
  • 지금 앞에 있는 앱, 통화 중인 앱, 오디오를 재생 중이거나 마이크 또는 카메라를 사용 중인 앱, 백업 중인 백업 앱.
  • 건드리지 않는 목록에 있는 앱.
  • 사용자의 파일. 삭제할 때마다 사용자가 직접 확인한 경우는 예외입니다. 정리는 먼저 휴지통으로 옮깁니다.

각 항목에 테스트가 붙은 전체 목록은 Hedroom이 절대 하지 않는 일에 있습니다. 다음으로는 모든 기능과 한계, Hedroom 비교, 용어집을 보세요.

Mac을 느리게 하는 것이 무엇인지 확인해 보세요.

모니터링은 무료이며, 카드도 계정도 필요 없습니다. Pro는 첫 서명 빌드와 함께 7일 무료 체험으로 시작됩니다. 측정할 수 있는 차이를 보여 주지 못한다면 계속 쓰지 마세요.