Skip to content

refactor(core): retire MultiFocus.representableAt — the repr0 index was unobservable - #123

Merged
kryptt merged 2 commits into
mainfrom
refactor/multifocus-retire-representable-at
Oct 1, 2026
Merged

kryptt merged 2 commits into
mainfrom
refactor/multifocus-retire-representable-at

Conversation

@kryptt

@kryptt kryptt commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

Summary

MultiFocus.representableAt[F, A](F)(repr0) discarded its index (val _ = repr0) and rebuilt
pointwise through F.tabulate, so it built exactly the optic MultiFocus.representable builds —
plus a parameter neither the factory body nor any operation on the built optic could reach: the
Grate encoding's focus is the whole bundle F.Representation => A with X = Unit. Two calls with
different indices were the same optic.

Decision: retire it (option b). Remove the method, record the break, migrate callers to
MultiFocus.representable + .at(i). Removed rather than deprecated, matching this line's
dead-surface policy: MiMa is off (tlMimaPreviousVersions := Set.empty in mima.sbt) and every 0.x
break is listed there and documented in the changelog (Affine.apply, the JsonFieldsPrism aliases,
ConfluentWire.resolvingRecord, AvroCodec#decodeUnsafe all left the same way).

API-compatibility consequence (published artifact)

Source- and binary-breaking for direct callers of cats-eo 0.18.x. MiMa is disabled on this line,
so nothing fails at build time; the break is recorded in mima.sbt's newest-first list (entry 0.19)
and in CHANGELOG.md under [Unreleased] → Removed. Migration is one line:

-  MultiFocus.representableAt[F, A](F)(repr0)
+  MultiFocus.representable[F, A]              // the same optic, no index

and where the index was wanted for a read, position is now a call-time argument:

import data.MultiFocus.at
MultiFocus.representable[F, A].at(repr0)(source)   // == F.index(source)(repr0)

(mima.sbt and the scaladoc tombstone label the break 0.19, assuming it ships as a minor like every
break so far; if it goes out as 0.18.1, those two labels are a one-line edit.)

Why not (a) — give the index a runtime meaning

  • There is nowhere to put it. X = Unit, and the public X is existential, so a .lead
    accessor would need a stored field on the optic class plus a runtime witness match to recover it
    (the shape Function1BroadcastOptic needs for composition in 81a53d3d) — sugar over .at(repr0),
    which is the same read with no optics-side state.
  • The lead value was already deleted as dead code. MultiFocusLeadPosition was dropped in
    12b8279 for having zero readers, and the fold spike records "the lead value is empirically dead
    through .modify — every shipped path discards it". site/docs/multifocus.md §Historical landmarks
    already tells that story; this PR removes the last remnant of it.
  • A lead-sampling write is unlawful, not missing. A Grate's from must tabulate positionally;
    sampling one index rebuilds a constant container. That is exactly the collapse the sibling change
    set fix/grate-positional-composition fixes — and it is now pinned negatively here.
  • The parity rationale is stale. "API parity" was with v1's Grate.at, deleted with the carrier
    in the Grate fold; its representative-focus slot does not exist in this encoding.

Why not (c) — keep it vestigial but pinned

That freezes a lie into a published signature ("pass your index here" for a parameter that changes
nothing). The useful half of (c) is available without it: UnlawfulFixturesSpec now proves the
shipped pointwise pin discriminates a lead-shaped write. A future .lead — if ever wanted — needs a
new witness type and a new constructor anyway, so it does not need this parameter to survive.

Changes

  • core/data/MultiFocus.scala — representableAt deleted; representable's scaladoc states the
    contract explicitly (position is a read-time argument; Representable has no canonical index) with
    a one-line tombstone for the removed name.
  • core/MultiFocusFunction1Spec.scala — the absorbed-Grate block rewired onto representable and
    strengthened: reads pinned against the instance's own index for two Representables, the second
    permuted (index order ≠ field order, so "index 0" is the third field), and modify / replace
    pinned against the instance's own map / tabulate.
  • tests/UnlawfulFixturesSpec.scala — negative fixture: a hand-written lead-sampling twin of the
    factory fails MultiFocusLaws.modifyIdentity and the pointwise-map pin, while the shipped
    representable passes both on the same carrier and input.
  • mima.sbt, CHANGELOG.md, site/docs/multifocus.md, site/docs/optics.md — break recorded, the
    removed name dropped from prose and the constructor list.

Verification

JDK 25 (Temurin 25.0.4.1 — the JDK this box supports; its default java is a broken JDK 27):

Command Result
sbt scalafmtAll test all 10 module summaries Failed 0, Errors 0 (1 / 18 / 10 / 11 / 46 / 56 / 268 / 130 / 424 examples; last module 237 = 235 passed + 2 pre-existing skips)
sbt 'core/testOnly dev.constructive.eo.MultiFocusFunction1Spec' 5 examples, 313 expectations, 0 failures
sbt 'tests/testOnly dev.constructive.eo.UnlawfulFixturesSpec' 4 examples, 6 expectations, 0 failures
sbt scalafmtCheckAll clean
sbt docs/mdoc 0 errors (6 pre-existing anchor warnings on untouched pages)
sbt docs/laikaSite 18 documents rendered

Non-vacuity: the fixture's lead-sampling optic returns false from MultiFocusLaws.modifyIdentity
and differs from its carrier instance's map, while the shipped representable returns true and
agrees — same law, same carrier, same input.

Rebase: based on main (188f10bd). fix/grate-positional-composition (81a53d3d) is present in
the authoring clone's object store, so the rebase was verified by cherry-picking this commit onto it:
clean (one 3-way merge, no conflicts), and on the merged state MultiFocusFunction1Spec is 7 examples /
329 expectations green, UnlawfulFixturesSpec 4 / 6 green, full sbt test green.

One cross-change-set follow-up

81a53d3d adds prose naming the removed factory as a live Grate factory; after both land three spots
go stale — site/tools/gen-qa-report.py:198 (generates the QA page caption at
site/docs/quality-assurance.md:72,100) and the header comment at
tests/…/GrateShapeSpec.scala:10. They should read MultiFocus.tuple / representable / apply
(plus a .at(i) mention if wanted). Deliberately untouched here: those lines do not exist on main,
so editing them would break this PR's rebase.

…ervable

`representableAt[F, A](F)(repr0)` discarded its index (`val _ = repr0`) and
rebuilt pointwise via `F.tabulate`, so it built exactly the optic
`MultiFocus.representable` builds, plus a parameter neither the factory body
nor any operation on the built optic could reach: the Grate encoding's focus
is the whole bundle `F.Representation => A` with `X = Unit`, and the write is
positional. Two calls with different indices were the same optic.

Decision — retire it (option b of the three considered):

- (a) give `repr0` a runtime meaning: there is nowhere to put it. `X = Unit`,
  and the public `X` is existential, so a `.lead` accessor would need a field
  on the optic class plus a runtime witness match (the `Function1BroadcastOptic`
  shape) to recover it — sugar over `.at(repr0)`, which is the same read
  without optics-side state. The lead VALUE was already deleted as dead code:
  `MultiFocusLeadPosition` was dropped by 12b8279 for having zero readers, and
  the fold spike records "the lead value is empirically dead through `.modify`".
  A lead-sampling WRITE is not a missing feature but an unlawful one: `from`
  must tabulate positionally, and sampling one index rebuilds a constant
  container — the collapse the sibling `fix/grate-positional-composition`
  change set fixes.
- (b) retire: position is a read-time argument, never a property of the optic,
  and `Representable` has no canonical index to hand a constructor
  (`Function1[Boolean, *]` has no privileged `Boolean`; `Function1[Nothing, *]`
  none at all). `.at(i)` subsumes the construction-time index, and works on
  composed optics too.
- (c) keep it vestigial but pinned: that would freeze a lie in a published
  signature. The line's policy is to remove dead public surface (0.10's
  pruning, 0.13's `widenB`) — MiMa is off (`tlMimaPreviousVersions := Set.empty`)
  and each 0.x break is documented in `mima.sbt`.

Source- and binary-breaking for direct callers; the migration is dropping the
argument and reading a position with the `.at(i)` extension. Recorded in
`mima.sbt` (newest break-list entry), `CHANGELOG.md` (Unreleased → Removed) and
in both doc pages, with a tombstone on `representable`'s scaladoc.

Specs:

- `MultiFocusFunction1Spec`: the absorbed-Grate block is rewired onto
  `representable` and pinned against the instance's own `index` / `map` for two
  `Representable`s — the second permuted (index order ≠ field order), so
  "index 0" and "first field" are different questions, and `modify` / `replace`
  must stay pointwise (a lead-sampling write would stop matching the
  instance's `map`).
- `UnlawfulFixturesSpec`: negative fixture — a hand-written lead-sampling twin
  of the factory fails `MultiFocusLaws.modifyIdentity`, while the shipped
  `representable` passes the same law on the same carrier and input; the twin
  also fails the pointwise-`map` pin the core spec holds `representable` to. The
  carrier is a structural container: the law compares with `==`, which is
  reference equality on a function, so a function-typed `S` would fail it
  whatever the rebuild shape.

Verified on JDK 25 (Temurin 25.0.4.1): `sbt scalafmtAll test` green across the
root aggregate (237 examples, 0 failures; 2 pre-existing skips), focused
`core/testOnly dev.constructive.eo.MultiFocusFunction1Spec` (5 examples, 313
expectations) and `tests/testOnly dev.constructive.eo.UnlawfulFixturesSpec`
(4 examples, 6 expectations), `sbt scalafmtCheckAll`, `sbt docs/mdoc` (0
errors) and `sbt docs/laikaSite`.
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

🚀 Cloudflare Pages preview for refactor/multifocus-retire-representable-at is live:

https://12c7cc31.cats-eo-docs.pages.dev

Branch alias: https://refactor-multifocus-retire-r.cats-eo-docs.pages.dev

Built from commit 47f06960d363786dad3a25b4f543c738730157eb · updated on every push.

CI's `sbt scalafixAll --check` step flagged both specs: with the brace form
`cats.{Functor, Representable}` the ASCII sort puts
`cats.instances.function.given` first (the pre-change `cats.Representable`
sorted before it, which is why the single-name import read fine). Applied with
`sbt scalafixAll`; no semantic change.

Verified on JDK 25: the CI gate set locally — `scalafmtCheckAll
scalafmtSbtCheck benchmarks/scalafmtCheck`, `scalafixAll --check`,
`githubWorkflowCheck`, `mimaReportBinaryIssues` — plus the root-aggregate
`sbt test` (all modules 0 failures) and the two focused specs (5 examples /
313 expectations, 4 examples / 6 expectations).
@github-actions

Copy link
Copy Markdown
Contributor

Benchmark A/B

Allocation (B/op) — authoritative

Benchmark params base head Δ
OrderJsoniterBench.eoReadStreet size=512 72.1 128.1 +77.7%
JsoniterBench.jReadId size=64 48.0 72.0 +50.0%
JsoniterBench.jReadId size=8 72.0 48.0 -33.3%
TraversalBench.eoFoldNested size=8 328.0 424.0 +29.3%
PlatedBench.visitorUniverseJson n=64 4,088.0 5,096.0 +24.7%
JsoniterBench.jReadStreet size=512 152.0 128.0 -15.8%
OrderAvroBench.eoModifyNames size=8 1,992.0 2,160.0 +8.4%
OrderJsoniterBench.monocleSumPrices size=8 6,640.0 6,104.0 -8.1%
ZioDiBench.eoDrillGet - 0.0 0.0 +7.2%
LensBench.eoGet - 0.0 0.0 -6.6%
AvroBytesBench.eoReadCountry - 520.0 488.0 -6.2%
GenericsBench.handLensGet - 0.0 0.0 -5.6%
CapsBench.getDirect - 0.0 0.0 -4.5%
AffineFoldBench.eoGetOption_loyalty - 0.0 0.0 -4.2%
GenericsBench.handPrismGetMiss - 0.0 0.0 +4.0%
JsoniterBench.jMiss size=8 0.0 0.0 +3.9%
GetterBench.mGet_0 - 0.0 0.0 +3.4%
CapsBench.getDeepCap - 0.0 0.0 +3.3%
AffineFoldBench.eoGetOption_loyalty_empty - 0.0 0.0 +2.8%
OpticBuildBench.reuseUse - 2,720.0 2,648.0 -2.6%
442 more benchmarks
Benchmark params base head Δ
PrismBench.mGetOptionPresent - 0.0 0.0 +2.6%
OpticBuildBench.buildAndUse - 2,816.0 2,888.0 +2.6%
CapsBench.getDeepDirect - 0.0 0.0 +2.5%
AffineFoldBench.mGetOption_loyalty - 0.0 0.0 -2.5%
GenericsBench.handPrismModifyMiss - 0.0 0.0 +2.4%
GenericsBench.genLensGet - 0.0 0.0 -2.4%
PrismBench.mGetOptionAbsent - 0.0 0.0 +2.4%
OrderCirceBench.hcursorNames size=64 76,238.3 77,799.1 +2.0%
OrderCirceBench.directNames size=8 10,688.0 10,472.0 -2.0%
OrderCirceBench.hcursorNames size=8 10,768.0 10,552.0 -2.0%
OrderCirceBench.eoNames size=8 10,944.0 10,728.0 -2.0%
OrderCirceBench.eoNames size=64 79,297.5 77,737.5 -2.0%
GenericsBench.genPrismModifyMiss - 0.0 0.0 -1.9%
OrderCirceBench.eoNamesIor size=512 671,123.2 683,436.4 +1.8%
AffineFoldBench.mGetOption_0_empty - 0.0 0.0 +1.8%
LensBench.mGet - 0.0 0.0 -1.7%
CapsBench.getCap - 0.0 0.0 -1.7%
AffineFoldBench.eoGetOption_0 - 0.0 0.0 -1.6%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.0 0.0 -1.6%
PrismBench.eoGetOptionAbsent - 0.0 0.0 +1.3%
PrismBench.eoGetRightAbsent - 0.0 0.0 -1.2%
AffineFoldBench.mGetOption_6 - 0.0 0.0 -1.2%
AffineFoldBench.mGetOption_loyalty_empty - 0.0 0.0 +0.9%
PrismBench.eoGetOptionPresent - 0.0 0.0 +0.9%
CapsBench.getDerivedPerCall - 0.0 0.0 -0.9%
GetterBench.eoGet_0 - 0.0 0.0 -0.9%
OrderCirceBench.directStreet size=8 2,728.0 2,752.0 +0.9%
KyoDiBench.handMapGet - 0.0 0.0 -0.9%
CapsBench.foldMapDerivedPerCall - 0.0 0.0 -0.8%
TraversalBench.mFoldPrices size=8 2,000.0 2,016.0 +0.8%
GetterBench.mGet_6 - 0.0 0.0 -0.8%
CapsBench.foldMapDirect - 0.0 0.0 -0.7%
GetterBench.eoGet_orderId - 0.0 0.0 +0.7%
AffineFoldBench.eoGetOption_0_empty - 0.0 0.0 -0.7%
MultiFocusBench.naive_sumQty size=4 0.0 0.0 -0.7%
OptionalBench.mModify_0_empty - 0.0 0.0 +0.7%
CapsBench.foldMapDerivedHeld - 0.0 0.0 -0.6%
PowerSeriesNestedBench.monocle_nested size=4 5,536.0 5,568.0 +0.6%
OptionalBench.eoModify_loyalty_empty - 0.0 0.0 +0.6%
GetterBench.eoGet_6 - 0.0 0.0 -0.5%
GetterBench.mGet_3 - 0.0 0.0 +0.5%
MultiFocusCollectBench.eoCollectMap_constSum - 0.0 0.0 -0.5%
AffineFoldBench.mGetOption_0 - 0.0 0.0 -0.4%
PowerSeriesNestedBench.eoModify_nested size=64 14,728.3 14,664.3 -0.4%
JsoniterBench.jMiss size=64 0.0 0.0 +0.4%
TraversalBench.eoFoldNested size=512 20,272.5 20,200.5 -0.4%
GenericsBench.rawLensGet - 0.0 0.0 -0.4%
PowerSeriesPrismBench.monocle_sparse size=32 7,040.0 7,016.0 -0.3%
JsoniterBench.jMiss size=512 0.0 0.0 -0.3%
CapsBench.foldMapCap - 0.0 0.0 -0.3%
OptionalBench.mModify_loyalty_empty - 0.0 0.0 +0.3%
GetterBench.mGet_orderId - 0.0 0.0 -0.3%
PrismBench.mGetRightAbsent - 0.0 0.0 +0.2%
CapsBench.getDerivedHeld - 0.0 0.0 +0.2%
OptionalBench.eoModify_0_empty - 0.0 0.0 +0.2%
SchemesBench.handHylo - 0.0 0.0 -0.2%
SchemesBench.handCata - 0.0 0.0 -0.2%
OrderCirceBench.monocleStreet size=8 17,080.0 17,048.0 -0.2%
PowerSeriesNestedBench.eoModify_nested size=256 53,669.9 53,766.1 +0.2%
FoldBench.mFoldMap size=8 0.0 0.0 +0.2%
AffineFoldBench.mGetOption_3 - 0.0 0.0 -0.1%
JsoniterBench.cReplaceId size=8 20,640.0 20,664.0 +0.1%
ZioDiBench.eoServiceGet - 0.0 0.0 +0.1%
GenericsBench.genPrismGetMiss - 0.0 0.0 +0.1%
OrderAvroBench.naiveModifyNames size=64 27,936.2 27,912.1 -0.1%
PowerSeriesNestedBench.eoModify_nested size=1024 210,406.4 210,564.5 +0.1%
OrderAvroBench.monocleModifyNames size=64 39,856.2 39,832.2 -0.1%
FoldBench.eoFoldMap size=8 0.0 0.0 -0.1%
OrderJsoniterBench.monocleSumPrices size=64 47,368.9 47,392.9 +0.1%
KyoDiBench.eoMapGet - 0.0 0.0 -0.0%
OrderJsoniterBench.nativeSumPrices size=512 86,326.5 86,293.9 -0.0%
OrderJsoniterBench.monocleModifyStreet size=512 333,403.2 333,507.2 +0.0%
OrderCirceBench.naiveStreet size=64 113,833.0 113,801.0 -0.0%
OrderJsoniterBench.nativeSumPrices size=8 1,512.3 1,512.6 +0.0%
OrderCirceBench.monocleStreet size=64 113,825.0 113,809.0 -0.0%
OrderCirceBench.naiveNames size=64 120,864.9 120,880.4 +0.0%
GetterBench.eoGet_3 - 0.0 0.0 -0.0%
OrderJsoniterBench.nativeReadStreet size=512 440.9 441.0 +0.0%
OrderJsoniterBench.nativeSumPrices size=64 10,930.2 10,931.1 +0.0%
OrderCirceBench.eoStreetIor size=8 2,736.7 2,736.5 -0.0%
OrderCirceBench.eoStreetIor size=64 2,736.7 2,736.8 +0.0%
OrderCirceBench.naiveStreet size=512 907,995.9 907,963.5 -0.0%
OrderCirceBench.naiveNames size=512 965,201.2 965,233.1 +0.0%
JsoniterBench.cSumPrices size=64 157,366.5 157,371.4 +0.0%
JsoniterBench.jSumPrices size=512 63,664.9 63,666.4 +0.0%
OrderCirceBench.eoNamesIor size=64 87,529.9 87,531.7 +0.0%
PlatedBench.mUniverseExpr n=4096 4,687,503.6 4,687,595.9 +0.0%
OrderCirceBench.monocleNames size=512 1,121,701.1 1,121,684.9 -0.0%
PowerSeriesBench.monocle_powerEach size=4 1,176.0 1,176.0 +0.0%
OrderJsoniterBench.eoSumPrices size=512 63,696.2 63,696.9 +0.0%
JsoniterBench.cReadId size=64 101,300.7 101,299.8 -0.0%
OrderCirceBench.directNames size=64 77,721.8 77,722.3 +0.0%
PlatedBench.visitorUniverseDeep n=4096 196,688.5 196,687.3 -0.0%
OrderAvroBench.naiveReadStreet size=512 69,782.0 69,781.6 -0.0%
PowerSeriesBench.naive_powerEach size=4096 114,764.5 114,763.9 -0.0%
OrderJsoniterBench.naiveReadStreet size=512 193,196.0 193,195.1 -0.0%
OrderAvroBench.monocleModifyNames size=512 382,772.1 382,770.4 -0.0%
OrderAvroBench.monocleReadStreet size=512 69,781.6 69,781.9 +0.0%
PowerSeriesPrismBench.monocle_sparse size=512 166,677.0 166,676.3 -0.0%
OrderCirceBench.directStreet size=512 2,728.4 2,728.4 -0.0%
OrderJsoniterBench.naiveModifyStreet size=512 333,507.7 333,506.6 -0.0%
OrderJsoniterBench.monocleReadStreet size=512 193,195.5 193,194.9 -0.0%
PlatedBench.visitorTransformDeep n=4096 163,871.6 163,871.2 -0.0%
OrderJsoniterBench.naiveSumPrices size=512 230,086.7 230,086.0 -0.0%
OrderJsoniterBench.monocleSumPrices size=512 1,190,569.8 1,190,572.9 +0.0%
OrderAvroBench.eoModifyStreet size=512 328.0 328.0 -0.0%
PowerSeriesBench.monocle_powerEach size=4096 967,709.3 967,711.8 +0.0%
OrderJsoniterBench.eoSumPrices size=64 8,120.7 8,120.7 -0.0%
JsoniterBench.cReplaceId size=64 136,219.2 136,218.8 -0.0%
PowerSeriesBench.monocle_powerEach size=1024 279,416.0 279,415.4 -0.0%
PowerSeriesNestedBench.naive_nested size=1024 115,054.4 115,054.6 +0.0%
MultiFocusBench.eoModify_multiFocus size=1024 331,094.4 331,095.1 +0.0%
OrderCirceBench.hcursorNames size=512 613,889.0 613,890.1 +0.0%
OrderJsoniterBench.eoModifyStreet size=512 42,025.7 42,025.8 +0.0%
OrderAvroBench.monocleModifyStreet size=512 169,077.5 169,077.8 +0.0%
OrderCirceBench.monocleNames size=64 132,755.3 132,755.5 +0.0%
PowerSeriesBench.eoModify_powerEach size=1024 41,411.3 41,411.3 -0.0%
OrderAvroBench.naiveModifyNames size=512 226,292.7 226,293.1 +0.0%
JsoniterBench.cReadStreet size=64 101,300.1 101,299.9 -0.0%
OrderCirceBench.eoStreetIor size=512 2,736.4 2,736.4 -0.0%
TraversalBench.eoModify size=512 36,896.7 36,896.8 +0.0%
PowerSeriesPrismBench.naive_sparse size=512 6,176.2 6,176.2 +0.0%
JsoniterBench.cModifyId size=64 136,267.1 136,267.3 +0.0%
PowerSeriesNestedBench.naive_nested size=64 7,512.1 7,512.1 +0.0%
PlatedBench.visitorUniverseExpr n=4096 196,636.4 196,636.2 -0.0%
OrderCirceBench.eoStreet size=512 2,720.4 2,720.4 +0.0%
PowerSeriesPrismBench.naive_sparse size=2048 24,610.8 24,610.8 +0.0%
OrderAvroBench.naiveModifyStreet size=512 169,054.3 169,054.5 +0.0%
OrderAvroBench.eoReadStreet size=64 88.0 88.0 +0.0%
MultiFocusBench.eoModify_powerEach size=1024 115,173.1 115,173.2 +0.0%
OrderJsoniterBench.naiveSumPrices size=64 29,336.7 29,336.7 -0.0%
FoldBench.eoFoldMap size=512 14,080.4 14,080.3 -0.0%
OrderCirceBench.hcursorStreet size=512 3,032.4 3,032.4 -0.0%
PowerSeriesBench.naive_powerEach size=1024 28,729.6 28,729.6 +0.0%
JsoniterBench.jSumPrices size=64 8,120.2 8,120.2 -0.0%
PowerSeriesNestedBench.monocle_nested size=256 430,188.2 430,187.9 -0.0%
OrderCirceBench.eoStreet size=64 2,720.1 2,720.1 -0.0%
PlatedBench.eoTransformDeep n=4096 624,344.2 624,344.7 +0.0%
PowerSeriesNestedBench.naive_nested size=256 29,018.1 29,018.1 +0.0%
PowerSeriesBench.eoModify_powerEach size=4096 164,333.9 164,334.0 +0.0%
PlatedBench.eoTransformDeep n=512 57,360.9 57,360.9 -0.0%
PlatedBench.mUniverseJson n=4096 6,489,544.9 6,489,540.7 -0.0%
JsoniterBench.cReadStreet size=512 797,900.4 797,900.8 +0.0%
PowerSeriesBench.eoModify_powerEach size=256 10,688.3 10,688.3 +0.0%
PlatedBench.visitorUniverseJson n=4096 533,699.7 533,700.0 +0.0%
JsoniterBench.cModifyId size=512 1,066,658.6 1,066,658.0 -0.0%
AvroEncodeRouteBench.handwritten_stream - 240.0 240.0 -0.0%
PowerSeriesPrismBench.monocle_sparse size=2048 523,111.0 523,111.3 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=128 4,816.0 4,816.0 -0.0%
MultiFocusBench.eoFold_powerEach size=1024 43,034.3 43,034.4 +0.0%
PowerSeriesBench.naive_powerEach size=256 7,224.1 7,224.1 -0.0%
OrderCirceBench.monocleStreet size=512 907,963.6 907,963.2 -0.0%
JsoniterBench.cSumPrices size=512 1,240,690.0 1,240,690.6 +0.0%
OrderAvroBench.eoReadStreet size=512 88.0 88.0 -0.0%
PowerSeriesNestedBench.monocle_nested size=64 58,912.5 58,912.5 +0.0%
PlatedBench.eoTransformExpr n=4096 655,315.3 655,315.6 +0.0%
OrderAvroBench.eoModifyNames size=512 97,404.3 97,404.3 -0.0%
PlatedBench.eoTransformExpr n=512 81,824.9 81,824.9 -0.0%
OrderJsoniterBench.nativeReadStreet size=64 424.3 424.3 +0.0%
JsoniterBench.jReadId size=512 72.0 72.0 -0.0%
MultiFocusBench.naive_listMap size=1024 65,577.4 65,577.5 +0.0%
MultiFocusBench.eoFold_powerEach size=256 9,240.1 9,240.1 -0.0%
OrderJsoniterBench.eoSumPrices size=8 1,176.0 1,176.0 -0.0%
PlatedBench.eoTransformExpr n=64 10,144.0 10,144.0 -0.0%
FoldBench.eoFoldPrices size=512 12,312.3 12,312.3 -0.0%
PlatedBench.eoUniverseJson n=4096 786,410.3 786,410.1 -0.0%
PowerSeriesBench.monocle_powerEach size=256 107,329.7 107,329.7 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=512 24,784.9 24,784.9 -0.0%
JsoniterBench.cReplaceId size=512 1,066,610.1 1,066,610.4 +0.0%
TraversalBench.mModify size=512 176,922.6 176,922.6 -0.0%
OrderJsoniterBench.eoReadStreet size=64 128.0 128.0 -0.0%
PlatedBench.visitorTransformDeep n=512 20,496.2 20,496.2 +0.0%
PlatedBench.visitorUniverseDeep n=512 24,632.4 24,632.4 +0.0%
JsoniterBench.cReadId size=512 797,900.2 797,900.4 +0.0%
PlatedBench.eoUniverseDeep n=4096 786,549.3 786,549.5 +0.0%
OrderJsoniterBench.monocleModifyStreet size=64 30,081.1 30,081.1 -0.0%
OrderJsoniterBench.monocleReadStreet size=64 24,704.6 24,704.6 -0.0%
OrderJsoniterBench.naiveReadStreet size=64 24,704.6 24,704.6 +0.0%
ClickRecordBench.encode_derivedThroughPrism - 744.0 744.0 -0.0%
OrderCirceBench.directNames size=512 613,888.3 613,888.4 +0.0%
JsoniterBench.jReplaceId size=512 41,888.5 41,888.5 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=32 1,360.0 1,360.0 +0.0%
OrderJsoniterBench.naiveModifyStreet size=8 4,640.0 4,640.0 -0.0%
FoldBench.mFoldPrices size=512 12,312.3 12,312.3 -0.0%
AvroBytesBench.eoReadPartner - 480.0 480.0 -0.0%
AvroJsonBridgeBench.eoWideToAvro - 2,040.0 2,040.0 -0.0%
MultiFocusBench.naive_sumQty size=256 3,840.0 3,840.0 -0.0%
OrderJsoniterBench.nativeReadStreet size=8 424.0 424.0 +0.0%
FoldBench.mFoldMap size=512 14,080.4 14,080.4 -0.0%
PlatedBench.eoUniverseJson n=64 12,168.0 12,168.0 +0.0%
PlatedBench.eoUniverseExpr n=512 98,184.8 98,184.8 -0.0%
MultiFocusBench.eoModify_multiFocus size=256 76,112.5 76,112.5 +0.0%
PlatedBench.visitorTransformExpr n=4096 360,449.2 360,449.3 +0.0%
PlatedBench.visitorUniverseJson n=512 40,953.2 40,953.2 +0.0%
TraversalBench.eoFoldNested size=64 2,680.0 2,680.0 +0.0%
AvroJsonBridgeBench.naiveWideToJson - 4,376.0 4,376.0 -0.0%
OrderCirceBench.eoNames size=512 601,613.9 601,613.8 -0.0%
PowerSeriesNestedBench.naive_nested size=16 2,136.0 2,136.0 -0.0%
AvroBytesBench.eoModifyCountry - 928.0 928.0 -0.0%
OrderAvroBench.monocleModifyStreet size=8 2,992.0 2,992.0 +0.0%
PlatedBench.mUniverseJson n=512 699,918.7 699,918.8 +0.0%
PlatedBench.eoUniverseExpr n=4096 786,359.1 786,359.2 +0.0%
OrderJsoniterBench.eoReadStreet size=8 72.0 72.0 +0.0%
OrderCirceBench.eoNamesIor size=8 11,592.0 11,592.0 +0.0%
OrderCirceBench.hcursorStreet size=8 3,032.0 3,032.0 +0.0%
PlatedBench.mTransformExpr n=512 69,584.8 69,584.8 -0.0%
MultiFocusBench.eoModify_powerEach size=32 3,152.0 3,152.0 -0.0%
OrderCirceBench.monocleNames size=8 19,504.0 19,504.0 +0.0%
PowerSeriesNestedBench.monocle_nested size=16 15,776.1 15,776.1 -0.0%
OrderCirceBench.directStreet size=64 2,728.1 2,728.1 +0.0%
PowerSeriesBench.naive_powerEach size=64 1,848.0 1,848.0 -0.0%
MultiFocusBench.naive_listMap size=32 2,088.0 2,088.0 -0.0%
PowerSeriesPrismBench.monocle_sparse size=128 27,808.1 27,808.1 -0.0%
OrderJsoniterBench.monocleModifyStreet size=8 4,664.0 4,664.0 +0.0%
PlatedBench.eoUniverseDeep n=64 12,360.0 12,360.0 -0.0%
PlatedBench.mUniverseExpr n=512 475,012.7 475,012.6 -0.0%
AvroBytesBench.prunedReadPartner - 1,592.0 1,592.0 -0.0%
MultiFocusBench.eoModify_powerEach size=256 26,080.3 26,080.3 -0.0%
TraversalBench.mModify size=64 14,448.0 14,448.0 +0.0%
AvroBytesBench.naiveModifyCountry - 7,616.0 7,616.0 +0.0%
AvroVulcanBench.fieldGet_bridged - 432.0 432.0 -0.0%
CapsBench.modifyDeepDirect - 152.0 152.0 +0.0%
MultiFocusBench.naive_listMap size=256 16,424.1 16,424.1 +0.0%
AvroDecodeReuseBench.confluentRecordReader - 1,560.0 1,560.0 +0.0%
OptionalBench.eoModify_0 - 112.0 112.0 +0.0%
LensBench.eoModifyDeep - 152.0 152.0 -0.0%
FoldBench.eoFoldMap size=64 768.0 768.0 -0.0%
KyoDiBench.eoVarUpdateFocus - 200.0 200.0 -0.0%
PowerSeriesBench.monocle_powerEach size=64 14,520.0 14,520.0 -0.0%
PlatedBench.visitorUniverseExpr n=512 24,584.4 24,584.4 -0.0%
AvroJsonBridgeBench.eoClickToJson - 4,000.0 4,000.0 -0.0%
OrderAvroBench.eoReadStreet size=8 88.0 88.0 +0.0%
TraversalBench.eoModify size=64 4,640.0 4,640.0 -0.0%
MultiFocusBench.naive_sumQty size=1024 16,128.7 16,128.7 -0.0%
OrderJsoniterBench.naiveSumPrices size=8 4,248.0 4,248.0 -0.0%
PlatedBench.visitorUniverseDeep n=64 3,128.0 3,128.0 -0.0%
AvroDecodeReuseBench.freshDecodeRecord - 3,344.0 3,344.0 -0.0%
ClickRecordBench.encode_derived - 744.0 744.0 -0.0%
PowerSeriesNestedBench.naive_nested size=4 792.0 792.0 -0.0%
AvroBytesBench.naiveReadPartner - 5,424.0 5,424.0 +0.0%
AvroVulcanBench.rootGet_native - 600.0 600.0 -0.0%
PowerSeriesNestedBench.eoModify_nested size=4 2,264.0 2,264.0 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=2048 104,668.1 104,668.1 +0.0%
OrderAvroBench.monocleReadStreet size=64 8,848.1 8,848.1 -0.0%
JsoniterBench.cModifyId size=8 20,712.0 20,712.0 +0.0%
TraversalBench.eoFoldPrices size=512 12,312.3 12,312.3 +0.0%
PlatedBench.mTransformExpr n=4096 753,678.2 753,678.1 -0.0%
SetterBench.mModify_6 - 288.0 288.0 -0.0%
OrderCirceBench.naiveStreet size=8 17,040.0 17,040.0 +0.0%
AvroBytesBench.naiveReadCountry - 4,256.0 4,256.0 +0.0%
MultiFocusBench.naive_sumQty size=32 256.0 256.0 -0.0%
PlatedBench.eoTransformDeep n=64 7,184.0 7,184.0 +0.0%
AvroBytesBench.prunedReadCountry - 1,976.0 1,976.0 +0.0%
PowerSeriesBench.monocle_powerEach size=16 3,736.0 3,736.0 +0.0%
OpticBuildBench.build - 184.0 184.0 -0.0%
CompositionBench.reuseLens6 - 120.0 120.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=128 1,568.0 1,568.0 +0.0%
OrderCirceBench.eoStreet size=8 2,720.0 2,720.0 -0.0%
OrderAvroBench.naiveModifyStreet size=8 2,968.0 2,968.0 +0.0%
OrderAvroBench.monocleReadStreet size=8 1,208.0 1,208.0 -0.0%
OptionalBench.eoModify_6 - 208.0 208.0 -0.0%
PlatedBench.eoUniverseJson n=512 98,185.6 98,185.6 +0.0%
PowerSeriesPrismBench.naive_sparse size=8 128.0 128.0 -0.0%
OrderJsoniterBench.naiveReadStreet size=8 3,648.0 3,648.0 +0.0%
OptionalBench.eoModify_3 - 160.0 160.0 -0.0%
OrderAvroBench.naiveModifyStreet size=64 20,880.1 20,880.1 +0.0%
FoldBench.mFoldMap size=64 768.0 768.0 -0.0%
TraversalBench.mFoldPrices size=512 162,578.5 162,578.5 +0.0%
PlatedBench.mUniverseJson n=64 73,208.4 73,208.4 -0.0%
OrderAvroBench.eoModifyNames size=64 12,584.1 12,584.1 +0.0%
MultiFocusBench.eoFold_powerEach size=4 328.0 328.0 -0.0%
JsoniterBench.jReadStreet size=8 152.0 152.0 -0.0%
JsoniterBench.cReadId size=8 15,568.0 15,568.0 -0.0%
MultiFocusCollectBench.naive_listSum - 56.0 56.0 +0.0%
JsoniterBench.jReadStreet size=64 128.0 128.0 -0.0%
AvroVulcanBench.fieldGet_native - 432.0 432.0 -0.0%
OrderJsoniterBench.eoModifyStreet size=64 5,432.0 5,432.0 -0.0%
OrderJsoniterBench.eoModifyStreet size=8 1,072.0 1,072.0 -0.0%
PowerSeriesNestedBench.eoModify_nested size=16 4,792.0 4,792.0 +0.0%
OrderJsoniterBench.naiveModifyStreet size=64 30,057.1 30,057.1 +0.0%
AvroBytesBench.eoSliceGraftPayload - 1,192.0 1,192.0 -0.0%
MultiFocusCollectBench.eoCollectList_listSum - 56.0 56.0 -0.0%
AffineFoldBench.eoGetOption_3 - 16.0 16.0 -0.0%
CompositionBench.reuseLens1 - 40.0 40.0 +0.0%
JsoniterBench.cSumPrices size=8 22,720.0 22,720.0 +0.0%
AvroJsonBridgeBench.eoClickToAvro - 4,664.0 4,664.0 -0.0%
AvroVulcanBench.encode_bridged - 1,240.0 1,240.0 +0.0%
ZioDiBench.eoServiceReplace - 456.0 456.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=32 416.0 416.0 -0.0%
AvroBytesBench.eoModifyPartner - 984.0 984.0 +0.0%
PlatedBench.eoUniverseDeep n=512 98,376.9 98,376.9 -0.0%
PlatedBench.mTransformExpr n=64 11,728.0 11,728.0 +0.0%
AvroEncodeRouteBench.naive_freshPlumbing - 2,624.0 2,624.0 -0.0%
TraversalBench.mModify size=8 1,936.0 1,936.0 +0.0%
PlatedBench.visitorTransformExpr n=512 45,032.5 45,032.5 +0.0%
FoldBench.eoFoldPrices size=64 1,560.0 1,560.0 -0.0%
KyoDiBench.eoEnvFocus - 312.0 312.0 -0.0%
AvroDecodeReuseBench.cachedDecodeRecord - 1,224.0 1,224.0 -0.0%
AvroDecodeReuseBench.confluentRecordReaderFresh - 3,696.0 3,696.0 +0.0%
PowerSeriesBench.eoModify_powerEach size=4 608.0 608.0 -0.0%
ClickRecordBench.encode_vulcanFull - 28,408.0 28,408.0 -0.0%
AvroJsonBridgeBench.naiveClickToJson - 5,856.0 5,856.0 +0.0%
TraversalBench.eoFoldPrices size=64 1,560.0 1,560.0 +0.0%
OrderAvroBench.monocleModifyStreet size=64 20,904.1 20,904.1 +0.0%
TraversalBench.eoFoldPrices size=8 216.0 216.0 -0.0%
FoldBench.mFoldPrices size=64 1,560.0 1,560.0 +0.0%
PlatedBench.visitorTransformExpr n=64 5,608.0 5,608.0 +0.0%
ZioDiBench.eoDrillModify - 528.0 528.0 +0.0%
KyoDiBench.handVarUpdate - 184.0 184.0 -0.0%
OrderCirceBench.hcursorStreet size=64 3,032.1 3,032.1 -0.0%
OrderCirceBench.naiveNames size=8 17,808.0 17,808.0 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=8 496.0 496.0 -0.0%
ClickRecordBench.encode_hand - 768.0 768.0 +0.0%
PowerSeriesNestedBench.monocle_nested size=1024 1,118,610.5 1,118,610.5 -0.0%
OrderAvroBench.naiveModifyNames size=8 3,752.0 3,752.0 -0.0%
PowerSeriesBench.eoModify_powerEach size=16 1,088.0 1,088.0 -0.0%
AvroJsonBridgeBench.eoWideToJson - 1,472.0 1,472.0 +0.0%
AvroBytesBench.eoGraftPayload - 720.0 720.0 +0.0%
KyoDiBench.eoMapDrillModify - 216.0 216.0 +0.0%
SchemesBench.eoAna - 589,712.4 589,712.4 +0.0%
SetterBench.eoModify_6 - 120.0 120.0 -0.0%
PowerSeriesBench.naive_powerEach size=4 168.0 168.0 +0.0%
AvroBytesBench.naivePassthroughPayload - 14,088.0 14,088.0 -0.0%
TraversalBench.eoModify size=8 608.0 608.0 +0.0%
JsoniterBench.jReplaceId size=64 5,296.0 5,296.0 -0.0%
ReviewBench.eoReverseGet_6 - 120.0 120.0 -0.0%
OrderAvroBench.monocleModifyNames size=8 5,400.0 5,400.0 -0.0%
PowerSeriesPrismBench.monocle_sparse size=8 1,952.0 1,952.0 +0.0%
AvroVulcanBench.decode_bridged - 880.0 880.0 +0.0%
AvroVulcanBench.decode_vulcanRaw - 880.0 880.0 +0.0%
JsoniterBench.jModifyId size=64 5,328.0 5,328.0 -0.0%
OptionalBench.mModify_0 - 112.0 112.0 +0.0%
PlatedBench.visitorUniverseExpr n=64 3,080.0 3,080.0 +0.0%
PowerSeriesBench.eoModify_powerEach size=64 3,008.0 3,008.0 +0.0%
AvroBytesBench.naiveModifyPartner - 8,696.0 8,696.0 -0.0%
TraversalBench.mFoldPrices size=64 15,424.0 15,424.0 -0.0%
OrderAvroBench.eoModifyStreet size=64 328.0 328.0 +0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 128.0 128.0 -0.0%
OrderAvroBench.eoModifyStreet size=8 328.0 328.0 -0.0%
PrismBench.eoReverseGet - 16.0 16.0 -0.0%
ZioDiBench.handServiceGet - 120.0 120.0 +0.0%
SchemesBench.eoCata - 197,568.3 197,568.3 -0.0%
CapsBench.modifyDeepCap - 176.0 176.0 +0.0%
IsoBench.eoReverseGet - 32.0 32.0 +0.0%
JsoniterBench.jModifyId size=8 992.0 992.0 -0.0%
OrderJsoniterBench.monocleReadStreet size=8 3,648.0 3,648.0 -0.0%
AvroEncodeRouteBench.eo_encodeToAny - 312.0 312.0 +0.0%
AvroVulcanBench.decode_native - 48.0 48.0 -0.0%
AvroEncodeRouteBench.eo_encodeValue - 568.0 568.0 -0.0%
ReviewBench.eoReverseGet_0 - 24.0 24.0 -0.0%
MultiFocusBench.eoModify_multiFocus size=32 8,600.0 8,600.0 -0.0%
CapsBench.modifyDerivedPerCall - 40.0 40.0 +0.0%
PlatedBench.mUniverseExpr n=64 45,424.4 45,424.4 +0.0%
JsoniterBench.jModifyId size=512 41,920.5 41,920.5 -0.0%
PrismBench.eoRightReverseGet - 16.0 16.0 -0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 224.0 224.0 -0.0%
OrderAvroBench.naiveReadStreet size=8 1,208.0 1,208.0 +0.0%
KyoDiBench.handMapDrillModify - 216.0 216.0 +0.0%
MultiFocusBench.eoFold_powerEach size=32 920.0 920.0 -0.0%
MultiFocusBench.eoModify_multiFocus size=4 1,320.0 1,320.0 +0.0%
SchemesBench.eoHylo - 295,848.3 295,848.3 +0.0%
CapsBench.modifyDerivedHeld - 40.0 40.0 -0.0%
OptionalBench.eoReplace_loyalty - 88.0 88.0 +0.0%
SetterBench.eoModify_orderId - 40.0 40.0 -0.0%
GenericsBench.handPrismModifyHit - 24.0 24.0 +0.0%
GenericsBench.rawPrismModifyHit - 24.0 24.0 -0.0%
OrderAvroBench.naiveReadStreet size=64 8,848.1 8,848.1 +0.0%
JsoniterBench.cReadStreet size=8 15,568.0 15,568.0 +0.0%
AvroVulcanBench.encode_native - 56.0 56.0 +0.0%
CompositionBench.buildLens3 - 184.0 184.0 +0.0%
PrismBench.mReverseGet - 16.0 16.0 -0.0%
KyoDiBench.handEnvUse - 304.0 304.0 -0.0%
MultiFocusCollectBench.eoCollectMap_zipMean - 880.0 880.0 +0.0%
PowerSeriesBench.naive_powerEach size=16 504.0 504.0 -0.0%
PlatedBench.visitorTransformDeep n=64 2,576.0 2,576.0 -0.0%
JsoniterBench.jSumPrices size=8 1,176.0 1,176.0 -0.0%
LensBench.mModifyDeep - 176.0 176.0 +0.0%
OptionalBench.mModify_loyalty - 112.0 112.0 +0.0%
IsoBench.mReverseGet - 32.0 32.0 -0.0%
CapsBench.modifyCap - 40.0 40.0 -0.0%
FoldBench.mFoldPrices size=8 216.0 216.0 -0.0%
JsoniterBench.jReplaceId size=8 960.0 960.0 -0.0%
ClickRecordBench.encode_positional - 23,912.0 23,912.0 +0.0%
MultiFocusBench.naive_listMap size=4 296.0 296.0 +0.0%
PlatedBench.eoUniverseExpr n=64 12,168.0 12,168.0 +0.0%
CompositionBench.reuseLeaf - 24.0 24.0 +0.0%
GenericsBench.rawPrismGetHit - 16.0 16.0 -0.0%
PrismBench.mRightReverseGet - 16.0 16.0 -0.0%
GenericsBench.handLensModify - 24.0 24.0 -0.0%
SetterBench.eoModify_0 - 24.0 24.0 -0.0%
OptionalBench.eoModify_loyalty - 112.0 112.0 -0.0%
AffineFoldBench.eoGetOption_0_asOptional - 16.0 16.0 +0.0%
SchemesBench.drosteHylo - 328,640.2 328,640.2 -0.0%
AffineFoldBench.eoGetOption_6 - 16.0 16.0 +0.0%
LensBench.eoModify - 40.0 40.0 -0.0%
IsoBench.eoGet - 32.0 32.0 +0.0%
ZioDiBench.handDrillModify - 648.0 648.0 +0.0%
ReviewBench.naiveBuild_3 - 72.0 72.0 +0.0%
LensBench.eoReplace - 40.0 40.0 -0.0%
SchemesBench.drosteAna - 327,632.2 327,632.2 -0.0%
MultiFocusCollectBench.naive_tuple3Rewrite - 96.0 96.0 -0.0%
CompositionBench.reuseLens3 - 72.0 72.0 +0.0%
SchemesBench.handAna - 163,816.1 163,816.1 -0.0%
ReviewBench.eoReverseGet_3 - 72.0 72.0 -0.0%
CapsBench.modifyDirect - 40.0 40.0 +0.0%
PrismBench.eoGetRightPresent - 16.0 16.0 +0.0%
ReviewBench.naiveBuild_6 - 120.0 120.0 +0.0%
GenericsBench.genPrismGetHit - 16.0 16.0 -0.0%
SetterBench.eoModify_3 - 72.0 72.0 +0.0%
AvroVulcanBench.encode_vulcanRaw - 1,240.0 1,240.0 -0.0%
SchemesBench.drosteCata - 164,824.1 164,824.1 +0.0%
ReviewBench.naiveBuild_0 - 24.0 24.0 -0.0%
SetterBench.mModify_0 - 24.0 24.0 +0.0%
OptionalBench.mModify_3 - 304.0 304.0 +0.0%
OptionalBench.mReplace_loyalty - 88.0 88.0 +0.0%
OptionalBench.mReplace_0 - 40.0 40.0 +0.0%
AvroJsonBridgeBench.naiveWideToAvro - 3,504.0 3,504.0 -0.0%
GenericsBench.genPrismModifyHit - 24.0 24.0 +0.0%
LensBench.mReplace - 40.0 40.0 +0.0%
CompositionBench.buildLensOptional3 - 184.0 184.0 -0.0%
FoldBench.eoFoldPrices size=8 216.0 216.0 +0.0%
SetterBench.mModify_orderId - 40.0 40.0 +0.0%
SetterBench.mModify_3 - 168.0 168.0 +0.0%
CompositionBench.buildLens6 - 352.0 352.0 +0.0%
GenericsBench.genLensModify - 24.0 24.0 -0.0%
AvroVulcanBench.rootGet_bridged - 1,472.0 1,472.0 +0.0%
MultiFocusCollectBench.naive_constSum - 16.0 16.0 +0.0%
CompositionBench.buildLens1 - 72.0 72.0 +0.0%
GenericsBench.handPrismGetHit - 16.0 16.0 +0.0%
ZioDiBench.handDrillGet - 120.0 120.0 +0.0%
OptionalBench.eoReplace_0 - 40.0 40.0 +0.0%
MultiFocusCollectBench.naive_zipMeanBroadcast - 1,176.0 1,176.0 +0.0%
GenericsBench.rawLensModify - 24.0 24.0 -0.0%
MultiFocusCollectBench.naive_tuple6Rewrite - 184.0 184.0 -0.0%
OptionalBench.mModify_6 - 496.0 496.0 -0.0%
AvroJsonBridgeBench.naiveClickToAvro - 3,928.0 3,928.0 -0.0%
LensBench.mModify - 40.0 40.0 -0.0%
MultiFocusBench.eoModify_powerEach size=4 800.0 800.0 +0.0%
CompositionBench.reuseLensOptional3 - 160.0 160.0 -0.0%
PrismBench.mGetRightPresent - 16.0 16.0 +0.0%
ZioDiBench.handServiceReplace - 576.0 576.0 +0.0%
IsoBench.mGet - 32.0 32.0 +0.0%
Timing (ns/op) — directional only, same-VM but shared runner
Benchmark params base head Δ
TraversalBench.eoFoldNested size=8 25.5 30.6 +20.2%
JsoniterBench.jReadId size=64 19.3 22.9 +18.8%
AvroEncodeRouteBench.handwritten_stream - 112.5 93.0 -17.3%
PowerSeriesNestedBench.monocle_nested size=4 726.0 602.3 -17.0%
JsoniterBench.jReadId size=8 22.7 19.3 -15.2%
OrderAvroBench.naiveModifyNames size=64 4,834.2 4,113.2 -14.9%
OrderAvroBench.eoReadStreet size=64 18.6 21.0 +12.8%
AvroJsonBridgeBench.eoWideToAvro - 454.1 400.6 -11.8%
OptionalBench.eoModify_0 - 11.3 12.5 +10.8%
OrderAvroBench.monocleModifyNames size=64 5,642.7 5,037.4 -10.7%
TraversalBench.mFoldPrices size=8 155.1 171.6 +10.6%
PowerSeriesNestedBench.naive_nested size=64 741.8 818.7 +10.4%
MultiFocusBench.naive_listMap size=32 137.8 124.2 -9.9%
CapsBench.modifyDeepDirect - 18.6 20.4 +9.5%
AvroVulcanBench.fieldGet_bridged - 57.0 51.8 -9.0%
PowerSeriesPrismBench.monocle_sparse size=32 685.5 744.5 +8.6%
ClickRecordBench.encode_derivedThroughPrism - 271.7 248.6 -8.5%
AvroJsonBridgeBench.naiveWideToJson - 1,029.1 944.2 -8.2%
LensBench.eoModifyDeep - 20.3 18.6 -8.2%
OrderAvroBench.monocleModifyStreet size=8 453.5 488.0 +7.6%
ZioDiBench.eoDrillGet - 5.7 6.1 +7.4%
TraversalBench.eoModify size=512 4,517.1 4,842.2 +7.2%
OrderJsoniterBench.monocleSumPrices size=8 1,452.5 1,349.1 -7.1%
SetterBench.mModify_6 - 29.9 27.9 -6.8%
LensBench.eoGet - 0.5 0.5 -6.7%
KyoDiBench.eoVarUpdateFocus - 35.3 33.1 -6.3%
OrderCirceBench.eoNamesIor size=64 16,237.4 15,223.3 -6.2%
PlatedBench.eoUniverseDeep n=64 1,036.3 971.9 -6.2%
OrderCirceBench.directNames size=8 1,895.1 1,781.3 -6.0%
PowerSeriesPrismBench.eoModify_sparse size=128 784.1 738.1 -5.9%
OrderCirceBench.eoStreetIor size=8 500.2 529.1 +5.8%
GenericsBench.handLensGet - 0.5 0.5 -5.7%
AvroVulcanBench.rootGet_native - 87.7 83.0 -5.5%
OrderAvroBench.eoModifyStreet size=512 69.2 65.6 -5.1%
TraversalBench.eoFoldNested size=64 284.7 299.2 +5.1%
PowerSeriesNestedBench.monocle_nested size=64 4,587.8 4,818.1 +5.0%
AvroDecodeReuseBench.confluentRecordReader - 227.5 238.8 +5.0%
OpticBuildBench.build - 25.2 23.9 -5.0%
PlatedBench.mUniverseExpr n=4096 2,512,558.6 2,636,692.6 +4.9%
OrderCirceBench.hcursorNames size=64 13,897.8 14,582.8 +4.9%
PlatedBench.visitorUniverseDeep n=4096 33,676.8 32,037.0 -4.9%
AvroBytesBench.eoReadPartner - 114.3 108.9 -4.7%
MultiFocusBench.eoModify_multiFocus size=1024 31,581.7 30,098.3 -4.7%
CapsBench.getDirect - 0.5 0.5 -4.5%
PowerSeriesPrismBench.naive_sparse size=512 678.5 708.4 +4.4%
GenericsBench.handPrismGetMiss - 0.5 0.5 +4.3%
OrderCirceBench.directNames size=64 13,954.3 14,549.0 +4.3%
JsoniterBench.jSumPrices size=64 5,752.8 5,511.6 -4.2%
PlatedBench.eoTransformDeep n=512 8,609.9 8,253.8 -4.1%
AffineFoldBench.eoGetOption_loyalty - 0.5 0.5 -4.0%
AvroVulcanBench.encode_bridged - 119.9 124.7 +4.0%
JsoniterBench.jMiss size=8 97.1 100.9 +3.9%
OrderCirceBench.eoStreet size=64 511.0 491.0 -3.9%
PowerSeriesPrismBench.naive_sparse size=8 12.3 11.8 -3.9%
MultiFocusBench.eoModify_powerEach size=32 578.8 556.2 -3.9%
PowerSeriesPrismBench.monocle_sparse size=512 17,338.2 16,664.7 -3.9%
OpticBuildBench.buildAndUse - 512.6 532.4 +3.9%
OrderJsoniterBench.naiveSumPrices size=64 6,811.9 6,549.3 -3.9%
OrderJsoniterBench.eoReadStreet size=512 106.7 110.8 +3.8%
CapsBench.getDeepCap - 0.7 0.7 +3.7%
AvroBytesBench.eoReadCountry - 108.8 112.9 +3.7%
TraversalBench.mModify size=64 1,112.1 1,153.0 +3.7%
AvroVulcanBench.fieldGet_native - 53.9 51.9 -3.6%
PowerSeriesNestedBench.naive_nested size=16 199.2 192.0 -3.6%
OrderCirceBench.hcursorNames size=8 1,885.6 1,818.8 -3.5%
AvroBytesBench.eoModifyCountry - 179.6 173.2 -3.5%
GetterBench.mGet_0 - 0.2 0.2 +3.5%
PowerSeriesNestedBench.eoModify_nested size=256 9,312.8 9,639.1 +3.5%
FoldBench.eoFoldMap size=512 2,212.8 2,136.3 -3.5%
OrderAvroBench.eoModifyNames size=8 322.5 311.4 -3.5%
MultiFocusBench.eoFold_powerEach size=4 37.6 36.3 -3.4%
PowerSeriesBench.monocle_powerEach size=16 365.7 378.0 +3.4%
JsoniterBench.cReadId size=64 13,109.4 12,669.5 -3.4%
OrderCirceBench.eoNames size=8 1,896.5 1,834.5 -3.3%
PowerSeriesPrismBench.monocle_sparse size=2048 49,288.6 50,886.5 +3.2%
PlatedBench.eoTransformExpr n=512 8,896.1 8,608.9 -3.2%
PowerSeriesBench.naive_powerEach size=256 776.7 752.8 -3.1%
OrderCirceBench.naiveNames size=64 12,833.9 12,440.4 -3.1%
OrderAvroBench.eoReadStreet size=8 18.5 19.1 +3.0%
OrderCirceBench.hcursorStreet size=8 515.1 530.7 +3.0%
PowerSeriesNestedBench.monocle_nested size=16 1,443.0 1,399.3 -3.0%
ZioDiBench.eoServiceReplace - 55.8 54.1 -3.0%
PlatedBench.visitorTransformDeep n=4096 21,487.4 20,845.6 -3.0%
MultiFocusBench.naive_sumQty size=256 321.7 312.1 -3.0%
PowerSeriesBench.monocle_powerEach size=64 1,180.7 1,145.8 -3.0%
PowerSeriesBench.naive_powerEach size=64 189.0 183.6 -2.9%
OpticBuildBench.reuseUse - 496.8 482.8 -2.8%
TraversalBench.mModify size=8 157.2 161.6 +2.8%
AffineFoldBench.eoGetOption_loyalty_empty - 0.5 0.5 +2.8%
OrderJsoniterBench.nativeSumPrices size=512 34,873.7 35,840.1 +2.8%
OptionalBench.eoModify_3 - 31.4 30.5 -2.8%
OrderCirceBench.eoNamesIor size=8 2,171.5 2,231.4 +2.8%
PowerSeriesNestedBench.monocle_nested size=256 48,856.6 47,512.3 -2.8%
IsoBench.eoReverseGet - 1.5 1.5 +2.8%
OrderCirceBench.naiveStreet size=8 1,633.3 1,677.2 +2.7%
AvroBytesBench.naiveModifyCountry - 1,448.9 1,487.9 +2.7%
PowerSeriesNestedBench.eoModify_nested size=1024 37,950.6 36,933.6 -2.7%
AffineFoldBench.mGetOption_loyalty - 0.5 0.5 -2.7%
MultiFocusBench.naive_sumQty size=32 33.7 32.8 -2.6%
PowerSeriesNestedBench.naive_nested size=4 69.7 67.9 -2.6%
AvroBytesBench.prunedReadPartner - 332.4 323.8 -2.6%
CapsBench.getDeepDirect - 0.6 0.6 +2.5%
MultiFocusBench.eoFold_powerEach size=256 1,888.1 1,840.3 -2.5%
PrismBench.mGetOptionAbsent - 0.5 0.5 +2.5%
JsoniterBench.cReadId size=8 2,029.0 1,977.8 -2.5%
AvroDecodeReuseBench.freshDecodeRecord - 724.4 706.3 -2.5%
MultiFocusBench.eoModify_multiFocus size=256 6,798.6 6,968.0 +2.5%
KyoDiBench.eoEnvFocus - 39.3 38.3 -2.5%
OrderCirceBench.directStreet size=8 506.3 493.9 -2.4%
OrderAvroBench.naiveModifyStreet size=8 476.0 487.6 +2.4%
PowerSeriesNestedBench.eoModify_nested size=64 2,420.4 2,479.4 +2.4%
ClickRecordBench.encode_derived - 259.4 253.0 -2.4%
OrderJsoniterBench.eoSumPrices size=8 722.0 704.5 -2.4%
OrderJsoniterBench.eoSumPrices size=64 5,860.0 5,718.4 -2.4%
OrderCirceBench.directStreet size=512 505.9 494.2 -2.3%
PlatedBench.visitorTransformDeep n=512 2,264.9 2,317.2 +2.3%
GenericsBench.handPrismModifyMiss - 0.5 0.5 +2.3%
SchemesBench.eoAna - 51,260.4 52,430.6 +2.3%
JsoniterBench.cSumPrices size=8 3,074.2 3,144.0 +2.3%
PrismBench.mGetOptionPresent - 0.5 0.5 +2.3%
GenericsBench.genLensGet - 0.5 0.5 -2.3%
PowerSeriesBench.eoModify_powerEach size=4 58.2 56.9 -2.3%
PlatedBench.visitorUniverseDeep n=64 423.0 413.5 -2.2%
JsoniterBench.cModifyId size=8 4,446.8 4,546.5 +2.2%
OrderJsoniterBench.naiveModifyStreet size=8 1,951.4 1,908.1 -2.2%
GenericsBench.genPrismModifyMiss - 0.5 0.5 -2.2%
ZioDiBench.eoDrillModify - 68.2 69.7 +2.2%
ClickRecordBench.encode_vulcanFull - 3,819.6 3,736.7 -2.2%
PowerSeriesBench.eoModify_powerEach size=256 1,787.6 1,826.0 +2.2%
LensBench.mGet - 0.5 0.5 -2.1%
AvroEncodeRouteBench.naive_freshPlumbing - 362.2 354.5 -2.1%
PowerSeriesPrismBench.monocle_sparse size=128 2,397.4 2,346.6 -2.1%
AvroJsonBridgeBench.eoClickToJson - 1,688.4 1,652.9 -2.1%
OrderCirceBench.monocleNames size=8 2,015.2 2,057.5 +2.1%
TraversalBench.eoModify size=64 579.3 567.3 -2.1%
MultiFocusBench.eoModify_powerEach size=1024 19,588.4 19,995.5 +2.1%
ZioDiBench.handServiceGet - 7.7 7.8 +2.1%
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 8.4 8.2 -2.1%
OrderJsoniterBench.naiveReadStreet size=512 51,405.8 50,367.3 -2.0%
JsoniterBench.cReplaceId size=8 4,629.1 4,535.8 -2.0%
ClickRecordBench.encode_hand - 73.0 74.4 +2.0%
OrderCirceBench.monocleNames size=64 13,229.9 13,493.4 +2.0%
PowerSeriesBench.eoModify_powerEach size=1024 7,005.3 6,866.3 -2.0%
PlatedBench.eoTransformExpr n=64 1,078.2 1,099.5 +2.0%
PowerSeriesBench.monocle_powerEach size=256 10,987.7 11,204.8 +2.0%
PowerSeriesNestedBench.eoModify_nested size=4 341.2 347.8 +2.0%
ReviewBench.eoReverseGet_0 - 1.2 1.2 -1.9%
TraversalBench.eoFoldPrices size=8 21.4 21.0 -1.9%
OrderAvroBench.monocleReadStreet size=8 251.9 247.1 -1.9%
KyoDiBench.eoMapDrillModify - 20.4 20.7 +1.9%
PowerSeriesPrismBench.eoModify_sparse size=32 178.1 181.5 +1.9%
SetterBench.eoModify_6 - 12.4 12.2 -1.9%
TraversalBench.mModify size=512 17,272.9 16,953.1 -1.9%
PlatedBench.eoUniverseExpr n=512 8,036.3 7,889.2 -1.8%
OrderCirceBench.monocleStreet size=64 11,677.9 11,467.9 -1.8%
JsoniterBench.jReplaceId size=512 1,764.7 1,796.4 +1.8%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 12.9 12.7 -1.8%
SetterBench.eoModify_orderId - 1.6 1.6 -1.8%
AffineFoldBench.mGetOption_0_empty - 0.4 0.4 +1.7%
PowerSeriesBench.naive_powerEach size=4 13.7 13.9 +1.7%
CompositionBench.reuseLens1 - 8.8 9.0 +1.7%
PlatedBench.eoTransformDeep n=64 958.7 975.1 +1.7%
OrderJsoniterBench.monocleSumPrices size=512 217,129.5 220,775.9 +1.7%
OptionalBench.eoReplace_loyalty - 3.8 3.8 +1.7%
MultiFocusBench.naive_listMap size=1024 5,549.5 5,641.1 +1.7%
AvroVulcanBench.decode_bridged - 110.3 112.1 +1.6%
JsoniterBench.cReadStreet size=512 99,792.9 101,432.6 +1.6%
PowerSeriesBench.monocle_powerEach size=1024 29,140.7 28,666.3 -1.6%
MultiFocusBench.eoModify_multiFocus size=4 105.4 107.1 +1.6%
PowerSeriesBench.monocle_powerEach size=4096 96,596.1 98,132.4 +1.6%
AvroBytesBench.naiveReadPartner - 1,124.6 1,142.4 +1.6%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.5 0.4 -1.6%
CapsBench.modifyDerivedPerCall - 2.4 2.4 +1.6%
PowerSeriesBench.naive_powerEach size=1024 3,402.7 3,455.8 +1.6%
MultiFocusBench.naive_listMap size=256 1,266.4 1,285.9 +1.5%
CapsBench.getCap - 0.5 0.5 -1.5%
MultiFocusCollectBench.naive_listSum - 17.1 17.3 +1.5%
PrismBench.eoReverseGet - 1.3 1.3 -1.5%
CompositionBench.buildLens3 - 7.9 8.0 +1.5%
JsoniterBench.cReplaceId size=64 26,939.9 26,533.1 -1.5%
OrderJsoniterBench.naiveModifyStreet size=512 89,765.0 88,421.1 -1.5%
AvroBytesBench.naiveReadCountry - 872.3 885.4 +1.5%
OrderJsoniterBench.monocleReadStreet size=512 50,853.5 50,096.4 -1.5%
AffineFoldBench.eoGetOption_0 - 0.5 0.5 -1.5%
PlatedBench.visitorUniverseDeep n=512 3,958.4 4,016.0 +1.5%
PlatedBench.eoUniverseJson n=64 1,766.2 1,740.9 -1.4%
TraversalBench.eoFoldNested size=512 3,158.5 3,113.5 -1.4%
FoldBench.eoFoldPrices size=512 1,736.7 1,712.7 -1.4%
OrderJsoniterBench.naiveSumPrices size=512 54,543.1 53,797.0 -1.4%
CompositionBench.reuseLens6 - 64.7 63.8 -1.3%
AvroJsonBridgeBench.eoWideToJson - 297.4 301.3 +1.3%
AffineFoldBench.mGetOption_6 - 12.2 12.1 -1.3%
CapsBench.modifyDeepCap - 17.2 17.4 +1.3%
PrismBench.eoGetOptionAbsent - 0.4 0.4 +1.3%
OrderCirceBench.eoNamesIor size=512 113,768.2 115,251.0 +1.3%
OptionalBench.eoModify_6 - 70.8 69.9 -1.3%
OrderAvroBench.monocleModifyStreet size=512 30,103.8 29,719.0 -1.3%
AvroDecodeReuseBench.cachedDecodeRecord - 206.8 204.2 -1.3%
OrderJsoniterBench.naiveSumPrices size=8 1,044.1 1,030.7 -1.3%
PowerSeriesPrismBench.naive_sparse size=32 38.3 37.8 -1.3%
PowerSeriesPrismBench.eoModify_sparse size=8 59.2 58.5 -1.3%
OrderCirceBench.hcursorNames size=512 111,077.3 112,475.3 +1.3%
AvroBytesBench.eoSliceGraftPayload - 155.6 153.7 -1.3%
ReviewBench.eoReverseGet_6 - 17.3 17.0 -1.2%
OrderAvroBench.naiveModifyNames size=512 38,590.9 39,065.9 +1.2%
JsoniterBench.jReadStreet size=512 109.5 108.2 -1.2%
GenericsBench.rawPrismModifyHit - 1.1 1.1 -1.2%
OrderJsoniterBench.monocleSumPrices size=64 8,846.2 8,739.6 -1.2%
AvroVulcanBench.decode_vulcanRaw - 105.7 107.0 +1.2%
IsoBench.mReverseGet - 1.6 1.5 -1.2%
JsoniterBench.jModifyId size=8 62.8 62.0 -1.2%
OptionalBench.mModify_0 - 11.8 11.9 +1.2%
OrderJsoniterBench.monocleModifyStreet size=8 1,899.9 1,922.3 +1.2%
PowerSeriesPrismBench.monocle_sparse size=8 174.3 176.4 +1.2%
OrderCirceBench.monocleStreet size=8 1,624.2 1,643.1 +1.2%
CapsBench.modifyDerivedHeld - 2.7 2.7 -1.1%
PlatedBench.visitorUniverseJson n=64 1,059.2 1,047.2 -1.1%
JsoniterBench.cSumPrices size=512 175,442.5 177,411.6 +1.1%
PlatedBench.mTransformExpr n=64 1,317.6 1,332.1 +1.1%
OrderCirceBench.eoStreetIor size=64 495.8 501.3 +1.1%
PowerSeriesNestedBench.naive_nested size=256 3,307.8 3,343.7 +1.1%
OrderCirceBench.eoStreet size=8 485.5 480.2 -1.1%
AvroBytesBench.prunedReadCountry - 467.5 472.5 +1.1%
PrismBench.eoGetRightAbsent - 0.5 0.5 -1.1%
PlatedBench.visitorUniverseExpr n=4096 28,070.8 27,769.2 -1.1%
PrismBench.eoRightReverseGet - 1.3 1.3 -1.1%
PowerSeriesBench.naive_powerEach size=4096 12,098.5 11,969.8 -1.1%
OrderCirceBench.eoStreetIor size=512 491.0 485.8 -1.1%
PowerSeriesNestedBench.naive_nested size=1024 12,055.1 12,181.9 +1.1%
PlatedBench.eoTransformDeep n=4096 66,205.9 66,898.9 +1.0%
JsoniterBench.cModifyId size=64 26,858.5 27,139.4 +1.0%
OrderCirceBench.eoNames size=64 14,265.3 14,118.5 -1.0%
KyoDiBench.handVarUpdate - 32.9 32.6 -1.0%
KyoDiBench.handMapDrillModify - 17.9 18.1 +1.0%
AvroJsonBridgeBench.naiveClickToJson - 1,690.4 1,707.5 +1.0%
JsoniterBench.jReplaceId size=64 237.0 234.7 -1.0%
JsoniterBench.cModifyId size=512 205,936.3 203,904.3 -1.0%
MultiFocusBench.eoFold_powerEach size=1024 9,066.7 9,155.7 +1.0%
OrderAvroBench.eoModifyNames size=512 18,808.7 18,625.4 -1.0%
AvroBytesBench.eoGraftPayload - 73.6 74.3 +1.0%
OrderJsoniterBench.eoModifyStreet size=8 162.1 160.6 -1.0%
CapsBench.modifyCap - 2.1 2.1 -1.0%
TraversalBench.mFoldPrices size=64 1,314.9 1,302.4 -1.0%
JsoniterBench.jModifyId size=64 233.9 231.7 -0.9%
AvroJsonBridgeBench.eoClickToAvro - 1,761.6 1,745.1 -0.9%
GenericsBench.handPrismModifyHit - 1.6 1.6 +0.9%
PlatedBench.mTransformExpr n=512 7,935.3 7,861.8 -0.9%
ReviewBench.naiveBuild_3 - 2.6 2.6 +0.9%
AffineFoldBench.eoGetOption_3 - 7.3 7.3 -0.9%
OptionalBench.eoModify_loyalty_empty - 0.6 0.6 +0.9%
GetterBench.eoGet_orderId - 0.4 0.4 +0.9%
OrderJsoniterBench.nativeSumPrices size=64 4,322.7 4,283.9 -0.9%
AvroEncodeRouteBench.eo_encodeToAny - 27.7 28.0 +0.9%
GetterBench.eoGet_0 - 0.4 0.4 -0.9%
PlatedBench.visitorTransformExpr n=64 530.1 534.8 +0.9%
FoldBench.eoFoldPrices size=64 179.5 177.9 -0.9%
PowerSeriesPrismBench.naive_sparse size=128 145.7 146.9 +0.9%
SetterBench.eoModify_0 - 1.2 1.2 -0.9%
OrderJsoniterBench.monocleReadStreet size=64 6,278.3 6,223.7 -0.9%
OrderJsoniterBench.naiveReadStreet size=64 6,168.2 6,221.8 +0.9%
OrderAvroBench.eoReadStreet size=512 18.7 18.6 -0.9%
OrderCirceBench.naiveNames size=8 1,763.3 1,748.1 -0.9%
AvroDecodeReuseBench.confluentRecordReaderFresh - 766.2 772.8 +0.9%
AvroBytesBench.eoModifyPartner - 204.7 206.5 +0.9%
KyoDiBench.handMapGet - 0.9 0.9 -0.9%
JsoniterBench.cReadStreet size=64 12,912.2 12,802.9 -0.8%
OrderAvroBench.naiveModifyNames size=8 636.6 631.3 -0.8%
OptionalBench.mModify_0_empty - 0.6 0.6 +0.8%
OrderCirceBench.monocleStreet size=512 88,725.9 87,994.0 -0.8%
OrderAvroBench.monocleModifyNames size=8 772.6 766.3 -0.8%
ReviewBench.naiveBuild_6 - 4.3 4.3 +0.8%
PowerSeriesPrismBench.eoModify_sparse size=512 3,185.5 3,160.0 -0.8%
PowerSeriesBench.eoModify_powerEach size=16 130.8 129.8 -0.8%
FoldBench.mFoldPrices size=512 1,752.2 1,738.4 -0.8%
GetterBench.mGet_6 - 12.0 11.9 -0.8%
PrismBench.eoGetOptionPresent - 0.4 0.4 +0.8%
CapsBench.getDerivedPerCall - 0.7 0.7 -0.8%
GenericsBench.rawPrismGetHit - 0.9 0.9 -0.8%
OrderCirceBench.eoStreet size=512 482.9 486.5 +0.8%
FoldBench.mFoldPrices size=64 179.1 180.4 +0.8%
OrderJsoniterBench.naiveReadStreet size=8 983.5 990.8 +0.7%
FoldBench.eoFoldMap size=64 197.1 195.7 -0.7%
PrismBench.mReverseGet - 1.4 1.4 -0.7%
PowerSeriesPrismBench.naive_sparse size=2048 2,813.2 2,833.7 +0.7%
OrderJsoniterBench.nativeReadStreet size=8 470.2 473.6 +0.7%
JsoniterBench.cReadId size=512 99,300.4 100,005.2 +0.7%
MultiFocusBench.eoModify_powerEach size=256 4,663.1 4,630.4 -0.7%
MultiFocusCollectBench.eoCollectList_listSum - 33.8 33.6 -0.7%
OrderJsoniterBench.eoSumPrices size=512 44,186.7 44,495.4 +0.7%
MultiFocusBench.naive_sumQty size=4 3.3 3.3 -0.7%
CapsBench.foldMapDerivedPerCall - 10.3 10.2 -0.7%
MultiFocusCollectBench.naive_tuple3Rewrite - 3.8 3.7 -0.7%
CompositionBench.reuseLeaf - 1.5 1.5 +0.7%
LensBench.eoReplace - 1.6 1.6 -0.7%
OrderCirceBench.directStreet size=64 491.0 494.3 +0.7%
FoldBench.mFoldMap size=512 2,177.4 2,163.1 -0.7%
OrderCirceBench.naiveStreet size=512 89,068.8 88,486.4 -0.7%
OrderJsoniterBench.monocleModifyStreet size=64 10,925.6 10,855.8 -0.6%
AffineFoldBench.mGetOption_loyalty_empty - 0.5 0.5 +0.6%
CapsBench.foldMapDerivedHeld - 10.7 10.6 -0.6%
MultiFocusBench.naive_listMap size=4 16.6 16.7 +0.6%
OrderCirceBench.hcursorStreet size=512 520.5 517.2 -0.6%
JsoniterBench.jReplaceId size=8 60.1 59.7 -0.6%
OrderAvroBench.naiveModifyStreet size=64 3,700.4 3,723.4 +0.6%
PlatedBench.mUniverseJson n=64 20,293.1 20,169.3 -0.6%
LensBench.eoModify - 2.0 2.0 -0.6%
OrderJsoniterBench.eoModifyStreet size=512 1,873.0 1,884.3 +0.6%
OrderAvroBench.monocleReadStreet size=64 2,248.0 2,234.5 -0.6%
CapsBench.foldMapDirect - 10.3 10.2 -0.6%
MultiFocusCollectBench.eoCollectMap_zipMean - 85.8 86.3 +0.6%
SchemesBench.eoCata - 39,987.8 39,751.3 -0.6%
OrderAvroBench.naiveReadStreet size=512 17,626.3 17,730.1 +0.6%
JsoniterBench.jSumPrices size=512 44,930.9 45,188.4 +0.6%
OrderJsoniterBench.nativeSumPrices size=8 641.3 644.9 +0.6%
AvroVulcanBench.encode_native - 6.5 6.5 +0.6%
OptionalBench.mModify_loyalty_empty - 0.7 0.7 +0.6%
JsoniterBench.cReplaceId size=512 204,214.1 205,355.0 +0.6%
AffineFoldBench.eoGetOption_0_empty - 0.5 0.5 -0.6%
TraversalBench.eoFoldPrices size=64 178.8 179.8 +0.6%
OptionalBench.mModify_loyalty - 8.2 8.3 +0.5%
LensBench.mReplace - 1.7 1.7 +0.5%
PlatedBench.eoTransformExpr n=4096 70,511.5 70,888.2 +0.5%
ReviewBench.naiveBuild_0 - 1.0 1.0 -0.5%
PlatedBench.visitorUniverseJson n=512 11,012.2 11,068.7 +0.5%
OrderAvroBench.naiveReadStreet size=64 2,243.4 2,254.9 +0.5%
GetterBench.mGet_3 - 4.1 4.1 +0.5%
CapsBench.modifyDirect - 2.0 2.0 +0.5%
IsoBench.eoGet - 1.9 1.9 +0.5%
PowerSeriesNestedBench.eoModify_nested size=16 847.3 851.6 +0.5%
OptionalBench.mReplace_loyalty - 3.2 3.3 +0.5%
KyoDiBench.handEnvUse - 38.8 38.6 -0.5%
GenericsBench.genPrismGetHit - 1.2 1.2 -0.5%
OrderAvroBench.naiveModifyStreet size=512 29,917.5 30,057.5 +0.5%
PlatedBench.visitorUniverseExpr n=512 3,429.3 3,413.4 -0.5%
MultiFocusCollectBench.eoCollectMap_constSum - 1.1 1.1 -0.5%
JsoniterBench.cReadStreet size=8 1,998.4 2,007.6 +0.5%
OptionalBench.eoModify_loyalty - 8.7 8.7 -0.5%
MultiFocusBench.eoModify_multiFocus size=32 866.2 862.4 -0.4%
OrderAvroBench.eoModifyNames size=64 2,266.9 2,276.8 +0.4%
GenericsBench.handLensModify - 1.5 1.5 -0.4%
PlatedBench.eoUniverseDeep n=4096 62,249.5 62,507.0 +0.4%
OrderJsoniterBench.eoModifyStreet size=64 354.8 353.3 -0.4%
FoldBench.mFoldMap size=8 10.1 10.2 +0.4%
PlatedBench.visitorUniverseJson n=4096 103,989.7 104,413.2 +0.4%
AvroVulcanBench.decode_native - 8.9 8.9 -0.4%
SetterBench.mModify_orderId - 1.6 1.6 +0.4%
CapsBench.getDerivedHeld - 1.0 1.0 +0.4%
CompositionBench.buildLensOptional3 - 7.7 7.7 -0.4%
PlatedBench.mUniverseJson n=512 215,736.6 216,524.6 +0.4%
FoldBench.mFoldPrices size=8 21.2 21.1 -0.4%
SchemesBench.handCata - 6,845.4 6,821.0 -0.4%
GenericsBench.rawLensGet - 0.3 0.3 -0.4%
JsoniterBench.jMiss size=64 97.5 97.9 +0.4%
AffineFoldBench.eoGetOption_0_asOptional - 1.1 1.1 +0.4%
PowerSeriesBench.eoModify_powerEach size=4096 27,582.6 27,677.1 +0.3%
AvroBytesBench.naivePassthroughPayload - 2,777.8 2,768.7 -0.3%
OrderAvroBench.eoModifyStreet size=64 65.5 65.3 -0.3%
AvroBytesBench.naiveModifyPartner - 1,677.2 1,671.8 -0.3%
OrderAvroBench.eoModifyStreet size=8 65.3 65.1 -0.3%
PrismBench.mRightReverseGet - 1.4 1.4 -0.3%
PrismBench.eoGetRightPresent - 1.3 1.3 +0.3%
ZioDiBench.handDrillModify - 64.8 65.0 +0.3%
JsoniterBench.jReadId size=512 23.1 23.0 -0.3%
SetterBench.mModify_0 - 1.2 1.2 +0.3%
JsoniterBench.jMiss size=512 100.7 100.4 -0.3%
OrderAvroBench.monocleModifyStreet size=64 3,744.8 3,755.1 +0.3%
CapsBench.foldMapCap - 10.4 10.3 -0.3%
TraversalBench.mFoldPrices size=512 15,673.4 15,714.7 +0.3%
PlatedBench.eoUniverseJson n=4096 135,114.7 134,761.3 -0.3%
PlatedBench.eoUniverseDeep n=512 8,313.9 8,292.3 -0.3%
SchemesBench.drosteHylo - 24,794.9 24,731.2 -0.3%
PlatedBench.eoUniverseJson n=512 14,988.6 15,026.9 +0.3%
GenericsBench.genPrismGetMiss - 0.9 0.9 +0.3%
SchemesBench.drosteAna - 22,241.0 22,185.0 -0.3%
SetterBench.eoModify_3 - 6.5 6.5 +0.3%
PrismBench.mGetRightAbsent - 0.9 0.9 +0.2%
OrderJsoniterBench.eoReadStreet size=8 106.3 106.6 +0.2%
OrderJsoniterBench.eoReadStreet size=64 111.6 111.4 -0.2%
AvroVulcanBench.rootGet_bridged - 196.2 195.7 -0.2%
TraversalBench.eoFoldPrices size=512 1,594.8 1,598.7 +0.2%
PowerSeriesBench.eoModify_powerEach size=64 455.8 456.9 +0.2%
PlatedBench.mUniverseJson n=4096 2,753,541.6 2,746,828.4 -0.2%
GenericsBench.genPrismModifyHit - 1.6 1.7 +0.2%
JsoniterBench.cSumPrices size=64 21,938.1 21,990.2 +0.2%
PowerSeriesBench.naive_powerEach size=16 45.6 45.5 -0.2%
LensBench.mModifyDeep - 16.9 16.9 +0.2%
OrderJsoniterBench.nativeReadStreet size=512 18,813.9 18,856.3 +0.2%
SchemesBench.eoHylo - 42,603.1 42,507.2 -0.2%
GenericsBench.rawLensModify - 1.1 1.1 -0.2%
PlatedBench.visitorTransformExpr n=512 4,385.9 4,395.4 +0.2%
PlatedBench.mUniverseExpr n=512 196,280.1 195,857.0 -0.2%
OptionalBench.mReplace_0 - 1.9 1.9 +0.2%
CompositionBench.buildLens1 - 2.6 2.6 +0.2%
PlatedBench.visitorTransformExpr n=4096 34,648.3 34,720.4 +0.2%
ClickRecordBench.encode_positional - 3,050.7 3,057.0 +0.2%
GetterBench.eoGet_6 - 15.5 15.5 -0.2%
KyoDiBench.eoMapGet - 1.2 1.2 -0.2%
FoldBench.mFoldMap size=64 198.2 197.8 -0.2%
PlatedBench.eoUniverseExpr n=64 945.2 947.1 +0.2%
ReviewBench.eoReverseGet_3 - 10.1 10.0 -0.2%
PlatedBench.eoUniverseExpr n=4096 64,689.6 64,813.9 +0.2%
OrderCirceBench.naiveNames size=512 97,072.3 96,888.8 -0.2%
AvroEncodeRouteBench.eo_encodeValue - 318.8 318.2 -0.2%
OptionalBench.mModify_3 - 33.5 33.6 +0.2%
OptionalBench.mModify_6 - 55.5 55.4 -0.2%
OrderCirceBench.monocleNames size=512 114,685.0 114,485.5 -0.2%
AvroJsonBridgeBench.naiveClickToAvro - 823.5 822.1 -0.2%
GenericsBench.genLensModify - 1.8 1.8 +0.2%
SchemesBench.handHylo - 5,724.1 5,714.4 -0.2%
SchemesBench.drosteCata - 21,129.0 21,163.5 +0.2%
IsoBench.mGet - 2.0 2.0 +0.2%
ZioDiBench.handServiceReplace - 58.2 58.3 +0.2%
PlatedBench.visitorTransformDeep n=64 221.0 220.7 -0.2%
CompositionBench.reuseLensOptional3 - 31.0 31.0 +0.2%
MultiFocusBench.naive_sumQty size=1024 2,734.3 2,730.3 -0.1%
MultiFocusBench.eoModify_powerEach size=4 91.4 91.5 +0.1%
JsoniterBench.jReadStreet size=8 109.7 109.5 -0.1%
SetterBench.mModify_3 - 13.7 13.7 -0.1%
PlatedBench.mUniverseExpr n=64 18,162.4 18,187.0 +0.1%
AffineFoldBench.eoGetOption_6 - 14.5 14.5 -0.1%
PlatedBench.visitorUniverseExpr n=64 411.6 411.1 -0.1%
OrderAvroBench.naiveReadStreet size=8 245.9 246.2 +0.1%
AffineFoldBench.mGetOption_3 - 4.8 4.8 -0.1%
SchemesBench.handAna - 10,011.2 9,999.3 -0.1%
MultiFocusBench.eoFold_powerEach size=32 196.1 195.9 -0.1%
OptionalBench.eoReplace_0 - 2.3 2.4 +0.1%
OrderAvroBench.monocleModifyNames size=512 55,104.6 55,167.5 +0.1%
GenericsBench.handPrismGetHit - 1.1 1.1 +0.1%
MultiFocusCollectBench.naive_tuple6Rewrite - 7.1 7.1 -0.1%
AffineFoldBench.mGetOption_0 - 0.4 0.4 +0.1%
PowerSeriesBench.monocle_powerEach size=4 118.5 118.4 -0.1%
JsoniterBench.jReadStreet size=64 110.2 110.1 -0.1%
OrderCirceBench.eoNames size=512 107,142.3 107,042.2 -0.1%
CompositionBench.buildLens6 - 14.7 14.7 +0.1%
OptionalBench.eoModify_0_empty - 0.6 0.6 -0.1%
MultiFocusCollectBench.naive_zipMeanBroadcast - 81.0 81.1 +0.1%
OrderJsoniterBench.naiveModifyStreet size=64 10,876.6 10,885.8 +0.1%
AvroVulcanBench.encode_vulcanRaw - 119.5 119.4 -0.1%
CompositionBench.reuseLens3 - 23.1 23.2 +0.1%
OrderAvroBench.monocleReadStreet size=512 17,746.1 17,760.1 +0.1%
OrderJsoniterBench.monocleReadStreet size=8 987.0 986.2 -0.1%
OrderCirceBench.hcursorStreet size=64 534.2 534.6 +0.1%
OrderJsoniterBench.nativeReadStreet size=64 2,438.0 2,439.5 +0.1%
FoldBench.eoFoldMap size=8 10.2 10.2 -0.1%
PlatedBench.mTransformExpr n=4096 85,413.5 85,363.8 -0.1%
GetterBench.mGet_orderId - 0.2 0.2 +0.1%
JsoniterBench.jModifyId size=512 1,774.2 1,773.3 -0.1%
JsoniterBench.jSumPrices size=8 742.9 743.2 +0.0%
ZioDiBench.eoServiceGet - 2.3 2.3 -0.0%
OrderCirceBench.directNames size=512 110,247.9 110,297.3 +0.0%
ZioDiBench.handDrillGet - 8.0 8.0 -0.0%
PowerSeriesNestedBench.monocle_nested size=1024 115,618.1 115,571.6 -0.0%
LensBench.mModify - 2.2 2.2 -0.0%
AvroJsonBridgeBench.naiveWideToAvro - 561.1 560.9 -0.0%
OrderJsoniterBench.monocleModifyStreet size=512 89,097.3 89,068.3 -0.0%
FoldBench.eoFoldPrices size=8 28.6 28.6 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=2048 12,778.7 12,781.4 +0.0%
MultiFocusCollectBench.naive_constSum - 0.9 0.9 +0.0%
GetterBench.eoGet_3 - 8.1 8.1 -0.0%
PrismBench.mGetRightPresent - 1.4 1.4 +0.0%
OrderCirceBench.naiveStreet size=64 11,612.5 11,613.1 +0.0%
TraversalBench.eoModify size=8 48.8 48.8 +0.0%

base_sha: 188f10bd35c7a67fb18eaf4378398f98ec7c783e · head_sha: 47f06960d363786dad3a25b4f543c738730157eb · jdk: temurin-21 · runner: ubuntu-22.04 · jmh_params: -i 3 -wi 2 -f 1 -t 1 -foe true -prof gc -rf json -jvmArgsAppend -XX:-ResizeTLAB -jvmArgsAppend -Xms1g -jvmArgsAppend -Xmx1g · profile: pr:-i3-wi2-f1-t1-gc-rt1g

@kryptt
kryptt merged commit 6e53b85 into main Oct 1, 2026
16 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant