test: 新增内存占用基准用例与留存内存采集

bench 每轮采集在 workload 后 promote 根持有/会话引用的 epoch 对象并强制
一次 full GC,新增 peak_bytes / retained_bytes / retained_objects 三口径
(原 session_* 字段为执行期累计分配,不反映 workload 后留存);dispatch
循环增加 session 堆高水位采样,VM 暴露 session_bytes_peak 与
collect_session_gc。新增 8 个 mem_* 压力用例(对象图/字符串/闭包链/数组
增删/跨调用保留/Map/Set 保留/字符串拼接),基线扩至 76 条目。
This commit is contained in:
root
2026-09-10 08:18:52 +00:00
parent 31d3f59d2b
commit 1b87e212f9
20 changed files with 1359 additions and 697 deletions
+12
View File
@@ -19,6 +19,15 @@ pub struct MetricCollection {
pub ic_hit_rate: f64,
pub ic_hits: u64,
pub ic_misses: u64,
/// 执行期 session 堆账目的峰值高水位(字节)。旧基线文件无此字段,反序列化补 0。
#[serde(default)]
pub peak_bytes: u64,
/// workload 结束并强制完整 GC 后的 session 存活堆字节(留存内存)。
#[serde(default)]
pub retained_bytes: u64,
/// workload 结束并强制完整 GC 后的 session 存活对象数。
#[serde(default)]
pub retained_objects: u64,
}
impl MetricCollection {
@@ -40,6 +49,9 @@ impl MetricCollection {
("ic_hit_rate", self.ic_hit_rate),
("ic_hits", self.ic_hits as f64),
("ic_misses", self.ic_misses as f64),
("peak_bytes", self.peak_bytes as f64),
("retained_bytes", self.retained_bytes as f64),
("retained_objects", self.retained_objects as f64),
]
}
}