Skip to content

feat(core): express grate constancy in the bundle, on top of #127 - #129

Open
kryptt wants to merge 1 commit into
mainfrom
spike/grate-broadcast-sum
Open

kryptt wants to merge 1 commit into
mainfrom
spike/grate-broadcast-sum

Conversation

@kryptt

@kryptt kryptt commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

What

MultiFocus[Function1[X0, *]] (the Grate carrier) gets the constancy its types did not express, on top of #127's optic-class answer. Three pieces, and one deletion:

  1. The focus half is a sum — F[A] | Broadcast[F, A], both cases private[eo]. MultiFocus.broadcast / .broadcast are the public handles; .foci stays total for both (the index-free case carries its F[A] image), so existing consumers are unchanged. Constancy becomes a property of the data, so it survives map / collectWith / andThen.
  2. The kernel's remaining cases — a composite inner is written per position with the leftover its own read produced (upstream forges it, so a fromLensF inner NPEs), and a tabulating ∘ tabulating composite writes the exact inverse of its diagonal read. The latter needs C =:= D, which is a property of the optic, so it rides on the optic as the new Optic.SameFocus witness (mixed into every andThen composite from that call site's summonFrom, and into the monomorphic factories). AssociativeFunctor has zero diff.
  3. unobserved is deleted — no write needs a stand-in. The bridge takes a RepresentativeIndex (feat(core): supply the Grate bridge's index — the read stops being forged #127), the kernel records the inner leftovers it observed, and the collapsing collectList now hands the write the leftover its own read produced.

Why — measured against 5267135

case main this branch
tuple ∘ tuple.modify(identity)(((1,2),(3,4))) ((1,4),(1,4)) (MF1 fails) ((1,2),(3,4))
tuple ∘ tuple.replace(9) ((9,9),(9,9)) ((9,2),(3,9))
tuple ∘ (shim ∘ shim).modify(_+1)((1,2)) (2,2) (2,3)
fromLensF inner whose write reads its leftover NullPointerException in GetReplaceLens.from correct pair
collectList on Lens / Prism / Optional provenances NullPointerException / MatchError: null List(agg(foci))

The probes were throwaway printing specs (removed again); every row is now pinned by the specs below rather than by a probe.

Tests

  • core/…/MultiFocusFunction1CompositionSpec — 13 blocks: positional grate ∘ iso, left- and right-associated composites, fromLensF inners, the tabulating ∘ tabulating laws, the documented type-changing fallback, associativity.
  • tests/…/MultiFocusCrossFamilySpec — 17 blocks, the runtime twin of CompositionMatrixSpec: every inbound provenance (generic factory, polymorphic factory, Iso/Lens/Prism/Optional bridges, a composite of two shipped optics) through modify / replace / collectMap / collectWith / collectList / foldMap / headOption / length; both composition directions across the families with independently computed expectations; the outbound direction into ModifyF (per provenance, writes matching the source) and the Forget[List] escape over a Fold.
  • core/src/test/…/external/EoOpaqueSurfaceSpec — the public surface from outside the eo package tree (the opaque sum neither leaks nor breaks inlining downstream).
  • Upstream's MultiFocusFunction1Spec is unchanged and passes verbatim against this kernel (14 examples / 349 expectations).

Impact and compatibility

  • Erased descriptors do not change (the carrier is still a Tuple2); AssociativeFunctor is untouched.
  • Code compiled against an earlier 0.x that inlined .foci / .context / apply must be recompiled (those bodies changed), and mfAssocFunction1.Z is no longer Unit. Source-compatible for callers; MiMa is off on the 0.x line.
  • This PR includes a rename — pair → mf for parameters typed as a carrier (7 files). It necessarily reaches five files upstream also owns (optics/Traversal.scala, optics/TraversalArityMacro.scala, jsoniter/JsoniterTraversal.scala, circe/…/CrossCarrierCompositionSpec.scala, tests/…/OpticsBehaviorSpec.scala); happy to split it into its own commit/PR on request.
  • No defensible JMH number from the authoring environment (the untouched Monocle control swung −30 %…+19 % between back-to-back runs); the research note records that and the structural arguments instead.

Review history worth knowing

Three review rounds changed the design, all reflected here: the same-focus write moved off the composition algebra onto the optic (Optic.SameFocus, mirroring upstream's own witness idiom); the kernel's write path was flattened to three named cases plus one documented helper; and unobserved was removed by fixing its three sites at the source. The measured drawbacks of that last fix (a composite's context is count-coupled, so the collapsing aggregate is only asserted for count-agnostic provenances) are named in MultiFocusCrossFamilySpec and in the note.

Gates (sbt 1.13.0, JDK 25 Temurin)

root test 237 examples / 0 failures · core/test 33 specs · the two new sweeps (13 + 17 blocks) · scalafmtCheckAll · scalafixAll --check · scalafmtSbtCheck · benchmarks/scalafmtCheck · mimaReportBinaryIssues · githubWorkflowCheck · docs/mdoc 0 errors · docs/laikaSite · core/doc.

Residual value

What is left over 52671355, the measurement caveats and the recommendation (harvest the three correctness items into upstream's kernel; keep the sum only if .broadcast is wanted as public API) are recorded in docs/research/2026-09-30-grate-broadcast-constancy.md.

Rebased onto `52671355` (the optic-class answer: `Z = Xo`,
`Function1BroadcastOptic`, `RepresentativeIndex`, the positional write).
That commit and this one answer different questions, and this rebase keeps
upstream's machinery — and upstream's *idiom* — wherever it is better:

- **kept** `Function1BroadcastOptic` as the kernel's per-index write hook
  (one value per position, no bundle read it did not build) and the
  bridge's `RepresentativeIndex[X0]` witness;
- **added** the sum: the focus half is `F[A] | Broadcast[F, A]` (both cases
  `private[eo]`), with `MultiFocus.broadcast` / `.broadcast` as the public
  handles and `.foci` total for both (the index-free case carries its `F[A]`
  image);
- **added** the kernel's remaining cases: a composite inner is written per
  position with the leftover *its own* read produced (upstream forges it, so
  a `fromLensF` inner NPEs), and a tabulating ∘ tabulating composite writes
  the exact inverse of its diagonal read. That last one needs `C =:= D`,
  which is a property of the *optic* — so it rides on the optic as
  `Optic.SameFocus` (mixed into every `andThen` composite from the call
  site's `summonFrom`, and into the monomorphic factories
  `representable` / `tuple` / `apply` with `Some(…)`), and the kernel reads
  it off the `inner` it is already handed. `AssociativeFunctor` and the
  composition algebra are untouched (zero diff vs upstream).
- **deleted `unobserved`** — no write needs a stand-in any more. Its three
  historical sites are fixed at the source: the kernel records the inner
  leftovers its read observed, the bridge takes a real index witness, and
  the shape-collapsing `collectList` now hands the write the leftover its
  own read produced (`o.from((bundle.context, List(agg(bundle.foci))))`),
  which fixes a live NPE / `MatchError` on Lens / Prism / Optional
  provenances (probed before the fix).

New coverage: `tests/.../MultiFocusCrossFamilySpec.scala` is the runtime
twin of `CompositionMatrixSpec` — nine property blocks over every inbound
provenance (generic factory, polymorphic factory, Iso/Lens/Prism/Optional
bridges, a composite of two shipped optics) through `modify` / `replace` /
`collectMap` / `collectWith` / `collectList` / `foldMap` / `headOption` /
`length`, plus both composition directions across Iso / Lens / Prism /
Optional with independently computed expectations. The collapsing
aggregate is asserted only where the optic's leftover is count-agnostic; a
composite's is the one named boundary (see the note).

Measured against `52671355` (throwaway printing spec, removed again):
`tuple ∘ tuple.modify(identity)` on `((1,2),(3,4))` → `((1,4),(1,4))` there,
identity here; `replace(9)` → `((9,9),(9,9))` there, `((9,2),(3,9))` here;
`tuple ∘ (shim ∘ shim).modify(_+1)` on `(1,2)` → `(2,2)` there, `(2,3)`
here; a `fromLensF` inner NPEs there; `collectList` NPEs / MatchErrors there
and works here.

Upstream's own `MultiFocusFunction1Spec` is kept verbatim (14 examples /
349 expectations) and passes against this kernel; this branch's core
`MultiFocusFunction1CompositionSpec` adds 13 blocks / 1003 expectations and
`external/EoOpaqueSurfaceSpec` pins the public surface from outside the
`eo` package tree. Gates (sbt 1.13.0, JDK 25): root `test` 237 examples /
0 failures, `scalafmtCheckAll`, `scalafixAll --check`, `scalafmtSbtCheck`,
`benchmarks/scalafmtCheck`, `mimaReportBinaryIssues`, `githubWorkflowCheck`,
`docs/mdoc` 0 errors, `docs/laikaSite`, `core/doc`.
@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

🚀 Cloudflare Pages preview for spike/grate-broadcast-sum is live:

https://64847cb7.cats-eo-docs.pages.dev

Branch alias: https://spike-grate-broadcast-sum.cats-eo-docs.pages.dev

Built from commit bd70359d2fa4088bed0e296315d245f6c8c7d53d · updated on every push.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Benchmark A/B

Allocation (B/op) — authoritative

Benchmark params base head Δ
OrderJsoniterBench.eoReadStreet size=512 128.2 72.2 -43.7%
JsoniterBench.jReadId size=64 72.0 48.0 -33.3%
TraversalBench.eoFoldNested size=8 424.0 328.0 -22.6%
OrderAvroBench.eoModifyNames size=64 14,152.1 12,616.1 -10.9%
MultiFocusBench.eoFold_powerEach size=4 328.0 304.0 -7.3%
ZioDiBench.eoDrillGet - 0.0 0.0 +6.1%
JsoniterBench.jMiss size=64 0.0 0.0 +4.6%
JsoniterBench.jMiss size=8 0.0 0.0 +4.4%
MultiFocusBench.eoModify_multiFocus size=4 1,320.0 1,368.0 +3.6%
GenericsBench.handLensGet - 0.0 0.0 +2.9%
MultiFocusBench.eoFold_powerEach size=32 920.0 896.0 -2.6%
PowerSeriesNestedBench.eoModify_nested size=16 4,792.0 4,672.0 -2.5%
JsoniterBench.jReplaceId size=8 960.0 936.0 -2.5%
JsoniterBench.jModifyId size=8 968.0 992.0 +2.5%
AffineFoldBench.eoGetOption_0_empty - 0.0 0.0 +2.0%
OrderCirceBench.hcursorNames size=512 613,939.1 601,623.8 -2.0%
LensBench.eoGet - 0.0 0.0 -2.0%
AvroJsonBridgeBench.eoClickToJson - 4,032.0 3,952.0 -2.0%
OrderCirceBench.eoNamesIor size=64 85,927.9 87,498.6 +1.8%
FoldBench.eoFoldMap size=8 0.0 0.0 +1.8%
442 more benchmarks
Benchmark params base head Δ
GetterBench.eoGet_0 - 0.0 0.0 +1.8%
AvroBytesBench.eoModifyCountry - 944.0 928.0 -1.7%
AffineFoldBench.mGetOption_6 - 0.0 0.0 +1.7%
CapsBench.getDirect - 0.0 0.0 +1.7%
GetterBench.eoGet_orderId - 0.0 0.0 -1.6%
GetterBench.mGet_6 - 0.0 0.0 +1.5%
CapsBench.getDeepCap - 0.0 0.0 -1.4%
PowerSeriesNestedBench.eoModify_nested size=64 14,752.5 14,544.4 -1.4%
CapsBench.getCap - 0.0 0.0 +1.3%
AffineFoldBench.eoGetOption_loyalty - 0.0 0.0 -1.2%
GenericsBench.genLensGet - 0.0 0.0 +1.2%
GetterBench.mGet_orderId - 0.0 0.0 -1.0%
MultiFocusCollectBench.eoCollectMap_constSum - 0.0 0.0 -1.0%
MultiFocusBench.naive_sumQty size=4 0.0 0.0 +0.9%
KyoDiBench.eoMapGet - 0.0 0.0 +0.8%
AffineFoldBench.mGetOption_0_empty - 0.0 0.0 -0.8%
PrismBench.eoGetOptionPresent - 0.0 0.0 -0.8%
GetterBench.mGet_0 - 0.0 0.0 -0.8%
OrderJsoniterBench.monocleSumPrices size=512 1,187,597.7 1,178,388.2 -0.8%
JsoniterBench.jMiss size=512 0.0 0.0 -0.8%
OptionalBench.mModify_0_empty - 0.0 0.0 +0.8%
GenericsBench.handPrismGetMiss - 0.0 0.0 +0.7%
AffineFoldBench.mGetOption_3 - 0.0 0.0 +0.7%
GenericsBench.genPrismGetMiss - 0.0 0.0 -0.7%
SchemesBench.handHylo - 0.1 0.1 +0.7%
GenericsBench.rawLensGet - 0.0 0.0 +0.6%
SchemesBench.handCata - 0.1 0.1 +0.6%
MultiFocusBench.eoModify_multiFocus size=32 8,600.0 8,648.0 +0.6%
PowerSeriesNestedBench.monocle_nested size=16 15,776.1 15,696.1 -0.5%
AffineFoldBench.eoGetOption_loyalty_empty - 0.0 0.0 -0.4%
AffineFoldBench.mGetOption_loyalty - 0.0 0.0 +0.4%
PrismBench.mGetRightAbsent - 0.0 0.0 -0.4%
AffineFoldBench.mGetOption_loyalty_empty - 0.0 0.0 +0.4%
PrismBench.eoGetRightAbsent - 0.0 0.0 +0.4%
OptionalBench.eoModify_0_empty - 0.0 0.0 -0.4%
OptionalBench.eoModify_loyalty_empty - 0.0 0.0 -0.3%
CapsBench.foldMapDirect - 0.0 0.0 +0.3%
CapsBench.foldMapDerivedHeld - 0.0 0.0 +0.3%
GetterBench.mGet_3 - 0.0 0.0 -0.3%
GenericsBench.genPrismModifyMiss - 0.0 0.0 -0.3%
CapsBench.getDeepDirect - 0.0 0.0 -0.3%
PrismBench.mGetOptionAbsent - 0.0 0.0 -0.3%
MultiFocusBench.eoFold_powerEach size=256 9,240.2 9,216.2 -0.3%
CapsBench.foldMapDerivedPerCall - 0.0 0.0 +0.2%
CapsBench.getDerivedPerCall - 0.0 0.0 +0.2%
PrismBench.eoGetOptionAbsent - 0.0 0.0 +0.2%
AffineFoldBench.eoGetOption_0 - 0.0 0.0 +0.2%
LensBench.mGet - 0.0 0.0 +0.2%
AffineFoldBench.mGetOption_0 - 0.0 0.0 -0.2%
FoldBench.mFoldMap size=8 0.0 0.0 -0.2%
GetterBench.eoGet_3 - 0.0 0.0 -0.2%
PowerSeriesNestedBench.eoModify_nested size=256 53,673.5 53,745.6 +0.1%
OptionalBench.mModify_loyalty_empty - 0.0 0.0 -0.1%
CapsBench.foldMapCap - 0.0 0.0 -0.1%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.0 0.0 +0.1%
OrderAvroBench.monocleModifyStreet size=64 20,904.2 20,880.2 -0.1%
GetterBench.eoGet_6 - 0.0 0.0 -0.1%
PrismBench.mGetOptionPresent - 0.0 0.0 -0.1%
JsoniterBench.cSumPrices size=8 22,720.0 22,696.0 -0.1%
GenericsBench.handPrismModifyMiss - 0.0 0.0 -0.1%
OrderCirceBench.naiveStreet size=8 17,056.0 17,040.0 -0.1%
OrderAvroBench.monocleModifyNames size=64 39,832.3 39,864.3 +0.1%
KyoDiBench.handMapGet - 0.0 0.0 -0.1%
ZioDiBench.eoServiceGet - 0.0 0.0 -0.1%
OrderJsoniterBench.nativeReadStreet size=512 450.6 451.0 +0.1%
PowerSeriesNestedBench.eoModify_nested size=1024 210,591.2 210,445.3 -0.1%
MultiFocusBench.eoModify_multiFocus size=256 76,112.7 76,160.7 +0.1%
MultiFocusBench.eoFold_powerEach size=1024 43,035.4 43,011.4 -0.1%
OrderJsoniterBench.nativeSumPrices size=512 86,339.5 86,293.8 -0.1%
OrderJsoniterBench.monocleSumPrices size=64 45,840.4 45,817.3 -0.1%
CapsBench.getDerivedHeld - 0.0 0.0 -0.0%
OrderJsoniterBench.monocleModifyStreet size=512 333,563.1 333,436.5 -0.0%
OrderJsoniterBench.nativeSumPrices size=8 1,512.7 1,513.2 +0.0%
OrderJsoniterBench.naiveModifyStreet size=512 333,436.0 333,540.6 +0.0%
OrderCirceBench.monocleStreet size=64 113,794.5 113,826.8 +0.0%
OrderCirceBench.eoStreetIor size=8 2,736.7 2,736.0 -0.0%
OrderCirceBench.eoStreetIor size=64 2,736.1 2,736.8 +0.0%
OrderCirceBench.eoStreet size=64 2,720.1 2,720.8 +0.0%
OrderCirceBench.monocleNames size=64 132,754.7 132,785.9 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=2048 104,702.6 104,679.0 -0.0%
MultiFocusBench.eoModify_multiFocus size=1024 331,088.9 331,159.8 +0.0%
PowerSeriesBench.monocle_powerEach size=256 107,354.5 107,332.4 -0.0%
OrderCirceBench.eoStreetIor size=512 2,737.9 2,737.4 -0.0%
JsoniterBench.cReplaceId size=64 136,199.5 136,223.3 +0.0%
OrderCirceBench.naiveStreet size=64 113,788.1 113,803.6 +0.0%
OrderCirceBench.naiveNames size=64 120,845.7 120,829.4 -0.0%
JsoniterBench.cSumPrices size=64 156,614.4 156,600.5 -0.0%
OrderJsoniterBench.nativeSumPrices size=64 10,931.9 10,931.3 -0.0%
JsoniterBench.jSumPrices size=512 63,637.0 63,639.5 +0.0%
OrderJsoniterBench.nativeReadStreet size=64 424.4 424.4 +0.0%
OrderCirceBench.hcursorNames size=64 77,798.3 77,800.2 +0.0%
JsoniterBench.jReadStreet size=512 128.0 128.0 +0.0%
JsoniterBench.cReplaceId size=512 1,066,655.5 1,066,674.4 +0.0%
PlatedBench.mUniverseExpr n=4096 4,687,446.9 4,687,527.2 +0.0%
PowerSeriesPrismBench.monocle_sparse size=32 7,040.1 7,040.0 -0.0%
OrderCirceBench.monocleNames size=512 1,121,725.4 1,121,741.0 +0.0%
OrderCirceBench.eoNames size=512 613,978.2 613,984.2 +0.0%
OrderCirceBench.eoNamesIor size=512 683,489.5 683,496.0 +0.0%
OrderAvroBench.naiveReadStreet size=512 69,787.1 69,787.8 +0.0%
PlatedBench.mUniverseJson n=4096 6,489,440.4 6,489,380.9 -0.0%
JsoniterBench.cSumPrices size=512 1,240,740.7 1,240,729.3 -0.0%
PowerSeriesPrismBench.naive_sparse size=2048 24,611.9 24,611.8 -0.0%
JsoniterBench.jReadId size=512 72.0 72.0 -0.0%
OrderAvroBench.naiveModifyStreet size=512 169,058.6 169,059.7 +0.0%
OrderCirceBench.directStreet size=512 2,752.6 2,752.6 -0.0%
PlatedBench.eoUniverseJson n=4096 786,441.8 786,437.1 -0.0%
OrderCirceBench.eoStreet size=8 2,720.7 2,720.7 -0.0%
PowerSeriesNestedBench.naive_nested size=1024 115,069.1 115,068.4 -0.0%
PowerSeriesNestedBench.monocle_nested size=1024 1,118,752.0 1,118,746.2 -0.0%
OrderJsoniterBench.monocleReadStreet size=512 193,213.6 193,214.6 +0.0%
OrderCirceBench.directNames size=64 77,711.0 77,711.3 +0.0%
OrderJsoniterBench.monocleModifyStreet size=64 30,081.6 30,081.4 -0.0%
OrderJsoniterBench.naiveSumPrices size=512 230,106.3 230,105.3 -0.0%
OrderCirceBench.eoStreet size=512 2,721.4 2,721.4 -0.0%
OrderJsoniterBench.eoReadStreet size=64 128.0 128.0 +0.0%
PowerSeriesBench.monocle_powerEach size=4096 967,782.2 967,778.2 -0.0%
JsoniterBench.cModifyId size=64 136,272.1 136,271.6 -0.0%
OrderAvroBench.monocleModifyStreet size=512 169,078.5 169,077.9 -0.0%
PlatedBench.mUniverseJson n=512 699,913.9 699,916.6 +0.0%
JsoniterBench.cModifyId size=512 1,066,726.6 1,066,722.7 -0.0%
OrderJsoniterBench.eoSumPrices size=64 8,121.0 8,121.0 +0.0%
PowerSeriesBench.monocle_powerEach size=4 1,176.0 1,176.0 -0.0%
PlatedBench.visitorUniverseJson n=4096 294,982.6 294,983.6 +0.0%
OrderJsoniterBench.eoSumPrices size=512 63,680.5 63,680.2 -0.0%
JsoniterBench.cReadId size=64 101,301.3 101,300.9 -0.0%
PlatedBench.visitorTransformExpr n=4096 360,463.4 360,462.2 -0.0%
PowerSeriesBench.naive_powerEach size=4096 114,778.2 114,778.5 +0.0%
OrderAvroBench.monocleReadStreet size=512 69,787.7 69,787.9 +0.0%
PlatedBench.eoTransformDeep n=4096 624,367.3 624,368.9 +0.0%
OrderCirceBench.naiveStreet size=512 907,993.6 907,991.8 -0.0%
PowerSeriesBench.eoModify_powerEach size=4096 164,360.6 164,360.9 +0.0%
OrderAvroBench.eoModifyNames size=512 97,422.1 97,421.9 -0.0%
FoldBench.mFoldPrices size=512 12,312.3 12,312.3 -0.0%
PowerSeriesPrismBench.naive_sparse size=512 6,176.3 6,176.3 -0.0%
OrderJsoniterBench.eoModifyStreet size=512 42,026.7 42,026.8 +0.0%
OrderCirceBench.eoNames size=64 79,298.3 79,298.4 +0.0%
JsoniterBench.cReplaceId size=8 20,667.1 20,667.1 -0.0%
TraversalBench.mModify size=512 176,894.5 176,894.8 +0.0%
OrderAvroBench.eoReadStreet size=512 88.0 88.0 -0.0%
MultiFocusBench.naive_sumQty size=1024 16,128.9 16,129.0 +0.0%
OrderAvroBench.naiveModifyNames size=512 226,292.2 226,292.0 -0.0%
TraversalBench.eoModify size=512 36,897.1 36,897.1 -0.0%
OrderAvroBench.monocleModifyNames size=512 382,753.1 382,753.4 +0.0%
PowerSeriesPrismBench.monocle_sparse size=512 166,688.3 166,688.4 +0.0%
OrderCirceBench.naiveNames size=512 965,232.4 965,233.1 +0.0%
PowerSeriesBench.eoModify_powerEach size=1024 41,413.1 41,413.1 +0.0%
PlatedBench.visitorUniverseDeep n=4096 196,698.1 196,697.9 -0.0%
MultiFocusBench.naive_sumQty size=256 3,840.1 3,840.0 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=512 24,785.4 24,785.4 -0.0%
TraversalBench.eoFoldNested size=512 20,200.7 20,200.7 +0.0%
MultiFocusBench.naive_listMap size=1024 65,578.1 65,578.1 +0.0%
JsoniterBench.cReadStreet size=512 797,917.8 797,917.4 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=128 4,816.1 4,816.1 +0.0%
OrderAvroBench.eoModifyStreet size=512 328.0 328.0 -0.0%
JsoniterBench.cReadStreet size=64 101,300.9 101,300.9 +0.0%
OrderJsoniterBench.naiveModifyStreet size=64 30,057.6 30,057.6 -0.0%
KyoDiBench.handVarUpdate - 200.0 200.0 -0.0%
OrderCirceBench.directNames size=512 601,625.4 601,625.7 +0.0%
MultiFocusBench.eoModify_powerEach size=1024 115,175.8 115,175.7 -0.0%
JsoniterBench.jReadStreet size=8 128.0 128.0 -0.0%
OrderCirceBench.directStreet size=64 2,728.1 2,728.1 +0.0%
PlatedBench.visitorUniverseExpr n=512 24,584.6 24,584.6 -0.0%
PlatedBench.mUniverseJson n=64 73,208.3 73,208.3 -0.0%
TraversalBench.eoFoldPrices size=512 12,312.3 12,312.3 +0.0%
PlatedBench.eoUniverseExpr n=4096 786,382.6 786,382.8 +0.0%
PowerSeriesPrismBench.monocle_sparse size=2048 523,120.6 523,120.5 -0.0%
OrderJsoniterBench.nativeReadStreet size=8 424.0 424.0 +0.0%
OrderAvroBench.eoReadStreet size=64 88.0 88.0 -0.0%
JsoniterBench.cModifyId size=8 20,691.2 20,691.2 -0.0%
PowerSeriesPrismBench.eoModify_sparse size=32 1,360.0 1,360.0 +0.0%
OrderJsoniterBench.naiveReadStreet size=64 24,704.9 24,704.9 +0.0%
JsoniterBench.jReadStreet size=64 128.0 128.0 +0.0%
MultiFocusBench.eoModify_powerEach size=256 26,080.5 26,080.5 +0.0%
FoldBench.mFoldMap size=512 7,936.2 7,936.2 +0.0%
JsoniterBench.jReadId size=8 72.0 72.0 +0.0%
OrderJsoniterBench.naiveReadStreet size=512 193,214.8 193,214.8 +0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 128.0 128.0 +0.0%
OrderAvroBench.eoModifyStreet size=64 328.0 328.0 -0.0%
OrderCirceBench.hcursorStreet size=512 3,032.6 3,032.6 -0.0%
PowerSeriesNestedBench.naive_nested size=64 7,512.1 7,512.1 +0.0%
OrderJsoniterBench.monocleReadStreet size=64 24,704.9 24,704.9 -0.0%
PlatedBench.eoUniverseExpr n=64 12,168.0 12,168.0 -0.0%
PowerSeriesBench.eoModify_powerEach size=256 10,688.4 10,688.4 -0.0%
AvroBytesBench.naiveModifyPartner - 8,696.0 8,696.0 -0.0%
AvroBytesBench.naiveReadPartner - 5,424.0 5,424.0 -0.0%
PowerSeriesBench.naive_powerEach size=1024 28,730.6 28,730.6 +0.0%
OrderCirceBench.eoNames size=8 10,944.1 10,944.1 -0.0%
PlatedBench.eoTransformDeep n=64 7,184.0 7,184.0 -0.0%
PowerSeriesBench.eoModify_powerEach size=64 3,008.0 3,008.0 +0.0%
OrderJsoniterBench.naiveReadStreet size=8 3,648.0 3,648.0 -0.0%
PlatedBench.eoTransformExpr n=4096 655,338.3 655,338.2 -0.0%
OrderJsoniterBench.naiveSumPrices size=8 4,248.0 4,248.0 +0.0%
PlatedBench.mTransformExpr n=4096 753,713.6 753,713.7 +0.0%
PlatedBench.eoUniverseExpr n=512 98,185.3 98,185.3 -0.0%
FoldBench.eoFoldMap size=512 7,936.2 7,936.2 -0.0%
AvroVulcanBench.encode_native - 56.0 56.0 +0.0%
AvroBytesBench.naiveModifyCountry - 7,616.0 7,616.0 -0.0%
PlatedBench.mTransformExpr n=512 69,585.3 69,585.3 +0.0%
OrderCirceBench.hcursorNames size=8 10,768.1 10,768.1 +0.0%
MultiFocusBench.eoModify_powerEach size=32 3,152.0 3,152.0 +0.0%
ClickRecordBench.encode_derived - 744.0 744.0 +0.0%
JsoniterBench.jSumPrices size=64 8,120.2 8,120.2 +0.0%
ClickRecordBench.encode_derivedThroughPrism - 744.0 744.0 -0.0%
PlatedBench.eoTransformExpr n=512 81,825.4 81,825.3 -0.0%
MultiFocusCollectBench.eoCollectList_listSum - 56.0 56.0 +0.0%
OrderAvroBench.monocleReadStreet size=64 8,848.1 8,848.1 +0.0%
PlatedBench.visitorUniverseJson n=512 40,954.2 40,954.2 -0.0%
JsoniterBench.jModifyId size=64 5,328.0 5,328.0 +0.0%
PlatedBench.visitorTransformDeep n=512 20,496.4 20,496.4 -0.0%
AvroEncodeRouteBench.naive_freshPlumbing - 2,624.0 2,624.0 +0.0%
OrderCirceBench.hcursorStreet size=8 3,032.0 3,032.0 -0.0%
AvroVulcanBench.decode_bridged - 832.0 832.0 -0.0%
AvroDecodeReuseBench.confluentRecordReaderFresh - 3,696.0 3,696.0 +0.0%
SchemesBench.eoCata - 197,568.4 197,568.4 -0.0%
PlatedBench.eoUniverseJson n=512 98,186.1 98,186.1 +0.0%
OrderCirceBench.eoNamesIor size=8 11,576.1 11,576.1 -0.0%
PlatedBench.mUniverseExpr n=64 45,424.3 45,424.3 -0.0%
PowerSeriesNestedBench.naive_nested size=256 29,019.2 29,019.2 +0.0%
AvroBytesBench.eoReadPartner - 480.0 480.0 -0.0%
AvroJsonBridgeBench.naiveClickToJson - 5,856.0 5,856.0 -0.0%
PlatedBench.eoUniverseDeep n=4096 786,579.7 786,579.7 -0.0%
AvroEncodeRouteBench.eo_encodeValue - 568.0 568.0 -0.0%
PowerSeriesNestedBench.monocle_nested size=256 430,189.1 430,189.0 -0.0%
OrderCirceBench.directNames size=8 10,688.1 10,688.1 +0.0%
PlatedBench.visitorUniverseDeep n=64 3,128.0 3,128.0 -0.0%
JsoniterBench.cReadId size=512 797,917.4 797,917.4 +0.0%
PowerSeriesBench.monocle_powerEach size=1024 279,427.3 279,427.3 -0.0%
AvroBytesBench.eoReadCountry - 520.0 520.0 +0.0%
PlatedBench.visitorUniverseDeep n=512 24,632.6 24,632.6 +0.0%
PowerSeriesNestedBench.monocle_nested size=4 5,568.0 5,568.0 -0.0%
TraversalBench.mFoldPrices size=512 162,563.9 162,563.9 +0.0%
AvroBytesBench.eoModifyPartner - 984.0 984.0 +0.0%
TraversalBench.mFoldPrices size=8 2,000.0 2,000.0 +0.0%
OrderJsoniterBench.eoSumPrices size=8 1,176.0 1,176.0 +0.0%
JsoniterBench.jReplaceId size=512 41,888.8 41,888.8 +0.0%
OrderAvroBench.monocleReadStreet size=8 1,208.0 1,208.0 -0.0%
JsoniterBench.jModifyId size=512 41,920.8 41,920.8 -0.0%
OrderJsoniterBench.monocleModifyStreet size=8 4,664.1 4,664.1 +0.0%
PlatedBench.visitorUniverseExpr n=4096 196,648.3 196,648.3 +0.0%
OrderAvroBench.monocleModifyStreet size=8 2,992.0 2,992.0 -0.0%
PowerSeriesBench.naive_powerEach size=256 7,224.2 7,224.2 -0.0%
AvroBytesBench.prunedReadCountry - 1,976.0 1,976.0 +0.0%
OrderAvroBench.naiveModifyNames size=64 27,936.2 27,936.2 +0.0%
OrderCirceBench.monocleStreet size=512 907,992.0 907,992.1 +0.0%
PlatedBench.eoTransformDeep n=512 57,361.1 57,361.1 -0.0%
AvroJsonBridgeBench.naiveClickToAvro - 3,928.0 3,928.0 -0.0%
PowerSeriesNestedBench.naive_nested size=16 2,136.0 2,136.0 +0.0%
PlatedBench.eoUniverseJson n=64 12,168.0 12,168.0 -0.0%
MultiFocusBench.naive_listMap size=256 16,424.1 16,424.1 +0.0%
PlatedBench.eoUniverseDeep n=512 98,377.3 98,377.3 +0.0%
OrderJsoniterBench.naiveModifyStreet size=8 4,640.1 4,640.1 -0.0%
AvroJsonBridgeBench.eoWideToJson - 1,472.0 1,472.0 +0.0%
SchemesBench.eoHylo - 295,848.5 295,848.5 -0.0%
AvroJsonBridgeBench.naiveWideToJson - 4,376.0 4,376.0 -0.0%
PlatedBench.visitorTransformDeep n=64 2,576.0 2,576.0 +0.0%
FoldBench.eoFoldMap size=64 768.0 768.0 +0.0%
PowerSeriesNestedBench.monocle_nested size=64 58,832.8 58,832.8 +0.0%
AvroBytesBench.naiveReadCountry - 4,256.0 4,256.0 +0.0%
PowerSeriesPrismBench.naive_sparse size=128 1,568.0 1,568.0 -0.0%
OptionalBench.eoReplace_0 - 40.0 40.0 -0.0%
PowerSeriesBench.naive_powerEach size=64 1,848.0 1,848.0 +0.0%
AvroJsonBridgeBench.naiveWideToAvro - 3,504.0 3,504.0 -0.0%
PlatedBench.visitorTransformDeep n=4096 163,882.5 163,882.5 -0.0%
OrderJsoniterBench.eoReadStreet size=8 128.0 128.0 -0.0%
OrderAvroBench.monocleModifyNames size=8 5,400.0 5,400.0 -0.0%
PowerSeriesPrismBench.monocle_sparse size=128 27,808.2 27,808.2 +0.0%
JsoniterBench.jReplaceId size=64 5,296.0 5,296.0 -0.0%
AvroEncodeRouteBench.handwritten_stream - 240.0 240.0 -0.0%
AvroBytesBench.naivePassthroughPayload - 14,088.1 14,088.1 -0.0%
OrderJsoniterBench.eoModifyStreet size=64 5,432.0 5,432.0 -0.0%
JsoniterBench.cReadStreet size=8 15,568.0 15,568.0 +0.0%
PrismBench.mRightReverseGet - 16.0 16.0 +0.0%
PowerSeriesBench.monocle_powerEach size=64 14,504.1 14,504.1 -0.0%
FoldBench.eoFoldPrices size=512 12,312.3 12,312.3 -0.0%
PlatedBench.eoUniverseDeep n=64 12,360.0 12,360.0 +0.0%
ZioDiBench.handDrillModify - 592.0 592.0 +0.0%
KyoDiBench.eoVarUpdateFocus - 216.0 216.0 +0.0%
AvroBytesBench.eoGraftPayload - 720.0 720.0 -0.0%
ClickRecordBench.encode_positional - 23,912.0 23,912.0 +0.0%
FoldBench.eoFoldPrices size=64 1,560.0 1,560.0 -0.0%
OrderAvroBench.naiveReadStreet size=64 8,848.1 8,848.1 -0.0%
AffineFoldBench.eoGetOption_6 - 16.0 16.0 +0.0%
PlatedBench.mUniverseExpr n=512 475,007.4 475,007.4 -0.0%
JsoniterBench.jSumPrices size=8 1,176.0 1,176.0 +0.0%
PowerSeriesBench.eoModify_powerEach size=4 608.0 608.0 +0.0%
OrderCirceBench.directStreet size=8 2,728.0 2,728.0 -0.0%
CompositionBench.buildLensOptional3 - 184.0 184.0 -0.0%
PowerSeriesNestedBench.naive_nested size=4 792.0 792.0 -0.0%
SetterBench.mModify_3 - 168.0 168.0 -0.0%
FoldBench.eoFoldPrices size=8 216.0 216.0 -0.0%
AvroJsonBridgeBench.eoWideToAvro - 2,040.0 2,040.0 +0.0%
AvroDecodeReuseBench.confluentRecordReader - 1,560.0 1,560.0 +0.0%
OrderCirceBench.naiveNames size=8 17,808.0 17,808.0 -0.0%
AvroBytesBench.eoSliceGraftPayload - 1,192.0 1,192.0 -0.0%
MultiFocusCollectBench.eoCollectMap_zipMean - 880.0 880.0 +0.0%
OrderAvroBench.naiveModifyStreet size=8 2,968.0 2,968.0 -0.0%
MultiFocusBench.eoModify_powerEach size=4 800.0 800.0 +0.0%
CompositionBench.reuseLens3 - 72.0 72.0 +0.0%
OrderJsoniterBench.monocleReadStreet size=8 3,648.0 3,648.0 -0.0%
OrderAvroBench.naiveReadStreet size=8 1,208.0 1,208.0 +0.0%
TraversalBench.eoModify size=8 608.0 608.0 -0.0%
TraversalBench.eoFoldPrices size=64 1,560.0 1,560.0 +0.0%
PowerSeriesNestedBench.eoModify_nested size=4 2,264.0 2,264.0 -0.0%
ClickRecordBench.encode_vulcanFull - 28,408.0 28,408.0 +0.0%
ClickRecordBench.encode_hand - 768.0 768.0 -0.0%
OrderAvroBench.eoModifyNames size=8 2,160.0 2,160.0 +0.0%
SetterBench.mModify_6 - 288.0 288.0 +0.0%
TraversalBench.eoFoldNested size=64 2,680.0 2,680.0 -0.0%
SetterBench.eoModify_6 - 120.0 120.0 +0.0%
OrderJsoniterBench.eoModifyStreet size=8 1,072.0 1,072.0 +0.0%
ReviewBench.naiveBuild_3 - 72.0 72.0 -0.0%
OrderAvroBench.naiveModifyNames size=8 3,752.0 3,752.0 -0.0%
CompositionBench.buildLens1 - 72.0 72.0 +0.0%
OpticBuildBench.build - 184.0 184.0 -0.0%
OrderAvroBench.eoReadStreet size=8 88.0 88.0 -0.0%
OrderCirceBench.hcursorStreet size=64 3,032.1 3,032.1 -0.0%
AffineFoldBench.eoGetOption_3 - 16.0 16.0 -0.0%
SchemesBench.handAna - 163,816.1 163,816.1 +0.0%
PowerSeriesPrismBench.eoModify_sparse size=8 496.0 496.0 +0.0%
CompositionBench.reuseLeaf - 24.0 24.0 +0.0%
ZioDiBench.handServiceReplace - 520.0 520.0 +0.0%
PowerSeriesBench.eoModify_powerEach size=16 1,088.0 1,088.0 +0.0%
JsoniterBench.cReadId size=8 15,568.0 15,568.0 +0.0%
KyoDiBench.eoMapDrillModify - 216.0 216.0 -0.0%
PlatedBench.mTransformExpr n=64 11,728.0 11,728.0 +0.0%
OrderCirceBench.monocleStreet size=8 17,048.0 17,048.0 -0.0%
AvroBytesBench.prunedReadPartner - 1,592.0 1,592.0 -0.0%
OptionalBench.mModify_6 - 496.0 496.0 +0.0%
ZioDiBench.handDrillGet - 120.0 120.0 -0.0%
LensBench.eoModifyDeep - 152.0 152.0 +0.0%
OpticBuildBench.reuseUse - 2,648.0 2,648.0 -0.0%
OrderAvroBench.eoModifyStreet size=8 328.0 328.0 +0.0%
GenericsBench.handLensModify - 24.0 24.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=8 128.0 128.0 -0.0%
KyoDiBench.handEnvUse - 312.0 312.0 +0.0%
SchemesBench.eoAna - 589,712.6 589,712.6 -0.0%
OrderAvroBench.naiveModifyStreet size=64 20,880.2 20,880.2 +0.0%
AvroVulcanBench.fieldGet_bridged - 432.0 432.0 +0.0%
LensBench.mReplace - 40.0 40.0 +0.0%
TraversalBench.eoModify size=64 4,640.0 4,640.0 +0.0%
AvroDecodeReuseBench.cachedDecodeRecord - 1,224.0 1,224.0 -0.0%
PowerSeriesPrismBench.naive_sparse size=32 416.0 416.0 -0.0%
OptionalBench.mModify_3 - 304.0 304.0 -0.0%
ZioDiBench.eoDrillModify - 472.0 472.0 +0.0%
PlatedBench.visitorTransformExpr n=64 5,608.0 5,608.0 +0.0%
OrderJsoniterBench.naiveSumPrices size=64 29,337.0 29,337.0 +0.0%
GenericsBench.handPrismModifyHit - 24.0 24.0 -0.0%
LensBench.eoReplace - 40.0 40.0 +0.0%
CapsBench.modifyDeepDirect - 152.0 152.0 +0.0%
KyoDiBench.eoEnvFocus - 320.0 320.0 +0.0%
LensBench.eoModify - 40.0 40.0 -0.0%
AvroJsonBridgeBench.eoClickToAvro - 4,664.0 4,664.0 -0.0%
AvroVulcanBench.rootGet_native - 600.0 600.0 +0.0%
SchemesBench.drosteCata - 164,824.2 164,824.2 -0.0%
TraversalBench.mFoldPrices size=64 15,408.0 15,408.0 -0.0%
OrderCirceBench.monocleNames size=8 19,472.1 19,472.1 +0.0%
TraversalBench.mModify size=64 14,408.0 14,408.0 +0.0%
PlatedBench.visitorTransformExpr n=512 45,032.7 45,032.7 -0.0%
AvroEncodeRouteBench.eo_encodeToAny - 312.0 312.0 +0.0%
CompositionBench.reuseLens6 - 120.0 120.0 -0.0%
GenericsBench.handPrismGetHit - 16.0 16.0 +0.0%
OptionalBench.mModify_0 - 112.0 112.0 -0.0%
FoldBench.mFoldMap size=64 768.0 768.0 -0.0%
OrderJsoniterBench.monocleSumPrices size=8 6,448.0 6,448.0 -0.0%
CompositionBench.reuseLensOptional3 - 160.0 160.0 +0.0%
PowerSeriesPrismBench.monocle_sparse size=8 1,952.0 1,952.0 +0.0%
AvroVulcanBench.rootGet_bridged - 1,424.0 1,424.0 -0.0%
MultiFocusBench.naive_listMap size=32 2,088.0 2,088.0 +0.0%
OpticBuildBench.buildAndUse - 2,816.0 2,816.0 +0.0%
PowerSeriesBench.monocle_powerEach size=16 3,720.0 3,720.0 -0.0%
GenericsBench.genPrismModifyHit - 24.0 24.0 +0.0%
SetterBench.eoModify_orderId - 40.0 40.0 +0.0%
SetterBench.mModify_0 - 24.0 24.0 +0.0%
PrismBench.eoReverseGet - 16.0 16.0 -0.0%
SchemesBench.drosteAna - 327,632.3 327,632.3 -0.0%
ZioDiBench.handServiceGet - 120.0 120.0 -0.0%
MultiFocusCollectBench.naive_zipMeanBroadcast - 1,176.0 1,176.0 -0.0%
AvroVulcanBench.fieldGet_native - 432.0 432.0 -0.0%
OptionalBench.eoModify_3 - 160.0 160.0 -0.0%
TraversalBench.eoFoldPrices size=8 216.0 216.0 +0.0%
CompositionBench.buildLens3 - 184.0 184.0 +0.0%
CapsBench.modifyDerivedPerCall - 40.0 40.0 -0.0%
AffineFoldBench.eoGetOption_0_asOptional - 16.0 16.0 -0.0%
AvroVulcanBench.encode_bridged - 1,208.0 1,208.0 +0.0%
CapsBench.modifyDerivedHeld - 40.0 40.0 -0.0%
PrismBench.mReverseGet - 16.0 16.0 +0.0%
OptionalBench.eoModify_0 - 112.0 112.0 +0.0%
PlatedBench.visitorUniverseExpr n=64 3,080.0 3,080.0 +0.0%
IsoBench.eoGet - 32.0 32.0 -0.0%
LensBench.mModify - 40.0 40.0 -0.0%
AvroDecodeReuseBench.freshDecodeRecord - 3,344.0 3,344.0 -0.0%
OptionalBench.mModify_loyalty - 112.0 112.0 -0.0%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 224.0 224.0 -0.0%
ReviewBench.eoReverseGet_6 - 120.0 120.0 +0.0%
ZioDiBench.eoServiceReplace - 400.0 400.0 -0.0%
MultiFocusCollectBench.naive_listSum - 56.0 56.0 -0.0%
ReviewBench.naiveBuild_6 - 120.0 120.0 -0.0%
PrismBench.mGetRightPresent - 16.0 16.0 +0.0%
CapsBench.modifyCap - 40.0 40.0 -0.0%
OptionalBench.eoModify_loyalty - 112.0 112.0 -0.0%
PowerSeriesBench.naive_powerEach size=4 168.0 168.0 -0.0%
GenericsBench.genLensModify - 24.0 24.0 +0.0%
MultiFocusCollectBench.naive_tuple3Rewrite - 96.0 96.0 -0.0%
MultiFocusBench.naive_sumQty size=32 256.0 256.0 -0.0%
CapsBench.modifyDeepCap - 176.0 176.0 +0.0%
CompositionBench.buildLens6 - 352.0 352.0 +0.0%
PlatedBench.visitorUniverseJson n=64 4,088.0 4,088.0 -0.0%
IsoBench.mReverseGet - 32.0 32.0 -0.0%
AvroVulcanBench.decode_vulcanRaw - 832.0 832.0 +0.0%
FoldBench.mFoldPrices size=64 1,560.0 1,560.0 +0.0%
ReviewBench.eoReverseGet_0 - 24.0 24.0 +0.0%
MultiFocusBench.naive_listMap size=4 296.0 296.0 -0.0%
OptionalBench.eoReplace_loyalty - 88.0 88.0 -0.0%
CapsBench.modifyDirect - 40.0 40.0 -0.0%
MultiFocusCollectBench.naive_tuple6Rewrite - 184.0 184.0 -0.0%
PrismBench.eoRightReverseGet - 16.0 16.0 -0.0%
SetterBench.eoModify_0 - 24.0 24.0 -0.0%
MultiFocusCollectBench.naive_constSum - 16.0 16.0 +0.0%
IsoBench.eoReverseGet - 32.0 32.0 +0.0%
OptionalBench.mReplace_0 - 40.0 40.0 -0.0%
AvroVulcanBench.decode_native - 48.0 48.0 -0.0%
SetterBench.eoModify_3 - 72.0 72.0 -0.0%
GenericsBench.genPrismGetHit - 16.0 16.0 +0.0%
IsoBench.mGet - 32.0 32.0 -0.0%
PowerSeriesBench.naive_powerEach size=16 504.0 504.0 +0.0%
GenericsBench.rawPrismModifyHit - 24.0 24.0 -0.0%
OptionalBench.eoModify_6 - 208.0 208.0 -0.0%
AvroVulcanBench.encode_vulcanRaw - 1,240.0 1,240.0 +0.0%
GenericsBench.rawPrismGetHit - 16.0 16.0 +0.0%
ReviewBench.naiveBuild_0 - 24.0 24.0 -0.0%
SetterBench.mModify_orderId - 40.0 40.0 -0.0%
SchemesBench.drosteHylo - 328,640.3 328,640.3 +0.0%
OptionalBench.mReplace_loyalty - 88.0 88.0 -0.0%
TraversalBench.mModify size=8 1,896.0 1,896.0 +0.0%
CompositionBench.reuseLens1 - 40.0 40.0 +0.0%
LensBench.mModifyDeep - 176.0 176.0 +0.0%
GenericsBench.rawLensModify - 24.0 24.0 -0.0%
ReviewBench.eoReverseGet_3 - 72.0 72.0 -0.0%
KyoDiBench.handMapDrillModify - 216.0 216.0 -0.0%
PlatedBench.eoTransformExpr n=64 10,144.0 10,144.0 -0.0%
PrismBench.eoGetRightPresent - 16.0 16.0 +0.0%
FoldBench.mFoldPrices size=8 216.0 216.0 +0.0%
Timing (ns/op) — directional only, same-VM but shared runner
Benchmark params base head Δ
MultiFocusCollectBench.eoModify_multiFocusTuple3 - 13.0 17.6 +36.1%
KyoDiBench.handVarUpdate - 63.8 50.8 -20.4%
PowerSeriesNestedBench.eoModify_nested size=1024 51,372.1 59,007.9 +14.9%
PlatedBench.mUniverseJson n=512 170,173.5 195,431.2 +14.8%
TraversalBench.eoFoldNested size=8 46.0 39.7 -13.8%
AvroVulcanBench.encode_native - 9.4 10.6 +13.2%
MultiFocusBench.eoModify_multiFocus size=1024 44,670.7 48,970.9 +9.6%
JsoniterBench.jReadId size=64 30.0 27.2 -9.1%
JsoniterBench.jModifyId size=64 254.4 275.2 +8.1%
PlatedBench.mUniverseJson n=64 17,467.6 16,094.4 -7.9%
AvroVulcanBench.decode_bridged - 158.2 146.8 -7.2%
JsoniterBench.cSumPrices size=512 265,595.8 284,619.9 +7.2%
AvroEncodeRouteBench.naive_freshPlumbing - 547.8 586.8 +7.1%
JsoniterBench.jReadId size=8 29.7 31.7 +6.7%
FoldBench.mFoldPrices size=512 1,968.0 1,841.0 -6.5%
PowerSeriesPrismBench.eoModify_sparse size=2048 21,186.0 19,921.4 -6.0%
JsoniterBench.jReadId size=512 31.7 29.8 -5.9%
ZioDiBench.eoDrillGet - 8.0 8.5 +5.9%
PowerSeriesNestedBench.monocle_nested size=16 1,964.6 2,077.0 +5.7%
JsoniterBench.jReadStreet size=512 156.8 164.9 +5.2%
OrderCirceBench.eoNamesIor size=64 23,097.4 24,286.2 +5.1%
OrderCirceBench.eoNames size=64 21,628.2 22,734.1 +5.1%
AvroBytesBench.naiveModifyPartner - 2,472.8 2,348.4 -5.0%
MultiFocusBench.naive_sumQty size=256 738.0 701.3 -5.0%
JsoniterBench.jReplaceId size=8 81.2 77.4 -4.8%
OrderJsoniterBench.monocleSumPrices size=64 12,864.2 12,253.2 -4.8%
JsoniterBench.jMiss size=64 142.6 149.2 +4.7%
PlatedBench.mUniverseExpr n=4096 2,429,069.4 2,542,045.3 +4.7%
OptionalBench.eoReplace_0 - 3.7 3.5 -4.6%
OrderCirceBench.eoNamesIor size=512 181,474.3 189,600.6 +4.5%
AvroBytesBench.naiveReadPartner - 1,605.5 1,533.7 -4.5%
OrderCirceBench.hcursorStreet size=8 776.4 810.4 +4.4%
JsoniterBench.jMiss size=8 143.0 149.2 +4.3%
OrderCirceBench.eoNames size=512 172,517.0 179,941.0 +4.3%
OrderAvroBench.naiveModifyStreet size=512 35,735.8 37,273.0 +4.3%
SchemesBench.eoCata - 61,246.5 58,674.9 -4.2%
MultiFocusCollectBench.eoCollectList_listSum - 27.1 28.2 +4.0%
PowerSeriesPrismBench.monocle_sparse size=32 807.5 775.9 -3.9%
MultiFocusBench.eoModify_powerEach size=32 791.6 821.9 +3.8%
MultiFocusBench.eoFold_powerEach size=4 60.7 58.5 -3.7%
PlatedBench.eoUniverseJson n=4096 178,300.7 171,901.0 -3.6%
OrderCirceBench.eoStreetIor size=64 753.6 780.4 +3.6%
OrderCirceBench.hcursorNames size=8 2,877.5 2,976.3 +3.4%
OrderJsoniterBench.nativeReadStreet size=64 3,763.1 3,891.1 +3.4%
OrderJsoniterBench.eoReadStreet size=512 162.9 168.4 +3.4%
TraversalBench.eoModify size=512 6,847.2 6,618.1 -3.3%
JsoniterBench.jReadStreet size=8 163.7 158.3 -3.3%
AvroBytesBench.naiveModifyCountry - 2,142.6 2,073.3 -3.2%
PlatedBench.mUniverseJson n=4096 2,610,212.3 2,526,296.5 -3.2%
GenericsBench.handLensGet - 0.8 0.8 +3.2%
ClickRecordBench.encode_derived - 449.5 463.6 +3.1%
PowerSeriesPrismBench.naive_sparse size=512 1,078.1 1,044.7 -3.1%
OrderAvroBench.eoModifyNames size=64 3,404.5 3,299.9 -3.1%
AvroDecodeReuseBench.confluentRecordReaderFresh - 1,071.5 1,103.9 +3.0%
OrderJsoniterBench.eoSumPrices size=64 8,430.2 8,683.3 +3.0%
ClickRecordBench.encode_derivedThroughPrism - 468.5 454.6 -3.0%
AvroJsonBridgeBench.naiveClickToJson - 2,399.6 2,328.4 -3.0%
PlatedBench.visitorTransformExpr n=4096 54,062.5 52,461.7 -3.0%
OrderAvroBench.monocleModifyStreet size=512 37,314.2 36,225.4 -2.9%
OrderJsoniterBench.eoReadStreet size=64 159.2 163.9 +2.9%
OrderCirceBench.directStreet size=512 773.7 751.4 -2.9%
CompositionBench.buildLens1 - 3.9 4.1 +2.8%
OrderAvroBench.eoReadStreet size=64 27.6 26.8 -2.8%
CompositionBench.buildLensOptional3 - 17.3 16.8 -2.7%
ZioDiBench.handDrillModify - 65.9 67.7 +2.7%
OrderCirceBench.eoNames size=8 3,023.7 2,943.0 -2.7%
PrismBench.mRightReverseGet - 2.0 2.1 +2.6%
OrderJsoniterBench.naiveSumPrices size=8 1,451.8 1,487.2 +2.4%
FoldBench.eoFoldPrices size=8 16.9 16.5 -2.4%
OrderJsoniterBench.eoModifyStreet size=512 2,837.2 2,904.2 +2.4%
OrderCirceBench.hcursorNames size=512 173,668.9 169,589.3 -2.3%
OrderAvroBench.monocleModifyStreet size=8 705.8 689.2 -2.3%
OrderCirceBench.eoStreet size=512 747.6 764.6 +2.3%
AvroJsonBridgeBench.naiveClickToAvro - 1,112.9 1,087.6 -2.3%
OrderAvroBench.monocleModifyNames size=512 73,811.8 75,478.3 +2.3%
PlatedBench.eoTransformDeep n=4096 97,989.1 100,194.0 +2.3%
GetterBench.eoGet_0 - 0.7 0.7 +2.2%
OrderJsoniterBench.naiveReadStreet size=8 1,412.7 1,381.2 -2.2%
SchemesBench.eoHylo - 68,076.3 66,606.4 -2.2%
MultiFocusCollectBench.eoCollectMap_zipMean - 88.4 90.3 +2.1%
PowerSeriesNestedBench.monocle_nested size=4 1,067.3 1,045.1 -2.1%
ReviewBench.naiveBuild_3 - 5.4 5.3 -2.1%
AvroJsonBridgeBench.naiveWideToAvro - 719.9 705.0 -2.1%
OrderCirceBench.naiveStreet size=512 133,365.5 130,656.9 -2.0%
OrderAvroBench.eoModifyStreet size=64 95.3 93.3 -2.0%
PlatedBench.visitorUniverseDeep n=64 626.7 614.1 -2.0%
OrderJsoniterBench.monocleSumPrices size=512 344,900.6 351,778.6 +2.0%
AffineFoldBench.eoGetOption_0_empty - 0.7 0.7 +2.0%
SetterBench.mModify_3 - 21.8 21.4 -1.9%
AvroJsonBridgeBench.eoWideToJson - 446.1 454.8 +1.9%
MultiFocusBench.naive_sumQty size=1024 3,643.1 3,713.9 +1.9%
JsoniterBench.jReplaceId size=64 252.4 247.5 -1.9%
PowerSeriesBench.monocle_powerEach size=1024 46,164.3 47,026.7 +1.9%
OrderCirceBench.eoStreetIor size=8 760.6 746.5 -1.9%
PowerSeriesPrismBench.naive_sparse size=2048 4,198.6 4,274.2 +1.8%
PowerSeriesBench.monocle_powerEach size=4096 141,373.8 138,839.1 -1.8%
MultiFocusBench.naive_listMap size=256 2,039.6 2,075.0 +1.7%
TraversalBench.mFoldPrices size=8 235.6 231.5 -1.7%
LensBench.mReplace - 2.7 2.7 +1.7%
OrderAvroBench.eoReadStreet size=512 27.4 26.9 -1.7%
AvroBytesBench.eoModifyPartner - 269.5 274.1 +1.7%
AffineFoldBench.mGetOption_6 - 19.5 19.9 +1.7%
CapsBench.getDirect - 0.8 0.8 +1.7%
LensBench.eoGet - 0.8 0.8 -1.7%
MultiFocusBench.naive_listMap size=1024 7,984.3 8,116.1 +1.7%
PowerSeriesNestedBench.monocle_nested size=1024 193,285.0 190,116.4 -1.6%
PowerSeriesNestedBench.monocle_nested size=256 71,476.5 70,335.3 -1.6%
PlatedBench.visitorUniverseExpr n=512 5,582.7 5,493.7 -1.6%
OrderCirceBench.hcursorNames size=64 21,294.8 21,629.9 +1.6%
TraversalBench.eoFoldPrices size=512 1,721.3 1,748.1 +1.6%
GetterBench.eoGet_orderId - 0.7 0.7 -1.6%
MultiFocusBench.eoModify_multiFocus size=4 159.1 161.6 +1.6%
AvroBytesBench.eoReadCountry - 137.8 140.0 +1.6%
OrderJsoniterBench.eoSumPrices size=512 68,708.5 69,774.4 +1.6%
OrderCirceBench.eoNamesIor size=8 3,102.8 3,054.9 -1.5%
OrderCirceBench.eoStreetIor size=512 799.5 787.2 -1.5%
OrderJsoniterBench.naiveSumPrices size=512 77,439.0 76,246.6 -1.5%
OrderCirceBench.directStreet size=64 752.3 763.9 +1.5%
TraversalBench.eoFoldNested size=512 4,532.3 4,601.8 +1.5%
CompositionBench.reuseLeaf - 2.3 2.3 +1.5%
ClickRecordBench.encode_positional - 5,082.5 5,160.1 +1.5%
OrderJsoniterBench.monocleReadStreet size=512 72,000.6 73,098.6 +1.5%
AvroJsonBridgeBench.eoWideToAvro - 542.1 550.4 +1.5%
MultiFocusBench.eoModify_powerEach size=256 7,115.2 7,222.1 +1.5%
AvroBytesBench.eoReadPartner - 162.6 160.3 -1.5%
ZioDiBench.handDrillGet - 12.3 12.1 -1.5%
OrderAvroBench.monocleModifyNames size=64 7,463.2 7,570.1 +1.4%
PlatedBench.mUniverseExpr n=64 14,814.2 14,604.6 -1.4%
GenericsBench.handLensModify - 2.4 2.3 -1.4%
AvroJsonBridgeBench.naiveWideToJson - 1,456.1 1,435.9 -1.4%
ZioDiBench.handServiceReplace - 53.8 54.5 +1.4%
PlatedBench.eoUniverseExpr n=512 12,441.8 12,272.7 -1.4%
GetterBench.mGet_6 - 19.1 19.4 +1.4%
OrderCirceBench.eoStreet size=64 768.0 778.4 +1.4%
PowerSeriesBench.eoModify_powerEach size=4 90.2 91.5 +1.4%
OrderJsoniterBench.monocleModifyStreet size=512 126,910.8 128,629.1 +1.4%
CapsBench.getDeepCap - 1.1 1.1 -1.3%
PowerSeriesNestedBench.naive_nested size=16 295.3 299.2 +1.3%
MultiFocusBench.eoFold_powerEach size=256 2,867.7 2,830.4 -1.3%
PowerSeriesPrismBench.eoModify_sparse size=128 1,053.0 1,066.7 +1.3%
OrderAvroBench.monocleModifyNames size=8 1,042.1 1,028.7 -1.3%
ClickRecordBench.encode_hand - 112.3 110.8 -1.3%
SetterBench.mModify_6 - 44.5 45.1 +1.3%
FoldBench.mFoldMap size=512 1,077.4 1,091.0 +1.3%
MultiFocusCollectBench.eoCollectMap_constSum - 1.5 1.5 -1.3%
PowerSeriesNestedBench.naive_nested size=64 1,165.6 1,180.1 +1.2%
PlatedBench.visitorTransformDeep n=64 346.1 350.4 +1.2%
TraversalBench.eoModify size=8 79.3 78.3 -1.2%
SetterBench.eoModify_6 - 18.4 18.6 +1.2%
LensBench.eoReplace - 2.7 2.8 +1.2%
OrderCirceBench.monocleNames size=512 169,933.1 171,992.3 +1.2%
PlatedBench.visitorUniverseJson n=4096 118,978.5 120,405.2 +1.2%
GenericsBench.genLensGet - 0.8 0.8 +1.2%
PowerSeriesNestedBench.eoModify_nested size=16 1,104.4 1,091.3 -1.2%
AvroEncodeRouteBench.eo_encodeValue - 492.6 486.8 -1.2%
OrderJsoniterBench.nativeReadStreet size=512 29,575.5 29,920.6 +1.2%
OrderAvroBench.monocleReadStreet size=64 2,655.8 2,686.0 +1.1%
GetterBench.mGet_orderId - 0.4 0.4 -1.1%
FoldBench.eoFoldPrices size=64 121.0 119.6 -1.1%
CapsBench.getCap - 0.9 0.9 +1.1%
KyoDiBench.eoMapGet - 1.8 1.8 +1.1%
SchemesBench.handAna - 18,894.5 19,101.4 +1.1%
JsoniterBench.cReplaceId size=64 42,430.1 41,966.6 -1.1%
MultiFocusBench.eoModify_powerEach size=4 144.5 146.0 +1.1%
KyoDiBench.eoVarUpdateFocus - 53.0 53.5 +1.1%
PowerSeriesPrismBench.eoModify_sparse size=512 5,071.9 5,018.5 -1.1%
ClickRecordBench.encode_vulcanFull - 6,208.2 6,273.1 +1.0%
PowerSeriesNestedBench.eoModify_nested size=64 3,948.9 3,908.5 -1.0%
MultiFocusBench.naive_sumQty size=4 5.5 5.6 +1.0%
GenericsBench.handPrismModifyHit - 2.3 2.3 -1.0%
SchemesBench.eoAna - 80,360.3 79,556.5 -1.0%
PowerSeriesNestedBench.eoModify_nested size=256 15,031.5 15,180.5 +1.0%
PowerSeriesBench.monocle_powerEach size=256 16,841.2 16,676.6 -1.0%
OrderJsoniterBench.nativeSumPrices size=8 926.7 917.7 -1.0%
AvroBytesBench.eoGraftPayload - 119.7 118.6 -1.0%
AvroBytesBench.prunedReadCountry - 675.8 682.3 +1.0%
KyoDiBench.eoMapDrillModify - 31.1 30.8 -1.0%
GetterBench.mGet_0 - 0.4 0.4 -0.9%
LensBench.eoModify - 3.1 3.1 -0.9%
PlatedBench.eoUniverseJson n=64 2,276.8 2,297.7 +0.9%
PowerSeriesBench.naive_powerEach size=4096 20,643.1 20,828.8 +0.9%
OrderJsoniterBench.nativeReadStreet size=8 683.2 689.3 +0.9%
GenericsBench.genPrismGetMiss - 0.9 0.9 -0.9%
OptionalBench.mModify_6 - 87.4 88.2 +0.9%
MultiFocusBench.eoModify_multiFocus size=32 1,072.3 1,063.1 -0.9%
JsoniterBench.cModifyId size=8 6,804.4 6,861.8 +0.8%
JsoniterBench.jMiss size=512 150.5 149.2 -0.8%
PlatedBench.eoTransformExpr n=512 12,809.8 12,702.3 -0.8%
OrderJsoniterBench.naiveModifyStreet size=64 15,528.1 15,398.2 -0.8%
JsoniterBench.cReadStreet size=512 161,110.2 159,763.1 -0.8%
PowerSeriesPrismBench.eoModify_sparse size=32 279.0 276.7 -0.8%
AffineFoldBench.mGetOption_loyalty_empty - 0.8 0.8 +0.8%
AvroDecodeReuseBench.confluentRecordReader - 334.4 337.2 +0.8%
AffineFoldBench.mGetOption_0_empty - 0.7 0.7 -0.8%
OrderCirceBench.naiveStreet size=64 16,303.8 16,172.6 -0.8%
PowerSeriesNestedBench.naive_nested size=4 104.5 103.7 -0.8%
JsoniterBench.jReadStreet size=64 163.6 164.9 +0.8%
OrderJsoniterBench.naiveReadStreet size=64 9,119.2 9,191.4 +0.8%
OrderCirceBench.directNames size=64 21,332.0 21,500.5 +0.8%
PlatedBench.mTransformExpr n=512 12,592.9 12,692.0 +0.8%
AffineFoldBench.eoGetOption_loyalty - 0.8 0.8 -0.8%
JsoniterBench.cReplaceId size=8 6,725.3 6,672.7 -0.8%
GenericsBench.rawLensGet - 0.5 0.6 +0.8%
JsoniterBench.jModifyId size=8 79.7 80.4 +0.8%
MultiFocusBench.eoModify_multiFocus size=256 10,402.8 10,322.9 -0.8%
TraversalBench.eoFoldPrices size=64 119.0 119.9 +0.8%
OrderCirceBench.naiveNames size=512 143,447.5 144,536.1 +0.8%
OrderJsoniterBench.nativeSumPrices size=512 51,194.4 50,814.1 -0.7%
OrderAvroBench.eoModifyStreet size=512 93.7 93.0 -0.7%
FoldBench.eoFoldMap size=512 1,087.8 1,080.1 -0.7%
OrderAvroBench.naiveModifyNames size=64 6,149.5 6,192.5 +0.7%
KyoDiBench.handMapGet - 1.5 1.5 -0.7%
OrderAvroBench.eoModifyNames size=8 448.4 451.5 +0.7%
SchemesBench.handHylo - 8,646.8 8,704.8 +0.7%
MultiFocusBench.eoFold_powerEach size=1024 13,041.9 13,128.8 +0.7%
OrderJsoniterBench.monocleModifyStreet size=64 15,468.5 15,365.9 -0.7%
PowerSeriesPrismBench.eoModify_sparse size=8 92.8 93.4 +0.7%
JsoniterBench.cSumPrices size=8 4,741.0 4,710.0 -0.7%
PlatedBench.eoTransformDeep n=64 1,145.6 1,153.1 +0.7%
LensBench.eoModifyDeep - 29.3 29.5 +0.6%
AvroVulcanBench.rootGet_native - 128.6 129.4 +0.6%
OrderCirceBench.directNames size=8 2,909.1 2,927.9 +0.6%
AvroBytesBench.naiveReadCountry - 1,260.5 1,268.5 +0.6%
MultiFocusBench.eoModify_powerEach size=1024 29,955.0 29,763.9 -0.6%
OrderAvroBench.naiveModifyStreet size=8 693.2 688.8 -0.6%
AvroVulcanBench.fieldGet_bridged - 78.1 78.6 +0.6%
OrderJsoniterBench.monocleReadStreet size=64 9,186.8 9,128.9 -0.6%
OptionalBench.mModify_0_empty - 1.1 1.1 +0.6%
PrismBench.eoGetOptionPresent - 0.7 0.7 -0.6%
GenericsBench.genPrismModifyMiss - 0.9 0.9 -0.6%
AvroJsonBridgeBench.eoClickToJson - 2,195.2 2,181.9 -0.6%
PowerSeriesBench.eoModify_powerEach size=1024 10,704.2 10,769.3 +0.6%
PlatedBench.visitorTransformDeep n=512 3,528.0 3,506.6 -0.6%
SchemesBench.handCata - 10,359.6 10,422.2 +0.6%
ZioDiBench.eoDrillModify - 72.2 72.7 +0.6%
PowerSeriesBench.eoModify_powerEach size=256 2,726.0 2,709.9 -0.6%
OrderCirceBench.naiveNames size=8 2,567.6 2,552.7 -0.6%
CapsBench.getDeepDirect - 1.0 1.0 -0.6%
PrismBench.mGetOptionAbsent - 0.8 0.8 -0.6%
OrderAvroBench.monocleModifyStreet size=64 4,831.8 4,859.7 +0.6%
OrderJsoniterBench.naiveModifyStreet size=512 128,032.3 128,759.7 +0.6%
JsoniterBench.cReadStreet size=8 3,099.2 3,116.0 +0.5%
OptionalBench.mModify_3 - 53.0 52.8 -0.5%
CapsBench.getDerivedPerCall - 1.2 1.2 +0.5%
AvroEncodeRouteBench.handwritten_stream - 116.6 116.0 -0.5%
AvroBytesBench.naivePassthroughPayload - 3,772.7 3,752.6 -0.5%
MultiFocusBench.eoFold_powerEach size=32 299.6 301.2 +0.5%
OrderJsoniterBench.monocleModifyStreet size=8 2,523.2 2,536.4 +0.5%
JsoniterBench.cModifyId size=512 323,836.7 322,157.0 -0.5%
IsoBench.eoGet - 2.8 2.8 -0.5%
OrderAvroBench.naiveReadStreet size=512 20,441.2 20,545.9 +0.5%
JsoniterBench.jSumPrices size=512 68,380.7 68,031.1 -0.5%
GenericsBench.handPrismGetMiss - 0.8 0.8 +0.5%
PowerSeriesBench.monocle_powerEach size=4 147.0 146.3 -0.5%
JsoniterBench.cReadId size=8 3,078.1 3,093.0 +0.5%
PowerSeriesBench.monocle_powerEach size=64 1,746.5 1,738.1 -0.5%
AvroBytesBench.eoModifyCountry - 223.8 224.9 +0.5%
OrderAvroBench.naiveModifyNames size=8 826.4 822.4 -0.5%
TraversalBench.mModify size=512 26,267.3 26,144.4 -0.5%
JsoniterBench.cSumPrices size=64 33,055.2 32,904.2 -0.5%
KyoDiBench.handEnvUse - 64.8 65.1 +0.5%
OrderAvroBench.monocleReadStreet size=8 392.0 390.3 -0.5%
PowerSeriesBench.eoModify_powerEach size=4096 43,702.7 43,897.9 +0.4%
JsoniterBench.cModifyId size=64 41,688.9 41,874.1 +0.4%
PowerSeriesBench.eoModify_powerEach size=16 206.6 207.5 +0.4%
OrderJsoniterBench.eoModifyStreet size=64 393.0 394.7 +0.4%
AffineFoldBench.mGetOption_3 - 7.9 8.0 +0.4%
OrderAvroBench.naiveReadStreet size=8 384.8 386.4 +0.4%
AffineFoldBench.eoGetOption_loyalty_empty - 0.8 0.8 -0.4%
PlatedBench.eoUniverseJson n=512 19,625.1 19,710.1 +0.4%
CompositionBench.buildLens3 - 17.1 17.2 +0.4%
GenericsBench.handPrismGetHit - 1.7 1.7 +0.4%
AffineFoldBench.mGetOption_loyalty - 0.8 0.8 +0.4%
CapsBench.modifyDerivedPerCall - 3.7 3.7 -0.4%
PowerSeriesPrismBench.naive_sparse size=8 19.0 18.9 -0.4%
JsoniterBench.jSumPrices size=64 8,295.5 8,329.8 +0.4%
OrderAvroBench.eoReadStreet size=8 27.0 26.9 -0.4%
PowerSeriesPrismBench.monocle_sparse size=128 3,438.4 3,452.4 +0.4%
SetterBench.mModify_0 - 1.9 1.9 +0.4%
GenericsBench.handPrismModifyMiss - 0.8 0.8 -0.4%
OrderJsoniterBench.naiveModifyStreet size=8 2,537.0 2,526.9 -0.4%
TraversalBench.eoFoldPrices size=8 16.4 16.5 +0.4%
OrderCirceBench.naiveStreet size=8 2,421.6 2,412.0 -0.4%
OpticBuildBench.buildAndUse - 791.8 788.7 -0.4%
SchemesBench.drosteAna - 35,837.5 35,697.2 -0.4%
ZioDiBench.handServiceGet - 12.4 12.3 -0.4%
PlatedBench.visitorUniverseDeep n=4096 46,789.3 46,611.4 -0.4%
AvroVulcanBench.fieldGet_native - 79.2 78.9 -0.4%
KyoDiBench.eoEnvFocus - 65.3 65.5 +0.4%
OptionalBench.mModify_0 - 17.6 17.5 -0.4%
JsoniterBench.cReadStreet size=64 20,091.2 20,017.1 -0.4%
JsoniterBench.jModifyId size=512 2,695.7 2,685.9 -0.4%
JsoniterBench.jReplaceId size=512 2,657.5 2,667.1 +0.4%
PlatedBench.eoUniverseExpr n=4096 96,980.4 97,328.4 +0.4%
PrismBench.eoReverseGet - 2.0 2.0 -0.4%
CapsBench.modifyDerivedHeld - 4.0 4.0 -0.4%
OrderCirceBench.monocleStreet size=64 16,170.7 16,228.1 +0.4%
AvroBytesBench.eoSliceGraftPayload - 234.3 233.5 -0.4%
PowerSeriesNestedBench.eoModify_nested size=4 500.9 499.2 -0.3%
SchemesBench.drosteCata - 31,588.3 31,478.5 -0.3%
OpticBuildBench.reuseUse - 741.8 739.2 -0.3%
ReviewBench.naiveBuild_6 - 8.9 8.9 -0.3%
AvroDecodeReuseBench.cachedDecodeRecord - 310.2 309.2 -0.3%
OrderCirceBench.monocleStreet size=8 2,443.0 2,434.8 -0.3%
PowerSeriesPrismBench.naive_sparse size=128 245.5 244.7 -0.3%
JsoniterBench.cReplaceId size=512 323,821.9 322,780.8 -0.3%
PlatedBench.eoUniverseDeep n=512 12,740.1 12,780.0 +0.3%
MultiFocusCollectBench.eoModify_multiFocusTuple6 - 21.5 21.4 -0.3%
OrderAvroBench.monocleReadStreet size=512 20,489.4 20,552.0 +0.3%
FoldBench.eoFoldMap size=64 125.0 125.4 +0.3%
MultiFocusCollectBench.naive_tuple3Rewrite - 6.3 6.3 -0.3%
OrderJsoniterBench.eoSumPrices size=8 1,123.7 1,127.1 +0.3%
MultiFocusCollectBench.naive_constSum - 1.4 1.4 +0.3%
GenericsBench.genPrismModifyHit - 2.4 2.4 +0.3%
PowerSeriesPrismBench.naive_sparse size=32 63.0 62.8 -0.3%
OptionalBench.eoModify_0 - 17.9 17.9 +0.3%
PowerSeriesPrismBench.monocle_sparse size=512 25,909.3 25,983.2 +0.3%
PlatedBench.visitorUniverseDeep n=512 5,700.7 5,716.8 +0.3%
PrismBench.mGetRightAbsent - 0.9 0.9 -0.3%
PowerSeriesPrismBench.monocle_sparse size=2048 77,895.0 77,682.6 -0.3%
PlatedBench.eoUniverseDeep n=64 1,511.0 1,515.1 +0.3%
AvroVulcanBench.encode_bridged - 165.7 166.1 +0.3%
TraversalBench.mFoldPrices size=512 24,265.9 24,330.2 +0.3%
OrderCirceBench.directNames size=512 171,439.9 171,885.0 +0.3%
PlatedBench.mTransformExpr n=64 2,059.0 2,064.3 +0.3%
PlatedBench.eoTransformDeep n=512 10,449.1 10,422.1 -0.3%
PrismBench.mGetOptionPresent - 0.8 0.8 -0.3%
PrismBench.eoRightReverseGet - 2.0 2.0 -0.3%
CapsBench.modifyDeepDirect - 29.3 29.3 +0.2%
PowerSeriesNestedBench.monocle_nested size=64 7,753.9 7,773.0 +0.2%
OptionalBench.eoReplace_loyalty - 6.0 6.0 -0.2%
CompositionBench.buildLens6 - 31.7 31.7 +0.2%
JsoniterBench.jSumPrices size=8 1,131.1 1,133.8 +0.2%
OrderJsoniterBench.eoModifyStreet size=8 230.7 231.3 +0.2%
MultiFocusCollectBench.naive_tuple6Rewrite - 11.5 11.5 -0.2%
PlatedBench.visitorUniverseJson n=512 21,236.7 21,188.2 -0.2%
MultiFocusBench.naive_listMap size=32 213.3 213.8 +0.2%
PowerSeriesBench.naive_powerEach size=1024 5,577.9 5,590.5 +0.2%
PrismBench.eoGetRightAbsent - 0.8 0.8 +0.2%
MultiFocusCollectBench.naive_zipMeanBroadcast - 127.2 126.9 -0.2%
PlatedBench.eoUniverseExpr n=64 1,478.8 1,475.5 -0.2%
ZioDiBench.eoServiceReplace - 50.0 49.9 -0.2%
SetterBench.eoModify_orderId - 2.6 2.6 +0.2%
AffineFoldBench.eoGetOption_0_asAffineFold - 0.7 0.7 +0.2%
LensBench.mModify - 3.4 3.4 -0.2%
ReviewBench.eoReverseGet_0 - 2.0 2.0 +0.2%
SchemesBench.drosteHylo - 38,899.9 38,979.1 +0.2%
TraversalBench.eoModify size=64 654.8 656.1 +0.2%
CapsBench.modifyDirect - 3.1 3.1 -0.2%
PrismBench.eoGetOptionAbsent - 0.7 0.7 +0.2%
PowerSeriesBench.naive_powerEach size=256 1,332.1 1,329.5 -0.2%
AvroVulcanBench.encode_vulcanRaw - 178.4 178.8 +0.2%
PowerSeriesBench.monocle_powerEach size=16 427.8 427.0 -0.2%
AffineFoldBench.eoGetOption_0_asOptional - 1.8 1.8 -0.2%
OptionalBench.eoModify_loyalty - 13.4 13.4 -0.2%
CompositionBench.reuseLensOptional3 - 47.2 47.3 +0.2%
PrismBench.eoGetRightPresent - 2.0 2.0 +0.2%
AvroEncodeRouteBench.eo_encodeToAny - 43.2 43.2 +0.2%
OrderAvroBench.naiveModifyStreet size=64 4,828.4 4,837.3 +0.2%
CapsBench.foldMapDirect - 16.2 16.2 +0.2%
GenericsBench.genLensModify - 2.9 2.9 +0.2%
OrderJsoniterBench.nativeSumPrices size=64 6,306.7 6,317.9 +0.2%
PowerSeriesPrismBench.monocle_sparse size=8 230.8 231.2 +0.2%
PrismBench.mGetRightPresent - 2.1 2.1 +0.2%
OrderAvroBench.eoModifyStreet size=8 93.2 93.4 +0.2%
PlatedBench.visitorTransformExpr n=64 789.3 790.6 +0.2%
TraversalBench.mModify size=64 1,515.1 1,517.7 +0.2%
TraversalBench.mFoldPrices size=64 1,709.5 1,706.8 -0.2%
PlatedBench.eoTransformExpr n=4096 102,102.1 101,943.5 -0.2%
OrderAvroBench.naiveReadStreet size=64 2,650.5 2,646.5 -0.1%
JsoniterBench.cReadId size=64 20,103.9 20,075.0 -0.1%
IsoBench.eoReverseGet - 2.6 2.6 +0.1%
JsoniterBench.cReadId size=512 159,566.5 159,795.2 +0.1%
OrderJsoniterBench.eoReadStreet size=8 164.3 164.0 -0.1%
SetterBench.eoModify_0 - 1.9 1.9 -0.1%
CapsBench.modifyCap - 3.2 3.2 -0.1%
FoldBench.mFoldMap size=64 125.0 124.8 -0.1%
OptionalBench.mModify_loyalty_empty - 1.2 1.2 -0.1%
CapsBench.foldMapCap - 16.3 16.3 -0.1%
PowerSeriesBench.naive_powerEach size=64 327.8 328.3 +0.1%
PlatedBench.mTransformExpr n=4096 134,071.0 134,239.7 +0.1%
OptionalBench.eoModify_3 - 47.8 47.8 -0.1%
CapsBench.modifyDeepCap - 24.0 24.0 +0.1%
ReviewBench.eoReverseGet_6 - 27.7 27.7 +0.1%
OrderCirceBench.eoStreet size=8 768.4 769.3 +0.1%
OrderCirceBench.monocleNames size=64 19,016.9 18,994.9 -0.1%
CompositionBench.reuseLens3 - 37.4 37.4 +0.1%
OrderCirceBench.hcursorStreet size=512 793.2 792.3 -0.1%
AvroBytesBench.prunedReadPartner - 448.2 447.6 -0.1%
OrderJsoniterBench.monocleReadStreet size=8 1,405.4 1,403.8 -0.1%
GenericsBench.rawPrismModifyHit - 1.8 1.8 -0.1%
OrderCirceBench.monocleNames size=8 2,795.0 2,798.1 +0.1%
AvroVulcanBench.rootGet_bridged - 268.6 268.3 -0.1%
AffineFoldBench.eoGetOption_6 - 22.6 22.6 +0.1%
SetterBench.mModify_orderId - 2.6 2.6 -0.1%
CapsBench.getDerivedHeld - 1.8 1.8 +0.1%
OrderJsoniterBench.naiveReadStreet size=512 73,314.1 73,392.2 +0.1%
OptionalBench.mModify_loyalty - 12.9 12.9 -0.1%
AvroVulcanBench.decode_native - 13.2 13.2 +0.1%
SetterBench.eoModify_3 - 9.5 9.5 -0.1%
IsoBench.mGet - 2.9 2.9 -0.1%
ReviewBench.naiveBuild_0 - 1.9 1.9 -0.1%
AvroVulcanBench.decode_vulcanRaw - 142.6 142.7 +0.1%
ZioDiBench.eoServiceGet - 4.0 4.0 +0.1%
OptionalBench.mReplace_loyalty - 5.9 5.9 -0.1%
FoldBench.eoFoldPrices size=512 1,901.2 1,899.6 -0.1%
CapsBench.foldMapDerivedPerCall - 16.2 16.3 +0.1%
FoldBench.eoFoldMap size=8 16.2 16.2 -0.1%
PowerSeriesBench.eoModify_powerEach size=64 628.8 629.3 +0.1%
PlatedBench.eoUniverseDeep n=4096 104,022.6 103,935.6 -0.1%
FoldBench.mFoldPrices size=64 119.2 119.3 +0.1%
FoldBench.mFoldMap size=8 15.9 15.9 -0.1%
PowerSeriesNestedBench.naive_nested size=1024 19,983.4 19,999.5 +0.1%
CompositionBench.reuseLens6 - 104.3 104.2 -0.1%
GetterBench.mGet_3 - 6.6 6.6 -0.1%
CapsBench.foldMapDerivedHeld - 16.6 16.6 -0.1%
GenericsBench.rawPrismGetHit - 1.4 1.4 -0.1%
PlatedBench.mUniverseExpr n=512 146,568.7 146,475.2 -0.1%
GetterBench.eoGet_6 - 24.6 24.6 +0.1%
OrderJsoniterBench.monocleSumPrices size=8 1,879.3 1,878.1 -0.1%
IsoBench.mReverseGet - 2.5 2.5 -0.1%
PlatedBench.visitorUniverseExpr n=64 630.0 630.4 +0.1%
TraversalBench.eoFoldNested size=64 419.7 419.5 -0.1%
MultiFocusCollectBench.naive_listSum - 25.8 25.8 -0.1%
AffineFoldBench.eoGetOption_0 - 0.7 0.7 -0.0%
LensBench.mGet - 0.9 0.9 +0.0%
GetterBench.eoGet_3 - 13.9 13.9 -0.0%
GenericsBench.genPrismGetHit - 1.8 1.8 -0.0%
OptionalBench.eoModify_0_empty - 1.0 1.0 -0.0%
AffineFoldBench.eoGetOption_3 - 11.6 11.6 -0.0%
TraversalBench.mModify size=8 213.6 213.7 +0.0%
OptionalBench.eoModify_loyalty_empty - 1.1 1.1 -0.0%
PlatedBench.visitorTransformExpr n=512 6,453.2 6,450.7 -0.0%
AvroDecodeReuseBench.freshDecodeRecord - 1,032.4 1,032.8 +0.0%
LensBench.mModifyDeep - 23.2 23.2 +0.0%
MultiFocusBench.naive_sumQty size=32 49.8 49.8 -0.0%
PowerSeriesBench.naive_powerEach size=16 83.3 83.4 +0.0%
PlatedBench.visitorUniverseExpr n=4096 44,398.2 44,413.9 +0.0%
OrderCirceBench.directStreet size=8 761.6 761.4 -0.0%
PrismBench.mReverseGet - 2.0 2.0 -0.0%
OrderCirceBench.naiveNames size=64 17,515.4 17,520.5 +0.0%
OrderCirceBench.hcursorStreet size=64 795.7 795.5 -0.0%
PowerSeriesNestedBench.naive_nested size=256 5,059.7 5,058.6 -0.0%
PlatedBench.visitorTransformDeep n=4096 36,462.9 36,456.8 -0.0%
FoldBench.mFoldPrices size=8 16.4 16.4 +0.0%
OptionalBench.eoModify_6 - 114.2 114.1 -0.0%
PlatedBench.visitorUniverseJson n=64 1,909.5 1,909.2 -0.0%
PlatedBench.eoTransformExpr n=64 1,556.2 1,556.4 +0.0%
KyoDiBench.handMapDrillModify - 27.7 27.7 -0.0%
OrderAvroBench.eoModifyNames size=512 27,080.5 27,076.8 -0.0%
OpticBuildBench.build - 36.5 36.5 -0.0%
GenericsBench.rawLensModify - 2.0 2.0 -0.0%
ReviewBench.eoReverseGet_3 - 15.9 15.9 -0.0%
MultiFocusBench.naive_listMap size=4 30.6 30.6 -0.0%
AvroJsonBridgeBench.eoClickToAvro - 2,322.9 2,323.1 +0.0%
OrderAvroBench.naiveModifyNames size=512 49,198.3 49,202.9 +0.0%
CompositionBench.reuseLens1 - 12.9 12.9 +0.0%
OrderCirceBench.monocleStreet size=512 131,040.1 131,033.2 -0.0%
OrderJsoniterBench.naiveSumPrices size=64 9,621.6 9,622.1 +0.0%
OptionalBench.mReplace_0 - 2.9 2.9 -0.0%
PowerSeriesBench.naive_powerEach size=4 20.7 20.7 -0.0%
AffineFoldBench.mGetOption_0 - 0.7 0.7 -0.0%

base_sha: 52671355828954ede8dbefa5fd98220e160ebecd · head_sha: bd70359d2fa4088bed0e296315d245f6c8c7d53d · 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

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