with one click
jmh-bench
该skill没有执行文件,为操作指引:运行JMH基准测试的标准流程
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
该skill没有执行文件,为操作指引:运行JMH基准测试的标准流程
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
AI记忆持久化系统。使用memrec存储、检索、管理跨会话记忆。支持项目隔离、混合检索(KNN+BM25)、MMR重排、中文搜索。触发场景:(1)重要决策需记录,(2)关键知识需保存,(3)项目上下文需跨会话保持,(4)用户偏好需记忆,(5)检索历史知识辅助当前任务。
Rust 性能分析技能:通过 cargo flamegraph 生成火焰图(SVG),定位 CPU 热点函数并量化占比。适用于 Rust 项目性能瓶颈定位、热点分析、优化验证。触发场景:(1)分析 Rust 代码性能瓶颈,(2)定位 CPU 热点函数,(3)量化函数调用占比,(4)优化前后对比验证,(5)bench/unittest 性能不达预期时根因分析。
读取所有源代码,解构为设计图、设计文档、数据库设计; 没有执行文件,请按流程执行
项目问题侦测技能:综合分析设计、性能、安全问题,评分并提出重构或重建方案
局部代码修改技能:最小化修改完成功能,确保无蝴蝶效应,支持独立测试验证和全量关联检查
该skill没有执行文件,为操作指引:如何重构
| name | jmh-bench |
| description | 该skill没有执行文件,为操作指引:运行JMH基准测试的标准流程 |
执行 skill /java-env 获取 Java 开发环境信息:
skill java-env
确认:
在项目中添加 JMH 依赖:
<dependencies>
<!-- JMH Core -->
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-core</artifactId>
<version>1.37</version>
</dependency>
<!-- JMH Annotations -->
<dependency>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.37</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<!-- 编译插件,确保 annotation processor 生效 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.11.0</version>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.openjdk.jmh</groupId>
<artifactId>jmh-generator-annprocess</artifactId>
<version>1.37</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
# 编译项目
mvn clean compile -q
# 运行全部基准测试
mvn exec:exec -Dexec.executable="java" \
-Dexec.args="-cp %classpath org.openjdk.jmh.Main" -q
# 运行指定基准测试类
mvn exec:exec -Dexec.executable="java" \
-Dexec.args="-cp %classpath org.openjdk.jmh.Main BenchmarkClassName" -q
# 运行指定基准测试(带参数)
mvn exec:exec -Dexec.executable="java" \
-Dexec.args="-cp %classpath org.openjdk.jmh.Main BenchmarkClassName -wi 3 -i 3 -t 1 -f 1" -q
参数说明:
-wi N: Warmup 迭代次数-i N: Measurement 迭代次数-t N: 线程数-f N: Fork 次数创建脚本 run_bench.sh:
#!/bin/bash
# Run JMH benchmark
# Usage: ./run_bench.sh [BenchmarkClass] [jmh_args...]
PROJECT_DIR=$(dirname "$0")
cd "$PROJECT_DIR"
BENCHMARK_CLASS="${1:-}"
JMH_ARGS="${2:-}"
# Build classpath
CLASSPATH="target/classes:target/test-classes:$(mvn dependency:build-classpath -Dmdep.outputFile=/dev/stdout -q)"
# Run JMH
if [ -n "$BENCHMARK_CLASS" ]; then
java -cp "$CLASSPATH" org.openjdk.jmh.Main "$BENCHMARK_CLASS" $JMH_ARGS
else
java -cp "$CLASSPATH" org.openjdk.jmh.Main
fi
使用方式:
chmod +x run_bench.sh
# 运行全部
./run_bench.sh
# 运行指定类
./run_bench.sh MyBenchmark
# 运行指定类带参数
./run_bench.sh MyBenchmark "-wi 5 -i 5"
| 场景 | 命令 |
|---|---|
| 快速验证 | -wi 3 -i 3 -t 1 -f 1 |
| 标准测试 | -wi 5 -i 5 -t 4 -f 2 |
| 精确测试 | -wi 10 -i 10 -t 1 -f 3 |
| 列出所有Benchmark | -l |
典型输出示例:
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 5 123456.789 ± 5000 ops/s
指标说明:
thrpt: Throughput 吞吐量(ops/s)avgt: Average Time 平均耗时(us/op)sample: Sampling 时间采样Score: 平均值Error: 置信区间误差(99.9%)System.gc()bh.consume(result)@State(Scope.Thread) 避免线程竞争-t 1 消除并发因素