You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit da06bac
Browse filesBrowse the repository at this point in the historyBrowse files
2.6.0: the performance pair, and the breaking changes under their own heading (#1941)
v2.5.0 (the 1957th) and the 2549th measured together on one machine.
Derivate allocates 5.5% more, in five baseline steps each inside the gate;
recorded as unattributed.
Claude-Session: https://claude.ai/code/session_012sonx8iAspMiwRwokT1Ura
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Bytes allocated per call. `EvalEasy`, `RunEasy`, `RunMedium` and `RunHard` allocate nothing in both columns and are
221
+
left out.
222
+
223
+
-**The evaluation rows** are the numerical-evaluation work of the 2050th to the 2077th, recorded below.
224
+
-**`ParseHard`** is the 2203rd, the parser predicting in SLL first.
225
+
226
+
### The steps compose, and that was checked
227
+
228
+
`SolveEasy` was measured in six steps:
229
+
- −29.2% at the 2050th;
230
+
- −29.6% and −62.1% at the 2052nd and 2053rd;
231
+
- −41.4% and −20.2% at the 2054th to the 2075th;
232
+
- −42.1% at the 2077th.
233
+
234
+
Composed, they predict −94.9%, and the end-to-end measurement is −94.88%.
235
+
236
+
`SimplifyHard`'s recorded steps predict about −44.5%, and the measurement is −46.88%. The 2.4 points between them
237
+
are not attributed to any section of this file.
238
+
239
+
### `Derivate` went up 5.5%, in steps none of which the gate could see
240
+
241
+
`Derivate` differentiates a parsed constant, so no parser change reaches it. Its gate baseline moved five times
242
+
across the release, each move within the gate's 3%:
243
+
244
+
| baseline recorded at | allocation | step |
245
+
|---|--:|--:|
246
+
|`v2.5.0`, re-measured here | 53,239 ||
247
+
| 2053rd | 53,111 | −0.2% |
248
+
| 2084th | 53,528 | +0.8% |
249
+
| 2117th | 54,567 | +1.9% |
250
+
| 2130th | 55,095 | +1.0% |
251
+
| 2203rd | 55,783 | +1.2% |
252
+
| 2549th, measured here | 56,190 | +0.7% |
253
+
254
+
A baseline is re-recorded by the pull request that moves it, so each step covers every commit since the step before it,
255
+
not one change. The largest step, +1,039 bytes, is the 2117th,
256
+
[#1426](https://github.com/asc-community/AngouriMath/pull/1426). It gives a sum, a product and the other flat operators
257
+
a cached list of their operands, and so makes each of those nodes larger. That is a candidate, not a finding:
258
+
**no step is bisected**, so the increase is recorded here as unattributed. This file has one other case of steps each free by the gate summing to a real cost, the
259
+
rule-set exchange's +13%. This is the same pattern at a smaller size, and it is why the pair is measured end to end.
260
+
261
+
`SolveEasyMedium` +1.67%, `ParseEasy` +0.88% and `SolveMedium` +0.71% are below the gate's resolution for a single step
262
+
and are not attributed either.
263
+
264
+
### Timings
265
+
266
+
These moved well outside this machine's run-to-run spread and agree in sign with the allocation beside them:
267
+
268
+
| benchmark | change |
269
+
|---|--:|
270
+
|`EvalTranscendentalFresh`| −99.50% |
271
+
|`EvalPolynomialFresh`| −98.81% |
272
+
|`EvalTrigPrecise`| −98.20% |
273
+
|`ParseHard`| −98.17% |
274
+
|`SolveEasy`| −95.81% |
275
+
|`EvalTrig`| −95.47% |
276
+
|`EvalPolynomialFresh15Digits`| −94.63% |
277
+
|`SimplifyHard`| −43.90% |
278
+
|`SolveHard`| −37.69% |
279
+
280
+
`Derivate` was +5.15% (13.7 → 14.5 µs), in line with its allocation. The smaller rows from the same run are not worth
281
+
reading and are not quoted.
282
+
183
283
## The 1845th and the 1954th, measured together on one machine — the pair for 2.5.0
184
284
185
285
The pair the release checklist owes: `v2.4.0` (`de7189b1`, the 1845th) re-measured beside the
0 commit comments