Skip to main content

render-bench

Run RaTeX rendering performance benchmarks (100-formula PNG/SVG/PDF, cold-vs-hot font cache timing, phase breakdown). Use when profiling render performance or comparing before/after optimization changes.

来源信息

仓库
erweixin/RaTeX
最近来源活动
2026年7月25日 18:45
检测到的 SKILL.md 语言
英语
星标
1,524
分支
77

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
render-bench
description
Run RaTeX rendering performance benchmarks (100-formula PNG/SVG/PDF, cold-vs-hot font cache timing, phase breakdown). Use when profiling render performance or comparing before/after optimization changes.
# Render performance benchmarks ## Prerequisites - Rust toolchain with `--release`. - KaTeX TTFs in `fonts/` (committed in-repo; 20 `.ttf` files). - (Optional) CJK/emoji system fonts for the full CJK/emoji categories. ## Commands ### 1. Full 100-formula benchmark ```bash cargo test -p ratex-render --test bench_render --release -- --ignored --nocapture ``` Renders 100 formulas across 6 categories (math, complex, matrix, cjk, emoji, chem) in PNG, SVG, SVG-standalone, and PDF. Prints per-category averages and overall throughput (formulas/sec). Warmup: 1 iteration per formula. Measurement: 3 iterations, averaged. ### 2. Font cache cold vs hot timing ```bash cargo test -p ratex-render --test font_cache_timing --release -- --ignored --nocapture ``` Measures 3 formulas: first pass (cold — disk I/O for font loading), second pass (hot — `OnceLock` cache hits). Reports speedup ratio. ### 3. Render phase breakdown ```bash cargo test -p ratex-render --test phase_breakdown --release -- --ignored --nocapture ``` Per-formula breakdown: parse+layout vs render phase timing. 6 formulas including CJK and emoji cases. Warmup: 3 iterations, Measurement: 10 iterations, averaged. ### 4. Compare before/after (quick diff) Useful when optimizing a specific path: ```bash # Before (on main) cargo test -p ratex-render --test phase_breakdown --release -- --ignored --nocapture 2>&1 | tee /tmp/before.txt # After (on branch) cargo test -p ratex-render --test phase_breakdown --release -- --ignored --nocapture 2>&1 | tee /tmp/after.txt # Diff the tables diff /tmp/before.txt /tmp/after.txt ``` ## Quick checklist 1. Run `cargo test -p ratex-render --test bench_render --release -- --ignored --nocapture` for the full picture. 2. For quick iteration, use `phase_breakdown` (faster, 6 formulas). 3. For font-loading specific changes, use `font_cache_timing`. 4. Always use `--release` — debug builds are 10-50× slower and meaningless for perf comparison.
在 GitHub 查看