Hedroomの仕組みを順を追って
Hedroomは、macOSからいくつかの数値を読み取り、1つのアプリがおかしくなったことに気づき、1つの対処を提案し、あなたが承認したあとに何が起きたかを測定します。各ステップを、使用するしきい値とともに説明します。
このページの数値は、Hedroom自身の設計文書とコードに基づいています。測定値の場合は、いつ、どのMacで測ったかを記載しています。Hedroomはまだ公開されていないため、ここに書かれていることは公開バージョンを説明したものではありません。
1. 測定:何を、どのくらいの頻度で読み取るか
すべての測定値は、メインスレッド外で動作する1つのサンプラーから取得されるため、アプリは応答性を保ちます。各ソースは、インターフェースの背後にある独立したコードで、疑似データでテストできるのもそのためです。ソースは次のとおりです:
| 測定項目 | 用途 | 頻度 |
|---|---|---|
| メモリプレッシャーのレベル | 余裕を確保するためにどれだけ苦労しているかについての、macOS自身の判断です。メモリに関する主な信号です。 | ティックごと、およびmacOSが変化を報告したら直ちに。 |
| メモリの内訳とスワップの動き | App、ワイヤード、圧縮、キャッシュされたメモリと、スワップが増える速さ。 | ティックごと。 |
| アプリごとのメモリ、CPU時間、エネルギー | 各プロセスのフットプリント(アクティビティモニタで「メモリ」として表示される値)。アプリとそのヘルパーを1つとして数えるようにまとめています。 | ウインドウを開いている間はティックごと、電源接続中のバックグラウンドでは2ティックごと、バッテリー駆動中は3ティックごと、低電力モード中は4ティックごと。 |
| コアごとのCPU負荷 | 負荷の高いアプリと、高性能コアと高効率コアへの負荷の割り振り。 | ティックごと。 |
| チップの電力 | Macが報告する場合の、CPU、GPU、Neural Engine、メモリのワット数。Appleが文書化していないmacOSのインターフェースを使うため、失敗したときはHedroomが推測せずに「利用できません」と表示します。 | 3.5秒以上のウインドウで。 |
| 熱状態とバッテリー | macOSが性能を抑えているかどうか、バッテリーのサイクル数と容量、残り時間。 | ティックごと。 |
| ストレージの空き | 起動ボリュームの空き容量。 | ウインドウを開いているときは30秒ごと、閉じているときは5分ごと。 |
| WindowServerのCPU | CPU画面とディスプレイアドバイザのためだけに使います。 | それらの画面のいずれかを開いている間だけ。 |
| 音声、マイク、カメラの使用状況 | 安全確認:Hedroomは、通話中のアプリには触れません。 | 操作を検討するとき。 |
ティック
「ティック」は、測定の1回分です。頻度は、あなたの使い方によって変わります:
| 状況 | ティック |
|---|---|
| Hedroomのウインドウまたはメニューバーのパネルが開いている | 2秒 |
| 電源接続中のバックグラウンド | 5秒 |
| バッテリー駆動中のバックグラウンド | 10秒 |
| 低電力モードがオン | 15秒 |
| メモリプレッシャーが「警告」または「クリティカル」 | 2秒(固定) |
| モニタリングを一時停止した | 停止中 |
設定には、ウインドウを開いているときの間隔を2、5、10秒から選ぶ「Macを確認する間隔」があり、バックグラウンドの間隔はそれに応じて変わります。生の測定値は48時間保持されます。すべてはMacの中の、ライブラリフォルダにある1つのデータベースファイルに保存されます。プライバシーをご覧ください。
2. 検出:何を検出事項として扱うか
Hedroomは、数値が大きいからといって通知を出すことはありません。各アプリを、そのアプリがMacで通常どのくらいの大きさかと比較し、その変化が続くかどうかを待ちます。
メモリ:良好、逼迫、クリティカル
Hedroomは3つの状態のいずれかを表示します。しきい値は文書化され、テストされています。
| 状態 | 移行する条件 | 戻る条件 |
|---|---|---|
| 逼迫 | macOSがプレッシャーレベルを「警告」と報告する、またはスワップが毎分20 MB以上のペースで2分間増え続け、同時に圧縮メモリがRAMの20%以上である場合。 | レベルが「通常」で、スワップの増加が3分間、毎分5 MB未満の場合。 |
| クリティカル | macOSがレベルを「クリティカル」と報告する、またはスワップが毎分200 MB以上のペースで60秒間増え続ける、または空きメモリとキャッシュの合計が60秒間RAMの3%未満である場合。 | これらの条件がいずれも2分間当てはまらない場合。そのあと「逼迫」に下がります。 |
単に使用されたスワップが、Macを「逼迫」にすることはありません。macOSは古いスワップを残しておくためです。数えるのは増えているスワップだけです。プレッシャーが良好なら、「使用中」のメモリが多くても「良好」です。違いはなぜ使用中のRAMではなくプレッシャーなのかで説明しています。
リーク:通常の大きさを大きく超えたアプリが、しばらく続く場合
Hedroomは、各アプリについて、直近7日間の通常の使用から通常のサイズを学習します。リークとして扱うのは、次のすべてが当てはまるときだけです:
- アプリが通常のサイズの3倍以上である。2.5倍の場合は「増加中」と表示するだけです。
- 1 GB以上、またはRAMの6%のうち大きいほう以上である。
- その状態が20分間連続している、または30分間の傾向で増え続けている。
- 「触れないリスト」に入っておらず、Appleが作ったものでもなく(ご自身で使うAppleのアプリには小さな例外があります)、プロセスライブラリが動画編集アプリやDockerのように通常は大きいと示しているアプリでもない。
Hedroomがアプリを約6時間学習するまでは、まだ学習中と表示します。名前を知っているアプリには、プロセスライブラリにある一般的なサイズを使います。知らないアプリについては、RAMの15%以上で、なお増え続けているサイズだけを知らせ、倍率ではなく「通常より大きい」と表示します。
CPUの暴走
バックグラウンドのアプリ(今使っているものではない)が、3分間の平均でコア1つの80%以上、かつそのアプリ自身の通常のバックグラウンドCPUの3倍以上を使っている場合は暴走とみなします。ただし、ライブラリが通常から負荷が高いと示しているもの(コンパイラ、バックアップ、動画エンコーダ、インデックス作成)や、通話中のものは除きます。3分後に「今日」に表示されます。通知は、10分間続いてからです。
ノイズの抑制
同じアプリについての同じ検出事項は、6時間に最大1回しか通知しません。緊急でない通知は1日3回までです。あるアプリの通知を3回閉じると、Hedroomはそのアプリについて通知しなくなり、「触れないリスト」への登録を提案します。
3. 判断:1つの提案と、安全ゲート
Hedroomが行える操作が複数ある場合は、戻る量と危険度を比べて順位を付け、上位2つを表示します。強制終了が順位付きの対処として提示されることはありません。
再度開く、終了、一時停止、高効率コアへの移動の前には、必ず1つの安全ゲートを通ります。ゲートは、対象が次のものであるときに拒否します:
- Hedroom自身(何も表示せずに無視します)。
- Appleが作ったもの、またはシステムフォルダにあるもの。クリック1つで再度開いたり終了したりできる、ご自身が使うAppleのアプリは除きます。
- 「触れないリスト」に入っているもの。
- 今使っているアプリ。ルールが一時停止、移動、終了を求めた場合。
- 音声を再生中、マイクを使用中、またはカメラがオンの間の通話アプリ。
- バックアップの実行中のバックアップアプリ。
- 一時停止に対応していると分かっていないアプリ。ルールが一時停止や終了を求め、ご自身がそのアプリを選んでいない場合。Hedroomは、未保存の作業を確実には見られません。
- ライブラリが、クリティカルなプレッシャー中に再度開くのは安全でないと示しているアプリ。
- 別に2回目の確認がない強制終了。
これらのいずれかをHedroomが確認できない場合(たとえば音声の確認が失敗した場合)、ルールは何もせず、クリックなら先に確認します。拒否された場合は、エラーではなく「Slackは通話中です。」のような文で理由を表示します。拒否したことも実行したことも、すべて記録されます。詳しくはHedroomが決してしないことをご覧ください。
4. 実行:同意のうえで
操作は小さく、元に戻せます:
- 再度開くは、⌘Qと同じようにアプリに終了を依頼し、待ってから、もう一度開きます。
- 高効率コアは、アプリの優先度を下げて、そのアプリの処理を高効率コアで実行させます。
- 一時停止は、アプリに切り替えるまで、または最長60分間、アプリを止めておきます。Hedroomがクラッシュしても、小さな見張りプロセスがアプリを再開します。
ボタンのクリックは、その操作への同意です。ルールは、あらかじめ与えた同意で、すべてのテンプレートはオフの状態で提供されます。安全と分かっていないアプリの終了や再度開く操作は、必ず先に確認します。あなたの許可なしに、毎回、何かが削除されることはありません。整理ではファイルをゴミ箱に移します。対処とルールに、すべての制限を記載しています。
5. レシート:実行前、実行後、そして正直な判定
すべての操作から、1件のレシートが作成されます。Hedroomは、操作前の5分間の測定値と、操作後の5〜15分間の測定値を比較します。状態が落ち着くまで、最初の30秒(再度開いたあとは60秒)は除外します。
正直な結果は4種類あります:
- 測定済み。変化が、Hedroomが数える最小値以上です。メモリは100 MB、CPUはコア1つの10ポイント、電力は0.3 W、ディスクは50 MBです。
- 効果なし。変化がそれより小さい、または逆方向でした。レシートには「測定できる効果はありません。」と書かれ、成果としては扱いません。
- 測定不可。同じ時間に他のアプリが大きく変化しました(別のアプリが1 GB超変化した、500 MB超を使う新しいアプリが起動した、他のアプリを終了した、Macがスリープした、電源の接続や取り外しがあった)。レシートは成果として扱わず、その旨を表示し、合計にも含めません。
- キャンセル。測定が終わる前に、操作を取り消したか、Hedroomが終了しました。成果は主張しません。
各レシートには、信頼度(高・中・低)も付きます。信頼度が低いレシートには「おおまか」と表示され、合計には含まれません。レシートは2つの時間帯を比較するもので、対照実験ではありません。読み方はレシートの読み方をご覧ください。
なぜ使用中のRAMではなくメモリプレッシャーなのか
しばらく起動していたMacは、設計上、メモリの大半が使用中と表示されます。macOSは、空いているメモリをキャッシュされたファイルで埋めます。次に開くものが速くなるからで、アプリが必要としたら即座に返します。メモリバーがいっぱいでも問題ではありません。重要なのは、macOSが余裕を確保するのに苦労しているかどうかです。それがメモリプレッシャーで、スワップが増える速さとあわせて見ます。だからHedroomには、メモリを「消去」するボタンがありません。消去すると、macOSが役に立つキャッシュを捨ててしまいます。プレッシャーと使用中のRAMについてのガイドでは、アクティビティモニタでご自身で確かめる方法を紹介しています。
軽く動く理由
Hedroomの予算は、平均でCPUコア1つの0.5%未満、メモリ80 MB未満です。これまでに測定した結果:
| 測定項目 | 結果 | 日付 |
|---|---|---|
| CPU、ウインドウなし、5秒ティック | コア1つの0.27%(30分の実行中の138区間)。テストの上限:0.3%未満。 | 2026-10-13 |
| メモリ、ウインドウなし | 中央値29.2 MB、最大31.7 MB。上限:80 MB未満。 | 2026-10-13 |
| ウェイクアップ、ウインドウなし | 平均で毎秒0.45回。上限:5未満。 | 2026-10-13 |
| 「今日」画面を開いた状態、安定時 | コア1つの0.5%、フットプリント71 MB(390秒、ウインドウが表示されていることを確認済み)。この実行は部分的なものでした。 | 2026-10-15 |
これらは、約束ではなく測定値として読んでください。測定は1台のMacで行い、そのMacがメモリプレッシャーを受けていたため、実行の一部はより速い2秒のティックでした。インストール後の最初の実行では、ストレージのスキャンに数分かかり、低い優先度で最大コア1つ分を使います。「今日」以外のタブは、すべて再測定したわけではありません。同じ記録にある修正の前は、ウインドウを開くとコアの20〜40%を使っていました。これはこのテストで見つかり、修正されています。生のファイルと詳しい記録は、リポジトリのbench/resultsフォルダにあり、設定には、お使いのMacでHedroom自身が測定した負荷が表示されます。リリース前の確認は、ベンチマークと、署名済みビルドでの負荷測定です。これはまだ行われていません。
軽さを保つ仕組み:すべてを1つのサンプラーで処理する、何も起きていないときはティックを遅くする、バックグラウンドではアプリごとのスキャンを数ティックに1回にする、ウインドウの内容は画面に表示されている間だけ作る、ウインドウが隠れるとアニメーションを止める。
手を出さないもの
- macOS自体:Appleが署名したもの、またはシステムフォルダにあるもの。Hedroomは、
kernel_taskやWindowServerなどのプロセスを説明しますが、一時停止、低速化、終了は決してしません。kernel_task、WindowServerなどの解説をご覧ください。 - 目の前のアプリ、通話中のアプリ、音声を再生中またはマイクやカメラを使用中のアプリ、バックアップ実行中のバックアップアプリ。
- 「触れないリスト」にあるアプリ。
- あなたのファイル。削除のたびにご自身で確認した場合を除きます。整理は、まずゴミ箱に移します。
各項目にテストが付いた全一覧は、Hedroomが決してしないことにあります。次は、すべての機能と制約、Hedroomの比較、用語集。