一键导入
performance-doctor
Tauri 性能诊断技能,覆盖 Rust 编译优化、前端性能和应用体积优化。 触发场景: - 应用启动慢或运行卡顿 - 需要优化 Rust 编译时间 - 需要减小安装包体积 - 需要分析前端渲染性能 触发词:性能、优化、慢、卡顿、编译时间、体积、内存、CPU、profiling、启动速度
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Tauri 性能诊断技能,覆盖 Rust 编译优化、前端性能和应用体积优化。 触发场景: - 应用启动慢或运行卡顿 - 需要优化 Rust 编译时间 - 需要减小安装包体积 - 需要分析前端渲染性能 触发词:性能、优化、慢、卡顿、编译时间、体积、内存、CPU、profiling、启动速度
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
发布 Tauri 桌面应用新版本,处理版本号同步、Git tag、GitHub Actions 构建、Release 仓库产物同步、Cloudflare R2 上传、update.json 生成、自动更新发布和文档站重建。 触发场景: - 需要发布新版本或 release - 需要打 tag、推送发布分支或触发 CI 构建 - 需要生成或更新 update.json - 需要处理 Tauri updater 签名产物 - 需要同步 R2 CDN、GitHub/Gitee release 仓库或发布安装包 触发词:发布、release、版本发布、推送、打Tag、update.json、签名构建、安装包、自动更新、R2、CDN
Git 工作流与版本管理技能,规范分支策略、提交信息和发布流程。 触发场景: - 用户需要创建分支或合并代码 - 用户需要规范提交信息格式 - 用户需要管理版本发布流程 触发词:Git、分支、提交、合并、版本发布
自主连续开发方法论(Codex 版)。把一个项目按「每轮一个最小可提交单元」的方式推进到完成: 每轮读真相源 → 选下一个未做项 → 做一个最小单元 → 过验证门 → 记录勾选 → 最小提交 → 报进度。 适用于"按需求/台账建功能、还原原型、修一批 bug、补测试、重构、迁移、清理"等需要反复同构推进的任务。 与 Claude Code 的关系:Claude Code 有内置 `/loop` 自动续期(`/loop /dev-loop`),Codex 没有—— 所以 Codex 端由你(或脚本 / cron)反复触发"继续下一轮",方法论本身一致。 触发场景: - 想让 Codex 把某个项目/某个意图"一轮轮推进到完成" - 还原原型图、修一批 warning、补单测、重构模块等同构重复任务 - 需要"每步可编译、可回退、可恢复"的稳健推进方式 触发词:自主开发、连续开发、循环开发、一轮一提交、还原原型、批量修复、autonomous dev、continuous dev
Tauri 打包与分发技能,指导桌面端(Windows/macOS/Linux)与移动端(Android/iOS)的构建、签名和分发。 触发场景: - 需要构建生产安装包(exe/dmg/deb/apk/aab/ipa) - 需要配置各平台打包参数 - 需要代码签名(Windows 证书 / Android keystore / iOS 描述文件) - 需要减小安装包体积 - 需要设置应用图标和元数据 - 需要打包 Android / iOS App 触发词: 打包、构建、build、发布、安装包、exe、dmg、deb、apk、aab、ipa、签名、分发、release、android build、ios build、移动端打包
排查已发生的问题、定位 Bug 原因。 触发场景: - 代码运行报错,需要定位原因 - 功能不正常,需要排查 - Tauri Command 返回错误,需要分析 - 日志分析、调试代码 触发词:Bug、报错、不工作、调试、排查、为什么、出问题、失败、不生效、无效、找不到原因、定位问题
| name | performance-doctor |
| description | Tauri 性能诊断技能,覆盖 Rust 编译优化、前端性能和应用体积优化。 触发场景: - 应用启动慢或运行卡顿 - 需要优化 Rust 编译时间 - 需要减小安装包体积 - 需要分析前端渲染性能 触发词:性能、优化、慢、卡顿、编译时间、体积、内存、CPU、profiling、启动速度 |
| 维度 | 典型问题 | 工具 |
|---|---|---|
| Rust 编译时间 | 首次编译 5-15 分钟 | cargo build --timings |
| 应用启动速度 | 窗口打开慢 | Tauri DevTools |
| 前端渲染 | UI 卡顿/不流畅 | Chrome DevTools Performance |
| 内存使用 | 内存持续增长 | 任务管理器 / Chrome DevTools Memory |
| 安装包体积 | 包太大 | cargo bloat / Vite 分析 |
# src-tauri/Cargo.toml
# 开发模式优化(减少编译时间)
[profile.dev]
opt-level = 0 # 不优化(编译最快)
incremental = true # 增量编译
# 仅优化依赖(不优化本地代码,加快重编译)
[profile.dev.package."*"]
opt-level = 2
# 发布模式优化(最小体积 + 最佳性能)
[profile.release]
opt-level = "z" # 最小体积
lto = true # 链接时优化
codegen-units = 1 # 单代码生成单元
strip = true # 剥离调试信息
panic = "abort" # panic 时直接 abort
# .cargo/config.toml(项目级)
[build]
# 使用 mold 链接器(Linux)
# rustflags = ["-C", "link-arg=-fuse-ld=mold"]
# 使用 lld 链接器(Windows)
# rustflags = ["-C", "link-arg=-fuse-ld=lld"]
// 1. useMemo 缓存计算
const filteredItems = useMemo(() =>
items.filter(item => item.name.includes(search)),
[items, search]
);
// 2. useCallback 缓存回调
const handleClick = useCallback((id: number) => {
invoke("delete_item", { id });
}, []);
// 3. React.memo 避免不必要的重渲染
const ListItem = React.memo(({ item }: { item: Item }) => (
<div>{item.name}</div>
));
// 4. 虚拟列表(大量数据)
// pnpm add @tanstack/react-virtual
import { useVirtualizer } from "@tanstack/react-virtual";
// vite.config.ts
export default defineConfig({
build: {
minify: "terser",
terserOptions: {
compress: { drop_console: true },
},
rollupOptions: {
output: {
manualChunks: {
vendor: ["react", "react-dom"],
},
},
},
},
});
# Rust 依赖体积
cargo install cargo-bloat
cd src-tauri && cargo bloat --release
# 前端依赖体积
pnpm add -D rollup-plugin-visualizer
| 策略 | 效果 | 方法 |
|---|---|---|
| Rust LTO + strip | -30~50% | Cargo.toml profile.release |
| 前端 tree-shaking | -10~20% | Vite 自动处理 |
| 移除 console.log | -1~5% | terser drop_console |
| 压缩图标 | -1~3% | 使用优化后的 PNG/ICO |
| UPX 压缩 | -30~50% | upx --best target/release/app |
| 错误做法 | 正确做法 |
|---|---|
| 不配置 release profile | 添加 LTO + strip + opt-level |
| 同步 Command 做耗时操作 | 使用 async Command 或 tokio::spawn |
| 大列表不用虚拟化 | 100+ 项使用 @tanstack/react-virtual |
| 不分析打包体积 | 使用 cargo bloat + Vite 分析器 |
| 每次 invoke 都建新连接 | 复用 State 中的数据库连接 |