公告
Android Perfetto 系列 14:heapprofd 与内存 Profiling
1 | WITH target_process AS ( |
这三个時間点必须先确认都有成功完成的方向 heap dump;占位時間不能直接用,本例只有三个 dump 均存在才返回结果,缺 dump 时调用方应输出不可用,不能让 CASE ... ELSE 0 把缺采集当成已释放。1 MiB 只是示例篩選阈值。
释放后仍保留才偏泄漏;操作中升高但释放后回落是峰值;长期保留但有容量上限、复用证据和压力回收策略,才可能写成缓存。
报告字段可以固定成这一组:
1 | trace_name,process_name,upid,pid,scenario,dump_phase,dump_ts_ms,sampling_interval_bytes,dump_interval_ms,top_stack_frame,mapping_name,unreleased_mb,retained_delta_mb,total_malloc_mb,allocation_count,symbol_status,profileable_state,data_loss_status,evidence_grade,conclusion_type,next_action |
采样间隔怎么理解
heapprofd 不是默认记录每一次分配。sampling_interval_bytes: 4096 的含义是:平均每分配 4096 bytes 采一个样本,再按采样概率归因到调用栈。足够大的 allocation 可能按真实大小记录,但不要把采样间隔理解成“低于它就估算,高于它就精确”的硬分界;不同 Android 版本和 heap 配置还会作用实际行为。
怎么选:
本文由News整理發布,僅供參考。
評論載入中…

