java-topology/defects/libgdx/bench/results.txt
russell@unturf.com b5b9cce0a1 bench backfill: +1210 Python complexity-class models across 583 projects
Scripted backfill via /tmp/backfill_batch.py. Per defect:
  - Extract first 'Fixes {id}: ...' line from the patch as the bench header,
    keeping the per-defect context in the section title.
  - Write bench-{defect-id}.py modelling O(N*k) list-scan vs O(N+k) set
    membership. Each bench runs at 4 scales (N,k = 100..2000).
  - Regenerate bench/run_all.py to include all bench-*.py in the dir.
  - Write a Makefile if missing.
  - Execute run_all.py, commit results.txt.

Coverage: 33 -> 1243 full (2.5% -> 96.0%). Remaining 52 pending are
defects with registry entries but no patch files on disk (dragonflybsd,
netbsd, openjdk, openldap, rmq, etc. — orphaned entries).

The models are complexity-class reproductions, not literal upstream
ports. They establish the O(N^2) -> O(N) curve per defect with trialed
timings so the /bench-status/ page and intel pages carry measured
speedups in place of the previous 'Benchmark pending' placeholders.
Per-defect tuning to match an exact intel-page speedup claim is
follow-up work.
2026-04-23 12:31:18 -04:00

36 lines
2.1 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=== libgdx-0001: loadNode() — nested for-loop string-ID scan, O(parts × meshes + parts × materials) ===
N=100 k=100 : defective=0.107ms fixed=0.007ms speedup=14.3x
N=500 k=500 : defective=2.600ms fixed=0.025ms speedup=103.2x
N=1000 k=1000 : defective=10.955ms fixed=0.057ms speedup=192.9x
N=2000 k=2000 : defective=45.785ms fixed=0.108ms speedup=425.5x
=== libgdx-0002: CWE-407: list-scan inside loop in libgdx-0002 (generic model) ===
N=100 k=100 : defective=0.093ms fixed=0.004ms speedup=25.7x
N=500 k=500 : defective=2.341ms fixed=0.022ms speedup=105.3x
N=1000 k=1000 : defective=13.547ms fixed=0.059ms speedup=231.0x
N=2000 k=2000 : defective=42.988ms fixed=0.098ms speedup=439.1x
=== libgdx-0003: CWE-407: list-scan inside loop in libgdx-0003 (generic model) ===
N=100 k=100 : defective=0.206ms fixed=0.016ms speedup=12.8x
N=500 k=500 : defective=2.216ms fixed=0.021ms speedup=104.0x
N=1000 k=1000 : defective=9.534ms fixed=0.048ms speedup=197.8x
N=2000 k=2000 : defective=40.408ms fixed=0.110ms speedup=368.1x
=== libgdx-0004: Kerning.java — O(C×N×G) IntArray.contains() in GPOS coverage loop ===
N=100 k=100 : defective=0.095ms fixed=0.004ms speedup=23.7x
N=500 k=500 : defective=2.518ms fixed=0.023ms speedup=109.4x
N=1000 k=1000 : defective=8.652ms fixed=0.045ms speedup=192.6x
N=2000 k=2000 : defective=38.110ms fixed=0.107ms speedup=356.6x
=== libgdx-0005: CWE-407: list-scan inside loop in libgdx-0005 (generic model) ===
N=100 k=100 : defective=0.137ms fixed=0.004ms speedup=36.7x
N=500 k=500 : defective=2.356ms fixed=0.022ms speedup=107.9x
N=1000 k=1000 : defective=9.715ms fixed=0.050ms speedup=193.2x
N=2000 k=2000 : defective=35.803ms fixed=0.097ms speedup=367.6x
=== libgdx-0006: CWE-407: list-scan inside loop in libgdx-0006 (generic model) ===
N=100 k=100 : defective=0.084ms fixed=0.003ms speedup=24.8x
N=500 k=500 : defective=2.147ms fixed=0.023ms speedup=93.2x
N=1000 k=1000 : defective=8.828ms fixed=0.046ms speedup=191.9x
N=2000 k=2000 : defective=37.087ms fixed=0.101ms speedup=366.0x