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.
14 lines
742 B
Text
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
|
|
|