perf: 标准预设 min_pool_size 降档至 1 消除单 VM CLI 启动回归

This commit is contained in:
2026-09-28 19:19:23 +00:00
parent 2b565a4996
commit 30aabef29a
2 changed files with 8 additions and 7 deletions
+6 -5
View File
@@ -744,14 +744,15 @@ pub fn run_mem_kernel_lifetime() -> ExitCode {
/// 进程级启动五段分解度量:专用 kernel(`KernelConfig::minimal()`,同
/// `kernel_lifetime` 口径,不污染 bench 共享 kernel),每轮重建 kernel 与池
/// 模拟新进程,连测五段——① `KernelCore::new`(kernel 初始化)②
/// `VmPool::new`(池构造)③ 首次 `pool.spawn()`(首个 Vm 构造)④ 固定微源
/// `VmPool::new`(池构造,含同步预热 min_size 个 Vm)③ 首次 `pool.spawn()`
///(首次 spawn,命中预热池近零成本)④ 固定微源
/// `oxide_parser::parse` 加 `Compiler::new().compile`(parse 加 compile)⑤
/// 首次 `vm.run`(执行),打印各段毫秒加合计,三轮取中位。
///
/// # 边界与前提
/// - 启动是单次事件非序列,不进 `report_series` 泄漏判据;
/// - “首个 Vm 构造”段可与 `builtin_world_build` 用例的每 Vm 构造成本锚对照
/// (同 debug 口径);偏差大先查 harness 污染再疑用例。
/// - 池构造段含 min_size 个 Vm 的预热成本,可与 `builtin_world_build` 用例
/// 的每 Vm 构造成本锚对照(同 debug 口径);偏差大先查 harness 污染再疑用例。
///
/// # 副作用
/// - 不改引擎执行路径;每轮 kernel 与池在轮末 drop,无跨轮状态。
@@ -767,11 +768,11 @@ pub fn run_mem_startup_breakdown() -> ExitCode {
let kernel = KernelCore::new(config.clone());
let t1 = Instant::now();
// 池构造:空池,min_size 参数当前仅作预留不预热。
// 池构造:同步预热 min_size 个 Vm,预热成本计入本段。
let pool = VmPool::new(Arc::clone(&kernel), config.min_pool_size, config.max_pool_size);
let t2 = Instant::now();
// 首个 Vm 构造:池空,spawn 走 grow 分支全量构造。
// 首次 spawn:命中预热池,近零成本。
let mut guard = pool.spawn();
let t3 = Instant::now();
+2 -2
View File
@@ -44,10 +44,10 @@ impl KernelConfig {
}
}
/// 标准配置:默认 VM 池大小。
/// 标准配置:默认 VM 池大小,池构造时同步预热 min_pool_size 个 Vm。
pub fn standard() -> Self {
Self {
min_pool_size: 8,
min_pool_size: 1,
max_pool_size: Some(32),
perm_interner_max_entries: None,
max_steps: None,