Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
Empty file added .benchmarks/changes-leak.json
Empty file.
1,244 changes: 1,244 additions & 0 deletions .benchmarks/changes-memory-1.json

Large diffs are not rendered by default.

1,241 changes: 1,241 additions & 0 deletions .benchmarks/changes-memory-2.json

Large diffs are not rendered by default.

1,241 changes: 1,241 additions & 0 deletions .benchmarks/changes-memory-3.json

Large diffs are not rendered by default.

1,234 changes: 1,234 additions & 0 deletions .benchmarks/changes-memory-4.json

Large diffs are not rendered by default.

1,252 changes: 1,252 additions & 0 deletions .benchmarks/changes-memory-5.json

Large diffs are not rendered by default.

910 changes: 910 additions & 0 deletions .benchmarks/changes-stress-1.json

Large diffs are not rendered by default.

943 changes: 943 additions & 0 deletions .benchmarks/changes-stress-2.json

Large diffs are not rendered by default.

940 changes: 940 additions & 0 deletions .benchmarks/changes-stress-3.json

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions .benchmarks/changes-stress-4.json

Large diffs are not rendered by default.

879 changes: 879 additions & 0 deletions .benchmarks/changes-stress-5.json

Large diffs are not rendered by default.

Empty file added .benchmarks/main-leak.json
Empty file.
1,326 changes: 1,326 additions & 0 deletions .benchmarks/main-memory-1.json

Large diffs are not rendered by default.

1,329 changes: 1,329 additions & 0 deletions .benchmarks/main-memory-2.json

Large diffs are not rendered by default.

1,330 changes: 1,330 additions & 0 deletions .benchmarks/main-memory-3.json

Large diffs are not rendered by default.

1,333 changes: 1,333 additions & 0 deletions .benchmarks/main-memory-4.json

Large diffs are not rendered by default.

1,324 changes: 1,324 additions & 0 deletions .benchmarks/main-memory-5.json

Large diffs are not rendered by default.

869 changes: 869 additions & 0 deletions .benchmarks/main-stress-1.json

Large diffs are not rendered by default.

930 changes: 930 additions & 0 deletions .benchmarks/main-stress-2.json

Large diffs are not rendered by default.

903 changes: 903 additions & 0 deletions .benchmarks/main-stress-3.json

Large diffs are not rendered by default.

931 changes: 931 additions & 0 deletions .benchmarks/main-stress-4.json

Large diffs are not rendered by default.

907 changes: 907 additions & 0 deletions .benchmarks/main-stress-5.json

Large diffs are not rendered by default.

1,359 changes: 1,359 additions & 0 deletions .benchmarks/memory-baseline.json

Large diffs are not rendered by default.

1,243 changes: 1,243 additions & 0 deletions .benchmarks/memory-postopt.json

Large diffs are not rendered by default.

1,278 changes: 1,278 additions & 0 deletions .benchmarks/memory-postopt2.json

Large diffs are not rendered by default.

1,278 changes: 1,278 additions & 0 deletions .benchmarks/memory-postopt3.json

Large diffs are not rendered by default.

955 changes: 955 additions & 0 deletions .benchmarks/stress-baseline.json

Large diffs are not rendered by default.

969 changes: 969 additions & 0 deletions .benchmarks/stress-postopt.json

Large diffs are not rendered by default.

7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,13 @@ __pycache__/
/artifacts
scripts/artifacts
tests/fixtures/temp_data
tests/fixtures/generated/
tests/temp/

# Benchmark outputs (generated JSONs); commit baseline JSONs explicitly if needed
.benchmarks/*-latest.json
.benchmarks/*-slow-latest.json
.benchmarks/.c2pa_modified.snapshot.py

# For the examples
/output
Expand Down
36 changes: 36 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,42 @@ test:
benchmark:
python3 -m pytest tests/benchmark.py -v

# Memory-profile benchmarks (peak traced, retained, RSS delta, alloc count)
benchmark-memory:
mkdir -p .benchmarks
python3 -m pytest tests/benchmark_memory.py -v --benchmark-only \
-m "not slow" \
--benchmark-json=.benchmarks/memory-latest.json

# Stress benchmarks (concurrency + scaling + leak detection); excludes slow tests
benchmark-stress:
mkdir -p .benchmarks
python3 -m pytest tests/benchmark_stress.py -v -p no:cacheprovider \
-m "not slow" \
--benchmark-json=.benchmarks/stress-latest.json

# Slow stress benchmarks (includes the 250MB fixture)
benchmark-stress-slow:
mkdir -p .benchmarks
python3 -m pytest tests/benchmark_stress.py -v -m slow \
-p no:cacheprovider \
--benchmark-json=.benchmarks/stress-slow-latest.json

# All non-slow benchmark suites
benchmark-all: benchmark benchmark-memory benchmark-stress

# Capture 5x main + 5x changes replicates of memory and stress suites
# and regenerate tests/BENCHMARK_RESULTS.md.
benchmark-compare:
mkdir -p .benchmarks
scripts/run_benchmark_comparison.sh

# Capture the leak suite (read + sign + mixed) once per side and append
# slope numbers into tests/BENCHMARK_RESULTS.md on next aggregation.
benchmark-compare-leak:
mkdir -p .benchmarks
scripts/run_benchmark_leak_comparison.sh

# Tests building and installing a local wheel package
# Downloads required artifacts, builds the wheel, installs it, and verifies the installation
test-local-wheel-build:
Expand Down
2 changes: 2 additions & 0 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ toml==0.10.2 # For reading pyproject.toml files
# Testing dependencies
pytest>=8.1.0
pytest-benchmark>=5.1.0
pytest-repeat>=0.9.3
psutil>=5.9.0

# for downloading the library artifacts
requests>=2.0.0
Expand Down
Loading
Loading