履歴は、自分で開けるファイルです。
VitalsはMacと各アプリの使用状況を、Mac上の1つのファイルに保存します。ごく普通のSQLiteデータベースなので、Macが高温になった時間、最もエネルギーを使ったアプリ、今月と先月の違いなど、自分の知りたいことを調べられます。
保存場所
~/Library/Application Support/Vitals/history.sqlite
macOSに付属するsqlite3コマンドか、SQLiteを読めるアプリで開けます。読み出しだけに使い、書き込みはVitalsに任せてください。中身がMacの外に出ることはありません。
数値の書き方
- 時刻は1970年からの秒数で、UTCです。
datetime(start, 'unixepoch', 'localtime')で自分の地域の時刻に変換できます。 - どの列も、名前に単位が入っています: bytes、seconds、percent、celsius、watts。
- パーセントは0から100です。MacのCPUでは、全コアに対する割合です。
- ファンのないMacのファン速度のように、Macから得られない値は空のままです。
テーブル
readingsMacにどれだけ負荷がかかったかを5分ごとに1行で記録します。CPU、メモリ、メモリプレッシャー、GPU、Neural Engine、温度、ファン速度、電力の平均と最大値です。system_hoursMac全体の使用状況を1時間ごとに1行で記録します。CPU、メモリ、ネットワーク、ディスク、エネルギーです。system_five_minutes同じ内容を5分ごとに1行で、過去2日分。system_minutes同じ内容を1分ごとに1行で、過去3時間分。app_days各アプリの使用状況を、アプリごとに1日1行で記録します。app_hours同じ内容を1時間ごとに、過去2日分。
readingsstart, seconds, cpu_percent_average, cpu_percent_peak, memory_used_bytes_average, memory_used_bytes_peak, memory_pressure_percent_average, memory_pressure_percent_peak, memory_pressure_level_peak, swap_used_bytes_peak, gpu_percent_average, gpu_percent_peak, neural_engine_percent_average, neural_engine_percent_peak, cpu_celsius_average, cpu_celsius_peak, hottest_celsius_average, hottest_celsius_peak, fan_rpm_average, fan_rpm_peak, power_watts_average, power_watts_peak, thermal_state_peak, battery_percent, plugged_in_seconds
system_hours, system_five_minutes, system_minutesstart, seconds, cpu_load_seconds, memory_byte_seconds, network_bytes_in, network_bytes_out, disk_bytes_read, disk_bytes_written, energy_joules
app_days, app_hoursstart, app_id, name, kind, bundle_path, seconds, cpu_seconds, energy_joules, memory_byte_seconds, peak_memory_bytes, network_bytes_in, network_bytes_out, disk_bytes_read, disk_bytes_written
最初に試せるクエリ
過去1週間で最も高温だった5分間の上位10件
SELECT datetime(start, 'unixepoch', 'localtime') AS time,
round(cpu_celsius_peak) AS celsius,
round(cpu_percent_peak) AS cpu
FROM readings
WHERE start > strftime('%s', 'now', '-7 days')
ORDER BY cpu_celsius_peak DESC
LIMIT 10; メモリが圧迫された時間
SELECT datetime(start, 'unixepoch', 'localtime') AS time,
memory_pressure_level_peak AS pressure,
round(memory_used_bytes_peak / 1073741824.0, 1) AS gb
FROM readings
WHERE memory_pressure_level_peak != 'normal'
ORDER BY start DESC
LIMIT 20; 過去30日間に最もエネルギーを使ったアプリ
SELECT name, round(sum(energy_joules) / 3600, 1) AS watt_hours
FROM app_days
WHERE start > strftime('%s', 'now', '-30 days')
GROUP BY name
ORDER BY watt_hours DESC
LIMIT 10; 保存期間
30日間です。設定 → 一般 →「履歴の保存期間」で、90日間、6か月間、1年間に延ばせます。同じページの「履歴を削除」でファイルを空にできます。
SQLを使わずに
概要の「書き出す」→「CSVを書き出す」で、同じ数値を表計算アプリ用のCSVファイルとして保存できます。VitalsをAIアシスタントに接続していれば、Macが限界に達した時間を自分の言葉でたずねられます。