mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-27 12:11:12 +08:00
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:
@@ -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),
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user