mirror of
https://github.com/pjh456/OxideJS.git
synced 2026-10-23 18:21:13 +08:00
test: 微基准补纯对象字面量循环用例并推进版本
This commit is contained in:
Generated
+18
-18
@@ -1095,7 +1095,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_builtins"
|
name = "oxide_builtins"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"fast-float",
|
"fast-float",
|
||||||
@@ -1120,7 +1120,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_bytecode"
|
name = "oxide_bytecode"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-bigint",
|
"num-bigint",
|
||||||
"oxide_log",
|
"oxide_log",
|
||||||
@@ -1128,7 +1128,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_cfg"
|
name = "oxide_cfg"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_emit",
|
"oxide_emit",
|
||||||
@@ -1139,7 +1139,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_cli"
|
name = "oxide_cli"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ansi_term",
|
"ansi_term",
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
@@ -1159,7 +1159,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_code_cache"
|
name = "oxide_code_cache"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"lru",
|
"lru",
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
@@ -1168,7 +1168,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_compiler"
|
name = "oxide_compiler"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_cfg",
|
"oxide_cfg",
|
||||||
@@ -1187,7 +1187,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_dce"
|
name = "oxide_dce"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_cfg",
|
"oxide_cfg",
|
||||||
@@ -1201,7 +1201,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_emit"
|
name = "oxide_emit"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-bigint",
|
"num-bigint",
|
||||||
"oxc_allocator",
|
"oxc_allocator",
|
||||||
@@ -1216,7 +1216,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_ir"
|
name = "oxide_ir"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_log",
|
"oxide_log",
|
||||||
@@ -1225,7 +1225,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_kernel"
|
name = "oxide_kernel"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"dashmap",
|
"dashmap",
|
||||||
@@ -1240,7 +1240,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_liveness"
|
name = "oxide_liveness"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_cfg",
|
"oxide_cfg",
|
||||||
@@ -1252,7 +1252,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_log"
|
name = "oxide_log"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"tracing",
|
"tracing",
|
||||||
"tracing-appender",
|
"tracing-appender",
|
||||||
@@ -1261,7 +1261,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_parser"
|
name = "oxide_parser"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxc_allocator",
|
"oxc_allocator",
|
||||||
"oxc_ast",
|
"oxc_ast",
|
||||||
@@ -1276,7 +1276,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_regalloc"
|
name = "oxide_regalloc"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_cfg",
|
"oxide_cfg",
|
||||||
@@ -1292,7 +1292,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_runtime_api"
|
name = "oxide_runtime_api"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"num-bigint",
|
"num-bigint",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
@@ -1304,7 +1304,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_test262"
|
name = "oxide_test262"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"oxide_bytecode",
|
"oxide_bytecode",
|
||||||
"oxide_compiler",
|
"oxide_compiler",
|
||||||
@@ -1321,7 +1321,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_types"
|
name = "oxide_types"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"hashbrown 0.14.5",
|
"hashbrown 0.14.5",
|
||||||
@@ -1333,7 +1333,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "oxide_vm"
|
name = "oxide_vm"
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"bumpalo",
|
"bumpalo",
|
||||||
"chrono",
|
"chrono",
|
||||||
|
|||||||
+1
-1
@@ -22,7 +22,7 @@ members = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.6.3"
|
version = "0.6.4"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
rust-version = "1.80"
|
rust-version = "1.80"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//! 毫秒级热路径微基准套件:方向性过滤器,不是门禁。
|
//! 毫秒级热路径微基准套件:方向性过滤器,不是门禁。
|
||||||
//!
|
//!
|
||||||
//! 十个 JS 循环用例加两个 intern 直调用例;JS 用例每用例 1 个预热 run 加 3 个测量
|
//! 十一个 JS 循环用例加两个 intern 直调用例;JS 用例每用例 1 个预热 run 加 3 个测量
|
||||||
//! run,每 run 均为同一模块的 `Vm::run`(新建 VM 共享同一 KernelCore,免每用例重建
|
//! run,每 run 均为同一模块的 `Vm::run`(新建 VM 共享同一 KernelCore,免每用例重建
|
||||||
//! builtin world),3 轮取中位;intern 用例为 Rust 直调,三轮各二万五千次取中位,
|
//! builtin world),3 轮取中位;intern 用例为 Rust 直调,三轮各二万五千次取中位,
|
||||||
//! 未命中用例每轮换新键(同一键第二轮起走命中快路径,中位即被命中成本污染)。
|
//! 未命中用例每轮换新键(同一键第二轮起走命中快路径,中位即被命中成本污染)。
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
//! 预热 run 的作用是分配器、代码缓存与表代际预热,不是 IC 预热。
|
//! 预热 run 的作用是分配器、代码缓存与表代际预热,不是 IC 预热。
|
||||||
//!
|
//!
|
||||||
//! 循环规模按「debug 全套件执行段 5 秒内」约束调参:debug 构建每指令税高(无内联、
|
//! 循环规模按「debug 全套件执行段 5 秒内」约束调参:debug 构建每指令税高(无内联、
|
||||||
//! 分派 match 开销主导),各用例单轮 30 至 130 毫秒,十二用例合计约 4.7 秒。
|
//! 分派 match 开销主导),各用例单轮 28 至 126 毫秒,十三用例合计约 4.8 秒。
|
||||||
//! 规模不是测量语义的一部分,方向判定只依赖相对变化,跨宿主对比绝对值无意义。
|
//! 规模不是测量语义的一部分,方向判定只依赖相对变化,跨宿主对比绝对值无意义。
|
||||||
//!
|
//!
|
||||||
//! 日常入口 `cargo test -p oxide_vm micro`(名称过滤);
|
//! 日常入口 `cargo test -p oxide_vm micro`(名称过滤);
|
||||||
@@ -235,6 +235,18 @@ fn micro_gc_churn() {
|
|||||||
measure_case("gc_churn", &churn_kernel(), &module, 500, 250_500.0, true);
|
measure_case("gc_churn", &churn_kernel(), &module, 500, 250_500.0, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// 纯对象字面量循环:两键字面量构造加属性读(gc_object 形态),覆盖对象构造
|
||||||
|
/// 热路径(静态键装载期预内部化、构造期直读侧表)与 GC churn。debug 实测每迭代
|
||||||
|
/// 约 77 微秒(端到端 gc_object 每迭代约 2.5 微秒的三十倍),按五秒预算取七百
|
||||||
|
/// 迭代(方向判定只依赖相对变化,规模不改变相对差)。
|
||||||
|
#[test]
|
||||||
|
fn micro_object_literal() {
|
||||||
|
let source = "var sum = 0; for (var i = 0; i < 700; i++) { \
|
||||||
|
var obj = { a: i, b: i * 2 }; sum += obj.a + obj.b; } sum";
|
||||||
|
let module = compile_module(source);
|
||||||
|
measure_case("object_literal", &shared_kernel(), &module, 700, 733_950.0, false);
|
||||||
|
}
|
||||||
|
|
||||||
// ── intern 直调用例(Rust 直调,分配成本微基准同款范式)──────────────────────
|
// ── intern 直调用例(Rust 直调,分配成本微基准同款范式)──────────────────────
|
||||||
|
|
||||||
/// intern 直调固定次数:五万次。十万次口径下全套件执行段超五秒预算,
|
/// intern 直调固定次数:五万次。十万次口径下全套件执行段超五秒预算,
|
||||||
|
|||||||
Reference in New Issue
Block a user