java-topology/defects/webdriverio/bench/results.txt
russell@unturf.com b79fddfb51 browser-automation wave 2: testcafe-0001 + webdriverio-0002
testcafe-0001: Selector filterNodes (string-filter branch) and
  expandSelectorResults both dedup via Array.indexOf on growing result
  arrays. filterNodes: O(N*M) per selector filter. expandSelectorResults:
  O(N^2 * K^2) worst case when derivatives unique. Fix: Set<Node> keyed
  by object identity. Bench: 398x at N=2000 filter, 1966x at N=K=150
  expand.

webdriverio-0002: MSPO aggregator dedups per-test entries via Array.find
  on growing bucket array. O(N^2) per test bucket, same pattern repeats
  in unknown-suite merger. Fix: companion Map<bucketKey, Set<selector>>
  for O(1) dedup. Bench: 493x at N=2000.

UNDF IDs: 1290 (testcafe), 1291 (webdriverio-0002). All 17 tests pass.
2026-04-22 18:31:53 -04:00

14 lines
742 B
Text

=== webdriverio-0001: xpath-conditions Array.find+includes vs Map<attr,Set> ===
K=5 V=5 : defective=0.019ms fixed=0.014ms speedup=1.4x
K=10 V=10 : defective=0.093ms fixed=0.050ms speedup=1.8x
K=20 V=20 : defective=0.502ms fixed=0.202ms speedup=2.5x
K=40 V=40 : defective=3.297ms fixed=0.773ms speedup=4.3x
K=60 V=60 : defective=11.879ms fixed=1.950ms speedup=6.1x
=== webdriverio-0002: MSPO aggregator Array.find vs Set<string> ===
N=50 : defective=0.062ms fixed=0.006ms speedup=10.4x
N=200 : defective=0.921ms fixed=0.023ms speedup=40.4x
N=500 : defective=6.883ms fixed=0.063ms speedup=109.8x
N=1000 : defective=32.553ms fixed=0.116ms speedup=280.4x
N=2000 : defective=121.602ms fixed=0.247ms speedup=493.0x