SuperAPI AI 工具集

performance-investigation

通用与其它

查看项目

更新于 10-16 00:20

技能介绍

该技能用于调查 Svelte 性能回归并寻找优化机会,属于仓库内的基准测试与性能分析工作流。

主要用途:比较不同分支的基准测试表现,定位性能退化最严重的用例,并借助 CPU 剖析定位运行时热点函数。

使用方式:从要测量的分支出发,运行 pnpm bench:compare main foo 进行对比;若只传一个分支,会自动与 main 比较。输出位置包括汇总报告 benchmarking/compare/.results/report.txt,原始基准数据 benchmarking/compare/.results/main.json 与对应分支 json,以及按基准、按分支生成的 CPU 剖析文件 benchmarking/compare/.profiles/ 下的 .cpuprofile 和 .md。其中 .md 是剖析摘要,通常查看热点最快。

建议流程:先打开 report.txt 找出最大回归项;对高差异基准,比较 main 与分支下对应基准的 .md 文件,关注 runtime.js、reactivity/batch.js、reactivity/deriveds.js、reactivity/sources.js 等内部实现的 self/inclusive 热点占比变化;每次只做一处优化,再重跑针对性基准,最后再跑完整对比。

快速基准循环:可用子串筛选运行部分响应式基准,例如 pnpm bench kairo_mux kairo_deep kairo_broad kairo_triangle 或 pnpm bench repeated_deps sbench_create_signals mol_owned。性能改动后建议运行 pnpm test runtime-runes,因为运行时响应式回归最可能出现在 runes 运行时测试中。

辅助脚本:node benchmarking/compare/profile-diff.mjs kairo_mux_owned main foo 可打印所选基准在两个分支间的前几名函数采样占比差异。

注意事项:bench:compare 运行时会切换分支,应避免未提交改动(或先 stash)以确保切换安全;每次运行都会重写 .results 与 .profiles 目录。关于支持平台、版本要求、收费等信息,资料暂未提供。