Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
e4896f2
fix(enterprise): export diff_schema and ContractViolation from freshd…
JohnnyWilson16 Jul 10, 2026
d3c35df
fix(examples): use suggest_plan for the contract-riding schema diff
JohnnyWilson16 Jul 10, 2026
45b81ec
fix(outliers): compute fences on the finite bulk so ±inf is detected,…
JohnnyWilson16 Jul 10, 2026
f724383
fix(cli): report missing input files in one line instead of a traceback
JohnnyWilson16 Jul 10, 2026
6f6c2fe
perf(outliers): only float dtypes are scanned for ±inf
JohnnyWilson16 Jul 10, 2026
21bec88
docs: design performance scalability investigation
JohnnyWilson16 Jul 11, 2026
f2b5600
docs: plan performance baseline and profiling
JohnnyWilson16 Jul 11, 2026
a7f4cea
docs: resolve performance plan preflight conflicts
JohnnyWilson16 Jul 11, 2026
ee4998b
bench: add deterministic scalability datasets
JohnnyWilson16 Jul 11, 2026
8d74441
bench: define performance result contract
JohnnyWilson16 Jul 11, 2026
18eb079
bench: harden performance result contract
JohnnyWilson16 Jul 11, 2026
ce0607b
bench: align factories with result schema
JohnnyWilson16 Jul 11, 2026
a866782
bench: measure isolated runtime and peak memory
JohnnyWilson16 Jul 11, 2026
3faff5c
test: harden isolated benchmark workers
JohnnyWilson16 Jul 11, 2026
7a03dda
bench: add configurable subprocess matrix runner
JohnnyWilson16 Jul 11, 2026
338c4c6
fix: contain benchmark result read failures
JohnnyWilson16 Jul 11, 2026
5742c48
bench: profile stages allocations and pandas operations
JohnnyWilson16 Jul 11, 2026
b74bd8b
fix: tighten performance profile instrumentation
JohnnyWilson16 Jul 12, 2026
7bcf975
fix: classify pandas corr profile stage
JohnnyWilson16 Jul 12, 2026
7ef5e79
bench: analyze and render scalability evidence
JohnnyWilson16 Jul 12, 2026
917bc29
bench: harden performance evidence identity
JohnnyWilson16 Jul 12, 2026
8092337
bench: require finite exact performance evidence
JohnnyWilson16 Jul 12, 2026
f2ea616
bench: integrate large performance investigation workflow
JohnnyWilson16 Jul 12, 2026
27ee7b6
chore: keep SDD reports local
JohnnyWilson16 Jul 12, 2026
2f92d20
fix: merge performance profile companions
JohnnyWilson16 Jul 13, 2026
0951d5f
docs: record FreshData performance baseline
JohnnyWilson16 Jul 13, 2026
da0728d
docs: design measured semantic optimization
JohnnyWilson16 Jul 13, 2026
f6bbb8e
docs: clarify semantic cache discovery
JohnnyWilson16 Jul 13, 2026
c35a074
docs: plan semantic performance optimization
JohnnyWilson16 Jul 13, 2026
0bae101
docs: clarify conditional semantic plan
JohnnyWilson16 Jul 13, 2026
e30b548
test: add semantic context repetition probe
JohnnyWilson16 Jul 13, 2026
306a01d
fix: exercise semantic probe parse boolean call site
JohnnyWilson16 Jul 13, 2026
0317f73
docs: record semantic discovery decision
JohnnyWilson16 Jul 13, 2026
b5d154a
fix: validate performance analysis record fields
JohnnyWilson16 Jul 13, 2026
d4f4ead
docs: publish semantic optimization outcome
JohnnyWilson16 Jul 13, 2026
81bed0e
docs: clarify MkDocs navigation notices
JohnnyWilson16 Jul 13, 2026
9a04079
Merge origin/main and resolve PR conflicts
JohnnyWilson16 Jul 13, 2026
2679f5a
fix CI compatibility for numeric parsing
JohnnyWilson16 Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .github/workflows/performance-large.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Large performance investigation

on:
workflow_dispatch:
schedule:
- cron: "0 4 * * 0"

permissions:
contents: read

jobs:
performance-large:
runs-on: ubuntu-latest
timeout-minutes: 180
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Install benchmark dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev,bench,ml]"

- name: Run large performance matrix
id: benchmark
continue-on-error: true
run: >-
python -m benchmarks.performance run
--rows 100000,500000,1000000
--widths narrow,medium,wide
--configs default,conservative,representation_off,statistical_off,explicit
--report-modes false,true
--warmups 1
--repetitions 5
--timeout 1800
--output benchmarks/results/performance/large

- name: Analyze all completed and failed cases
id: analyze
if: always()
continue-on-error: true
run: >-
python -m benchmarks.performance analyze
--input benchmarks/results/performance/large
--output benchmarks/results/performance/large-summary.json

- name: Render compact report
id: render
if: always()
continue-on-error: true
run: >-
python -m benchmarks.performance render
--input benchmarks/results/performance/large-summary.json
--output benchmarks/results/performance/large-report.md

- name: Upload performance evidence
id: upload
if: always()
uses: actions/upload-artifact@v4
with:
name: performance-large-${{ github.run_id }}
path: benchmarks/results/performance/
if-no-files-found: error

- name: Preserve failure status after evidence upload
if: >-
always() &&
(steps.benchmark.outcome != 'success' ||
steps.analyze.outcome != 'success' ||
steps.render.outcome != 'success' ||
steps.upload.outcome != 'success')
run: exit 1
8 changes: 6 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,12 @@ src/freshdata/benchmarks/results/
/tmp/freshdata_bench/
/tmp/freshdata_spill/

# Benchmark Release harness: runtime results and generated fixture files
benchmarks/results/
# Benchmark runtime results: raw case files stay local; compact evidence is committed.
benchmarks/results/*
!benchmarks/results/performance/
benchmarks/results/performance/*
!benchmarks/results/performance/*-summary.json
!benchmarks/results/performance/*-report.md
benchmarks/generated_fixtures/

# Rust native backend build output
Expand Down
20 changes: 19 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ PY ?= python
# training-* targets are matched by the pattern rule below (pattern rules
# cannot be .PHONY; the delegated targets are .PHONY inside training/Makefile).
.PHONY: help benchmark benchmark-ci benchmark-report benchmark-fixtures benchmark-test \
cleanbench-full
cleanbench-full performance-ci performance-baseline performance-profile \
performance-report

help:
@echo "Targets:"
Expand All @@ -15,6 +16,10 @@ help:
@echo " benchmark-fixtures Write fixture CSVs to benchmarks/generated_fixtures/"
@echo " benchmark-test Run the benchmark test suite"
@echo " cleanbench-full Full CleanBench T1-T5 with release gates + site report"
@echo " performance-ci Run the CI-safe performance contract suite"
@echo " performance-baseline Run the performance investigation matrix"
@echo " performance-profile Profile one 100k-row performance case"
@echo " performance-report Analyze and render compact performance evidence"
@echo " training-* Phase-5 training pipeline (see training/Makefile)"

# Full release-gating CleanBench run.
Expand Down Expand Up @@ -45,3 +50,16 @@ benchmark-test:
# --no-cov: the benchmark suite exercises only a slice of freshdata, so it
# must not be measured against the package-wide --cov-fail-under gate.
$(PY) -m pytest tests/benchmark -q --no-cov

performance-ci:
$(PY) -m pytest tests/performance -q --no-cov

performance-baseline:
$(PY) -m benchmarks.performance run --output benchmarks/results/performance/baseline

performance-profile:
$(PY) -m benchmarks.performance profile --rows 100000 --widths medium --configs default --report-modes true --output benchmarks/results/performance/baseline

performance-report:
$(PY) -m benchmarks.performance analyze --input benchmarks/results/performance/baseline --output benchmarks/results/performance/baseline-summary.json
$(PY) -m benchmarks.performance render --input benchmarks/results/performance/baseline-summary.json --output benchmarks/results/performance/baseline-report.md
3 changes: 3 additions & 0 deletions benchmarks/performance/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .datasets import DATASET_TYPES, WIDTHS, DatasetSpec, make_mixed_frame

__all__ = ["DATASET_TYPES", "DatasetSpec", "WIDTHS", "make_mixed_frame"]
3 changes: 3 additions & 0 deletions benchmarks/performance/__main__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from .cli import main

raise SystemExit(main())
Loading
Loading