fix: use phys_footprint on macOS to match Activity Monitor

Switch from MACH_TASK_BASIC_INFO (resident_size) to TASK_VM_INFO
(phys_footprint) which matches Activity Monitor's Memory column.
Also: capacity-aware heap estimation, entry counts in memory payload,
heap_bytes tests for all stores.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Razvan Dimescu
2026-03-30 12:06:23 +03:00
parent e6489d4a1f
commit a5a3a0552d
10 changed files with 178 additions and 47 deletions

View File

@@ -214,12 +214,15 @@ struct BlockingStatsResponse {
#[derive(Serialize)]
struct MemoryStats {
cache_bytes: usize,
cache_entries: usize,
blocklist_bytes: usize,
blocklist_entries: usize,
query_log_bytes: usize,
query_log_entries: usize,
srtt_bytes: usize,
srtt_entries: usize,
overrides_bytes: usize,
overrides_entries: usize,
total_estimated_bytes: usize,
process_rss_bytes: usize,
}
@@ -553,12 +556,15 @@ async fn stats(State(ctx): State<Arc<ServerCtx>>) -> Json<StatsResponse> {
},
memory: MemoryStats {
cache_bytes,
cache_entries: cache_len,
blocklist_bytes,
blocklist_entries: bl_stats.domains_loaded,
query_log_bytes,
query_log_entries,
srtt_bytes,
srtt_entries,
overrides_bytes,
overrides_entries: override_count,
total_estimated_bytes: total_estimated,
process_rss_bytes: crate::stats::process_rss_bytes(),
},