XPerf
语言Java

jvmperf 语料库目标

固定目标

大型树在此包中不被供应,也不会随仓库一起发布。将它们克隆到任何本地目录,并将该路径传递给代码检查工具。这些树没有记录提交版本;请在结果旁边标注你扫描时的修订版本。

export JAVA_HOME=/opt/java/jdk-21.0.12.1+1   # or any JDK 21+
cd packages/jvmperf/jvmperf-lint && ./gradlew jar
LINT=$PWD/bin/jvmperf-lint
$LINT --no-fail -f json -j 4 <path-to-clone>

检查器是 Java(jvmperf-lint)。这个工具包中没有 Python。

默认严重性遵循 Rule.java:错误 jp-string-concat-hot、jp-boxed-stream、jp-enum-key-hash-collection、jp-data-copy-hot、jp-baos-tobytearray-copy、jp-hot-payload-copy、jp-client-factory-recreate、jp-string-intern-hot(G4 JSONL);提示 jp-value-class-boxing、jp-android-sparse-array、jp-finalize、jp-hot-system-call、jp-bitmap-decode-no-reuse、jp-hot-post-lambda、jp-ui-text-append、jp-non-static-field-updater;其他所有规则均为关闭(可通过 --enable 选择)。

库存

<corpus-dir>/
  okhttp/ retrofit/ kotlinx-coroutines/ guava/ vertx/ fastjson2/
  jetty/          # sparse jetty-core
  netty/          # sparse buffer + common

不要将语料库来源提交到 packages/jvmperf。

克隆 + G3 (2026-10-22, 亚洲/上海) — r6

树范围after4 → r5 → r6
okhttp整体48 → 9 → 6 (jp-data-copy-hot)
retrofitwhole6 → 0 → 0
kotlinx.coroutines全部4 → 0 → 0
番石榴guava/src 仅30 → 3 → 1
vert.xwhole60 → 10 → 1
fastjson2whole49 → 12 → 8
Jetty精简的 jetty-core267 → 55 → 6
Netty稀疏 buffer + common24 → 8 → 4
Total (8 trees)488 → 97 → 26

G3 分诊: 本地运行;分诊记录不随同传送。

语料库准备好:是 — r6 n=26 完整:TP 50%,FP+DOC+SKIP 0%;在 jp-data-copy-hot/jp-hot-payload-copy/jp-finalize 上的真实 TP;每个默认 错误 都有 G4 (evidence/*.md+jsonl)。

反向优化

  • 路径:samples?/examples?/recipes?/demos?/snippets? → source_group=test(加上之前的基准/KMP 测试跳过)
  • 将几乎所有的 OK 习语 / 无 G4 热启发式降级为 关闭(例如 jp-unpresized-collection、jp-hot-heavy-alloc、jp-hot-format-log)
  • 保持测量的有效性主干为 错误(例如 jp-string-concat-hot、jp-data-copy-hot、jp-hot-payload-copy)