@@ -36,6 +36,13 @@ arguments, covariance, ignored reads and exception-region receivers.
3636
3737Code commit: ` 7b6863bc ` . Both libraries build across all four targets with zero warnings/errors.
3838
39+ Focused frozen-binary repeat: ` 00-array-repeat.csv ` versus ` 01-vector-array-repeat.csv ` .
40+ System compilation moved 44,092 -> 58,548 ns, standard FEC 2,621 -> 3,416 ns, Light
41+ 2,425 -> 2,964 ns. Absolute times worsened with the host conditions. Relative to System,
42+ standard FEC improved about 1.8% and Light about 8.0%, in the same direction as the first
43+ run. The small standard-FEC difference remains uncertain; do not advertise the first
44+ run's absolute percentages as an established universal gain.
45+
3946## Optimization 2: named-field lookup without enumerating every field
4047
4148Use TypeInfo.GetDeclaredField and recurse to the base type only when necessary. This
@@ -56,3 +63,51 @@ One initial native run failed the existing generated FlatExpression roundtrip pr
5663test (reported case seed 864021005, replay seed 6H3IIevvWaa1). Replays with both baseline
5764and current libraries passed, including the explicit reported seed and default settings;
5865the failure remains unreproduced. Preserve the failing log rather than masking it.
66+
67+ Code commit: ` a9b98445 ` . Comparing the original baseline directly with this final production
68+ code gives Light construction improvements of 40.7%, 52.7%, 35.7% and 55.6%, respectively.
69+ The more useful per-change comparison above uses its immediate parent as requested.
70+
71+ ## Rejected runtime candidate: direct conditional comparison branches
72+
73+ Baseline benchmark commit: ` 37d445aa ` ; production baseline remains ` a9b98445 ` .
74+ Candidate: replace equality/inequality materialization followed by Brfalse with Bne_Un/Beq
75+ for simple non-lifted, non-overloaded operands. Keep complex/EH cases on the existing path.
76+ The candidate passes the six standard/Light regression methods, including primitive and
77+ reference input matrices, NaN, nullable and overloaded exclusions, side effects and EH.
78+
79+ Evidence: ` 03-conditional-before.csv ` / ` 03-conditional-rejected.csv ` and their repeat files.
80+ Standard compilation: 2,642 -> 1,937 ns initially, but 2,293 -> 2,943 ns on repeat.
81+ Light compilation: 2,314 -> 2,002 ns initially, 2,475 -> 2,036 ns on repeat. System controls
82+ also moved considerably. Standard invocation was 1.196 -> 1.096 ns initially and
83+ 1.103 -> 1.093 ns on repeat; these tiny loop-inclusive timings do not establish a runtime win.
84+ Construction was measured in both runs as well. The inconsistent compilation results
85+ do not justify retaining this production change. It is removed from the branch.
86+ Retain the added workload and regression oracles for future investigations. The candidate
87+ patch and its exact frozen binaries/hashes remain in the local measurement archive.
88+
89+ ## Final validation and runtime interpretation
90+
91+ The two kept changes emit exactly the same IL as the original baseline for all five
92+ benchmark workloads, in both standard and Light modes (ten delegate bodies compared).
93+ No delegate runtime speedup is claimed. Original/final timings for the first four
94+ workloads are in ` 00-baseline.csv ` and ` 02-named-field.csv ` ; the conditional workload's
95+ final production timing is ` 03-conditional-before.csv ` . Candidate timing files are not
96+ final production results. No compiler layout changes or System fallbacks were introduced.
97+
98+ All library targets (` net472 ` , ` netstandard2.1 ` , ` net8.0 ` , ` net10.0 ` ) build with zero warnings
99+ and errors. Native .NET 10 and .NET 8 suites pass (1,712 / 1,711 legacy tests plus registered
100+ regressions). Framework passes 712 TestX executions and 1,595 legacy tests, using the
101+ existing external en-US runner. One initial unreproduced property-test failure is recorded above.
102+
103+ The full imported compatibility suite was rerun against frozen final compiler binaries:
104+ 34,945 pass, 152 fail, 36 normalized skips, zero observed crashes/timeouts. All outcome
105+ groups match the fixes baseline exactly: zero newly failing or unmatched groups. The
106+ 152 pre-existing failures remain open. Skips include two compilation-mode cases of the
107+ one known deep-tree crash, which remains deferred; its explicit Skip discovery was
108+ verified without executing the tree body. See ` validation.json ` for counts and hashes.
109+
110+ 144 benchmark measurements were collected across nine serial runs. Each kept optimization
111+ has a separate code commit with measurements of construction, compilation and runtime.
112+ These local commits and evidence are ready for a later stacked performance PR; nothing
113+ has been pushed and the previous pull requests are unchanged.
0 commit comments