bench: 压测 IC 指标改差值读与对象计数同口径并推进版本

This commit is contained in:
2026-10-05 09:06:31 +00:00
parent eb70e972b2
commit ad5c0a747a
2 changed files with 10 additions and 4 deletions
+1 -1
View File
@@ -22,7 +22,7 @@ members = [
] ]
[workspace.package] [workspace.package]
version = "0.8.3" version = "0.8.4"
edition = "2021" edition = "2021"
license = "MIT" license = "MIT"
rust-version = "1.80" rust-version = "1.80"
+9 -3
View File
@@ -93,6 +93,8 @@ pub fn run_js_stress_bench(config: &BenchConfig, kernel: &Arc<KernelCore>, pool:
let pre_session = vm.session_object_count(); let pre_session = vm.session_object_count();
let pre_epoch = vm.epoch_object_count(); let pre_epoch = vm.epoch_object_count();
let pre_ic_hits = vm.ic_hit_count();
let pre_ic_misses = vm.ic_miss_count();
let exec_start = Instant::now(); let exec_start = Instant::now();
let _result = vm.run(&module); let _result = vm.run(&module);
@@ -109,9 +111,13 @@ pub fn run_js_stress_bench(config: &BenchConfig, kernel: &Arc<KernelCore>, pool:
let session_bytes = vm.session_bytes_allocated(); let session_bytes = vm.session_bytes_allocated();
let epoch_objects = vm.epoch_object_count().saturating_sub(pre_epoch); let epoch_objects = vm.epoch_object_count().saturating_sub(pre_epoch);
let instruction_count = vm.instruction_count(); let instruction_count = vm.instruction_count();
let ic_hit_rate = vm.ic_hit_rate(); let ic_hits = vm.ic_hit_count().saturating_sub(pre_ic_hits);
let ic_hits = vm.ic_hit_count(); let ic_misses = vm.ic_miss_count().saturating_sub(pre_ic_misses);
let ic_misses = vm.ic_miss_count(); let ic_hit_rate = if ic_hits + ic_misses == 0 {
0.0
} else {
ic_hits as f64 / (ic_hits + ic_misses) as f64
};
// 留存口径:强制完整 GC 清掉不可达垃圾后账目即留存堆。 // 留存口径:强制完整 GC 清掉不可达垃圾后账目即留存堆。
vm.collect_session_gc(); vm.collect_session_gc();