Skip to content

Repository files navigation

TeaQL Runtime Benchmark

TeaQL runtime 的公开、可复现性能与极限测试工程。

本仓库衡量 runtime 的查询、关系装配、mutation、schema、跨数据源及其他运行时路径。Agent Kit、代码生成过程和 Harness Engineering 本身的 benchmark 不放在这里,避免把运行时性能与 Agent 工作质量混成一个指标。

TeaQL Runtime 是执行 TeaQL 生成领域 API 与共同运行时契约的、可重用且领域无关的运行时平台。目前它面向 Java、Rust、TypeScript、Swift、Python、.NET 和 Go 提供七种实现。本仓库测量的是这个跨语言平台及其具体语言实现,而不是某一个生成业务项目。

Language Runtime repository
Java teaql/teaql-java
Rust teaql/teaql-rs
TypeScript teaql/teaql-ts
Swift teaql/teaql-swift
Python teaql/teaql-python
.NET teaql/teaql-dotnet
Go teaql/teaql-golang

本仓库只接受能够重复运行、能够校验结果正确性、能够保留原始证据的 benchmark。任何硬编码结果、伪造缓存、只运行一次的计时或用手写 SQL 冒充 TeaQL 的测试,都不能进入正式结果。

Benchmark catalog

ID Benchmark Status Evidence
B001 Rust ORM relationship loading on MusicBrainz: TeaQL vs Diesel vs SeaORM Published historical run; numbers auditable, exact source rerun blocked Fixed dataset setup, raw output, correctness gates, model and all three implementations; retained generated/runtime revision mismatch documented

编号是稳定标识,不随语言、日期或后续复测改变。每次复测作为新的 evidence run 追加,不能覆盖历史结果。

当前状态

第一条可执行基线使用 NYC TLC Trip Record Data

  • 数据源:2024 年 1 月 Yellow Taxi Parquet;
  • 数据库:PostgreSQL 17;
  • 基线:同一连接上的参数化 raw SQL;
  • 指标:吞吐量、p50/p95/p99、最小/最大延迟、错误数;
  • 门禁:加载后先验证行数、时间范围和关键字段,再允许运行性能测试。

Stack Exchange Data Dump 将作为关系加载、N+1、深层投影与分页赛道。确定性合成数据只用于寻找极限,不冒充公开数据集。

快速开始

./scripts/bootstrap.sh
./scripts/fetch-dataset.sh nyc-yellow-2024-01
./scripts/load-nyc.sh nyc-yellow-2024-01
./scripts/run-baseline.sh
./scripts/run-java.sh

run-java.sh 会使用同一 JVM、同一 PostgreSQL JDBC 驱动和同一连接池,依次运行原生 JDBC 与真实生成的 TeaQL Java Q API。计时前会比较 Q01/Q02 的规范化 ID 列表;不一致时立即失败。

默认 10 秒预热、30 秒测量只用于验证 harness。可通过环境变量调整;正式候选结果要求每项至少测量 120 秒并重复 5 轮:

BENCHMARK_WARMUP_SECONDS=30 BENCHMARK_MEASURE_SECONDS=120 ./scripts/run-java.sh

五轮正式候选测试使用:

./scripts/run-formal-java.sh

该脚本会保存每轮日志与环境证据,并在主机初始负载过高时拒绝运行。覆盖负载门禁只能用于已经记录环境例外的诊断,不应直接发布为正式结果。

当前 Java 覆盖 Q01 主键读取和 Q02 时间范围分页。Q03 聚合尚未接入 TeaQL,不会用手写 SQL 冒充框架结果。原始 JSON 写入 results/,默认不提交。

第一次下载会把实际 SHA-256 写入 .benchmark/datasets.lock.json。正式发布结果前,必须把确认过的校验和固化到 datasets/manifest.json

详细规则见 docs/METHODOLOGY.md。 深度分页、缓存计数、每个 Vendor 最近十条 Trip 和受治理动态检索的评估协议见 docs/QUERY_CAPABILITY_EVALUATION.md

仓库边界

  • datasets/:公开数据源清单、schema 和正确性校验。
  • workloads/:与实现无关的场景和参数。
  • implementations/raw-postgres/:数据库能力下界。
  • implementations/teaql-*:各语言 TeaQL 的真实实现。
  • tools/:下载、装载、执行和环境采集。
  • results/:经审核后发布的结果;本地原始结果默认忽略。

About

Reproducible, correctness-gated benchmarks for TeaQL runtimes and mainstream framework comparisons

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages