你的歷史記錄是一個可以打開的檔案。
Vitals把Mac和每個App的使用量保存在你Mac上的一個檔案中。它是一般的SQLite資料庫,所以你可以問它自己的問題:Mac什麼時候溫度偏高、哪個App最耗能源、這個月和上個月相比如何。
檔案位置
~/Library/Application Support/Vitals/history.sqlite
用macOS內建的sqlite3指令,或任何能讀取SQLite的App打開它。只從中讀取,寫入就交給Vitals。裡面的任何內容都不會離開你的Mac。
數值的寫法
- 時間是自1970年起的秒數,採用UTC。
datetime(start, 'unixepoch', 'localtime')可以把它轉換成你當地的時間。 - 每個欄位的名稱都標有單位:bytes、seconds、percent、celsius、watts。
- 百分比的範圍是0到100。Mac的CPU是指所有核心合計。
- 你的Mac無法提供的讀數(例如沒有風扇的Mac上的風扇轉速)會留空。
資料表
readingsMac的負載有多重,每五分鐘一列:CPU、記憶體、記憶體壓力、GPU、神經網路引擎、溫度、風扇轉速和功率的平均值與最高值。system_hours整台Mac的使用量,每小時一列:CPU、記憶體、網路、磁碟和能源。system_five_minutes同樣的內容,每五分鐘一列,保留最近兩天。system_minutes同樣的內容,每分鐘一列,保留最近三小時。app_days每個App的使用量,每個App每天一列。app_hours同樣的內容按小時記錄,保留最近兩天。
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
入門查詢
過去一週最熱的十個五分鐘
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天最耗能源的App
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什麼時候達到上限。