Commit Graph

13 Commits

Author SHA1 Message Date
pjh123 75525cbeef fix: 简化显示纯耗时, 修复 pipefail/BOA源/JerryScript编译/录入值
- 输出移除 X.Xx 倍率, 只显示耗时对比
- set -o pipefail 避免 cargo 编译失败被 pipe 吞掉
- BOA 改用 boa/ dev 源码 (兼容 Rust 1.96+)
- build.sh 修复 IFS='|' 分隔, 解决多词参数被拆碎
- 加入 pkg-config/cmake/nodejs 依赖, 支持 BOA/JerryScript/V8
- test262 各引擎全部改为录入值, 仅 OxideJS 现场跑

(cherry picked from commit d64c6577e768195687b182a3ccb6ef36d318e905)
2026-06-30 12:42:57 +08:00
pjh123 45a70ddf00 fix: build.sh 安装 OpenSSL dev + cmake 依赖
- map_pkgs: 所有发行版加入 pkg-config + cmake
- 新增 install_openssl_dev: 各平台装 libssl-dev
- BOA 构建前调用 install_openssl_dev

(cherry picked from commit 2be7c7dd22bdcba8c8cec299645de1c522b90d7a)
2026-06-30 12:42:57 +08:00
pjh123 0ae3d2cb9d feat: 多引擎对比 — QuickJS/BOA/JerryScript/V8(node)/Hermes
- 新增 Engine 类抽象: 统一 run_script/run_file/run_test262 接口
- bench_timing/bench_stress: 循环对比所有可用引擎, 缺失自动 N/A
- bench_test262: OxideJS 实测 + 各引擎已知通过率
- V8(node)/Hermes 主流平台可选, 嵌入式自动跳过
- build.sh: 新增 build_boa() / build_jerryscript() 编译

(cherry picked from commit 708f0f32dc8dbf5ebc129b9dcd863e342412dc3c)
2026-06-30 12:42:57 +08:00
pjh123 da75f3a214 perf: 字符串拼接用 push_to_string 消去中间分配, GC阈值 8M→32M
- oxide_runtime_api 新增 push_to_string: 直接将 JsValue 写入 String buffer
- dispatch_add / dispatch_compound_add 复用 Vm::string_buf, 每次concat从4次分配降到1次
- vm_support 新增 new_string_owned 接受 String 转移所有权
- kernel session_gc_threshold 8MB→32MB 减少频繁 GC
- build.sh: make clean 清跨平台 .obj 残留

(cherry picked from commit ad7b044a5a24b23819d783c5419d3e33f936dfc5)
2026-06-30 12:42:57 +08:00
pjh123 ba7b9b9182 fix: build.sh 不再吞 QuickJS 编译错误
- 移除 make 后面的 || true,编译失败会正确报错退出
- 移除 grep 过滤,完整打印编译输出方便排查链接问题
- 编译失败时返回 1 终止构建

(cherry picked from commit 0c77246586a21190f392ab964cc29bdf58ca9128)
2026-06-30 12:42:57 +08:00
pjh123 295a7050d4 fix: QuickJS 缺失时显示 N/A 而非 infms
- bench_timing(): 前置检测 QUICKJS_EXE 是否存在,不存在则跳过 QuickJS 测试
- bench_stress(): 同样前置检测,显示 N/A 而非 inf/0.0

(cherry picked from commit fb64cbe297d03de13f1920bf339a87d8ad643ca1)
2026-06-30 12:42:57 +08:00
pjh123 32da4b13df fix: 修复 run_benchmark.py 第157行字符串缺闭合引号
导致 SyntaxError: unterminated string literal

(cherry picked from commit 3ce72e5c023dd7a607fbe6eb64b9181d334e7dc3)
2026-06-30 12:42:57 +08:00
pjh123 d44c8f1f29 fix: 修复 QuickJS test262 缺失 esnext/harness 文件导致跑失败
- 问题: QuickJS run-test262 要求 test262/harness/testBigIntTypedArray.js,但该文件实际在 test/esnext/harness/ 下
- 修复: bench_test262_qjs() 在跑 run-test262 前,自动把 tests/test262/test/esnext/harness/*.js 链接/拷贝到 baseline-quickjs/test262/harness/
- 影响: QuickJS baseline 跑完整个 test262 suite,不再中途挂死

(cherry picked from commit 0660614b95974bef3af2fb598a6e79ab1515b2ff)
2026-06-30 12:42:57 +08:00
pjh123 ec1fb65fd6 fix: 基准脚本移除失效 --results-file 参数、重排测试步骤 1-6 并加调试输出 2026-06-30 12:42:57 +08:00
pjh123 fdfbceb281 fix: 基准脚本 QuickJS 二进制/配置路径固定源码根目录 2026-06-30 12:42:57 +08:00
pjh123 63c44b1ac5 fix: 对照引擎 test262 结果为空时基准计分防除零 2026-06-30 12:42:57 +08:00
pjh123 42277b9206 test: 新增 benchmark 套件(test262 全量 + stress + 计时)
- build.sh:自动识别包管理器、装依赖、构建引擎与对照引擎
- run_benchmark.py:test262 全量 --no-skip、stress 基准、计时
- fetch_test262.sh:下载 test262 测试集
- README.md:用法说明
2026-06-30 12:42:57 +08:00
pjh123 a986288766 docs: 设计方案文档对齐当前架构 + 补充 benchmark 与未来计划
- 1.3 / 1.4 / 2.5 / 3.4 / 3.7 章节同步至 KernelCore + KernelSession 拆分、PermInterner 替换 StringForge、Epoch Arena + JsString GC 双轨制
- 第 4 章 Benchmark 嵌入四引擎多会话耗时 / 内存折线图 + 双平台单条 JS / 压测柱状图 (6 张 PNG, 鲲鹏 920 vs Intel 8259CL)
- 4.2.5 新增四引擎综合得分表 (OxideJS 61 / QuickJS 80 / BOA 69 / V8 53)
- 5.1 / 5.2 补充研发过程的两个重大问题: counter/emitter 漂移修复路径 + test262 --supervise 鲁棒性
- 第 6 章 AI 使用情况说明; 第 7 章未来计划四点
- 同步生成 PDF (设计方案文档.pdf, 8 页, Chrome headless 渲染)
2026-06-30 12:16:09 +08:00