仕組み

Hedroomの仕組みを順を追って

Hedroomは、macOSからいくつかの数値を読み取り、1つのアプリがおかしくなったことに気づき、1つの対処を提案し、あなたが承認したあとに何が起きたかを測定します。各ステップを、使用するしきい値とともに説明します。

このページの数値は、Hedroom自身の設計文書とコードに基づいています。測定値の場合は、いつ、どのMacで測ったかを記載しています。Hedroomはまだ公開されていないため、ここに書かれていることは公開バージョンを説明したものではありません。

1. 測定:何を、どのくらいの頻度で読み取るか

すべての測定値は、メインスレッド外で動作する1つのサンプラーから取得されるため、アプリは応答性を保ちます。各ソースは、インターフェースの背後にある独立したコードで、疑似データでテストできるのもそのためです。ソースは次のとおりです:

HedroomがmacOSから読み取るもの
測定項目用途頻度
メモリプレッシャーのレベル余裕を確保するためにどれだけ苦労しているかについての、macOS自身の判断です。メモリに関する主な信号です。ティックごと、およびmacOSが変化を報告したら直ちに。
メモリの内訳とスワップの動きApp、ワイヤード、圧縮、キャッシュされたメモリと、スワップが増える速さ。ティックごと。
アプリごとのメモリ、CPU時間、エネルギー各プロセスのフットプリント(アクティビティモニタで「メモリ」として表示される値)。アプリとそのヘルパーを1つとして数えるようにまとめています。ウインドウを開いている間はティックごと、電源接続中のバックグラウンドでは2ティックごと、バッテリー駆動中は3ティックごと、低電力モード中は4ティックごと。
コアごとのCPU負荷負荷の高いアプリと、高性能コアと高効率コアへの負荷の割り振り。ティックごと。
チップの電力Macが報告する場合の、CPU、GPU、Neural Engine、メモリのワット数。Appleが文書化していないmacOSのインターフェースを使うため、失敗したときはHedroomが推測せずに「利用できません」と表示します。3.5秒以上のウインドウで。
熱状態とバッテリーmacOSが性能を抑えているかどうか、バッテリーのサイクル数と容量、残り時間。ティックごと。
ストレージの空き起動ボリュームの空き容量。ウインドウを開いているときは30秒ごと、閉じているときは5分ごと。
WindowServerのCPUCPU画面とディスプレイアドバイザのためだけに使います。それらの画面のいずれかを開いている間だけ。
音声、マイク、カメラの使用状況安全確認: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秒)は除外します。

レシートの測定期間タイムライン。操作の時点で終わる5分間の実行前の期間があり、そのあと短い安定待ちの期間が続き、そのあとに5〜15分間の実行後の期間があります。実行前:5分操作安定待ち実行後:5〜15分
測定値が安定していれば、レシートは5分で完了することがあります。そうでなければ、最大15分まで測定を続けます。

正直な結果は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未満です。これまでに測定した結果:

測定した負荷(リリースビルド、MacBook Pro 1台:Mac15,6、Apple M3 Pro、18 GB、macOS 27.0)
測定項目結果日付
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の比較、用語集。

Macを遅くしているものを確認しましょう。

モニタリングは無料で、カードもアカウントも不要です。 Proは、最初の署名済みビルドとともに、7日間の無料トライアルを開始します。測定できる違いを示せなかった場合は、続けないでください。