From 2a19dc217cd15ad8170d890ef7dbf46bf76037ea Mon Sep 17 00:00:00 2001 From: Yunfei He Date: Tue, 25 Aug 2026 10:09:48 +0800 Subject: [PATCH 1/3] Update Taffy to 0.14.0 --- .agents/docs/binding-cases.md | 28 +++++++------- .agents/docs/binding-mapping.md | 2 +- .agents/docs/query-api-design.md | 10 ++--- .agents/docs/taffyjs-yoga-reference.md | 4 +- .agents/docs/technology-stack.md | 2 +- Cargo.lock | 4 +- Cargo.toml | 2 +- apps/website/node/index.md | 2 +- apps/website/wasm/index.md | 2 +- packages/taffyjs-node/README.md | 2 +- packages/taffyjs-wasm/README.md | 2 +- packages/taffyjs-yoga-wasm/README.md | 2 +- packages/taffyjs-yoga/COMPATIBILITY.md | 2 +- packages/taffyjs-yoga/README.md | 2 +- .../tests/layouts/algorithms.test.mts | 38 +++++++++++++++---- .../tests/tree/compute-layout.test.mts | 10 ++--- 16 files changed, 68 insertions(+), 46 deletions(-) diff --git a/.agents/docs/binding-cases.md b/.agents/docs/binding-cases.md index 6f382a7..340ff42 100644 --- a/.agents/docs/binding-cases.md +++ b/.agents/docs/binding-cases.md @@ -8,7 +8,7 @@ The feedback loop is: apply the current rules to concrete upstream behavior; dis Direct reads still materialize complete snapshots. The measured callback path now preserves the same complete Style capability through on-demand `getStyle()` delivery as recorded in the [read boundary](architecture.md#read-boundary); selective reads remain separate work under the [performance TODO](api-alignment-todos.md#performance). -The evidence baseline for this case is Taffy at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51), napi 3.12.0, napi-derive 3.6.2, and @napi-rs/cli 3.8.2. +The evidence baseline for this case is Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), napi 3.12.0, napi-derive 3.6.2, and @napi-rs/cli 3.8.2. ## Case 1: TaffyTree layout state and node identities @@ -91,9 +91,9 @@ This case is closed as an API mapping exercise. It fixes the outer state owner, ### Evidence -- [TaffyTree and NodeData implementation](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs) -- [NodeId implementation](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/node.rs) -- [Layout implementation](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/layout.rs) +- [TaffyTree and NodeData implementation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs) +- [NodeId implementation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/node.rs) +- [Layout implementation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/layout.rs) - [ECMAScript Map objects](https://tc39.es/ecma262/multipage/keyed-collections.html#sec-map-objects) - [ECMAScript SameValueZero comparison](https://tc39.es/ecma262/multipage/abstract-operations.html#sec-samevaluezero) @@ -614,15 +614,15 @@ The shared definition and stable codes that this case originally left open are n ### Evidence -- [Taffy Style definition and defaults](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/mod.rs) -- [Taffy semantic length types](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/dimension.rs) -- [Taffy alignment types](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/alignment.rs) +- [Taffy Style definition and defaults](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/mod.rs) +- [Taffy semantic length types](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/dimension.rs) +- [Taffy alignment types](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/alignment.rs) - [CSS Box Alignment overflow-position values](https://www.w3.org/TR/css-align-3/#overflow-values) -- [Taffy geometry types](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/geometry.rs) -- [Taffy grid Style types](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/grid.rs) +- [Taffy geometry types](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/geometry.rs) +- [Taffy grid Style types](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/grid.rs) - [Yoga 3.2.1 JavaScript wrapper](https://github.com/facebook/yoga/blob/v3.2.1/javascript/src/wrapAssembly.ts) - [Yoga 3.2.1 native Style normalization](https://github.com/facebook/yoga/blob/v3.2.1/yoga/style/Style.h) -- [TaffyTree Style operations and measurement](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs) +- [TaffyTree Style operations and measurement](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs) - [napi-rs object conversion](https://napi.rs/docs/concepts/type-conversions) - [napi-rs enum conversion](https://napi.rs/docs/concepts/enum) - [TypeScript enum objects and const-enum publication pitfalls](https://www.typescriptlang.org/docs/handbook/enums) @@ -718,10 +718,10 @@ Retaining a callback's owned `getStyle` provider remains supported and does not ### Evidence -- [TaffyTree context, dirty-state, and compute operations](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs) -- [Taffy root and cached layout computation](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/mod.rs) -- [Taffy leaf measurement](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/leaf.rs) -- [Taffy per-node cache behavior](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/cache.rs) +- [TaffyTree context, dirty-state, and compute operations](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs) +- [Taffy root and cached layout computation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/mod.rs) +- [Taffy leaf measurement](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/leaf.rs) +- [Taffy per-node cache behavior](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/cache.rs) - [napi-rs scoped function calls and pending-exception capture](https://github.com/napi-rs/napi-rs/blob/napi-v3.12.0/crates/napi/src/bindgen_runtime/js_values/function.rs) - [napi-rs JavaScript exception retention](https://github.com/napi-rs/napi-rs/blob/napi-v3.12.0/crates/napi/src/error.rs) - [Yoga 3.2.1 JavaScript measure wrapper](https://github.com/facebook/yoga/blob/v3.2.1/javascript/src/wrapAssembly.ts) diff --git a/.agents/docs/binding-mapping.md b/.agents/docs/binding-mapping.md index 9c9769e..a9c6366 100644 --- a/.agents/docs/binding-mapping.md +++ b/.agents/docs/binding-mapping.md @@ -2,7 +2,7 @@ This is the current reference for Rust/JavaScript conversion and safety in `@taffyjs/node`. It describes the implemented Taffy boundary. Product choices that should constrain future work are recorded in [@taffyjs/node decisions](taffyjs-node-decisions.md). -Recheck version-sensitive behavior whenever Taffy, napi-rs, Node.js, or TypeScript changes. The primary upstream references are [TaffyTree](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs), [Style](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/mod.rs), [geometry](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/geometry.rs), and [napi-rs conversions](https://napi.rs/docs/concepts/type-conversions). +Recheck version-sensitive behavior whenever Taffy, napi-rs, Node.js, or TypeScript changes. The primary upstream references are [TaffyTree](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs), [Style](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/mod.rs), [geometry](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/geometry.rs), and [napi-rs conversions](https://napi.rs/docs/concepts/type-conversions). ## Scope and ownership diff --git a/.agents/docs/query-api-design.md b/.agents/docs/query-api-design.md index 1ed178e..c765a62 100644 --- a/.agents/docs/query-api-design.md +++ b/.agents/docs/query-api-design.md @@ -82,13 +82,13 @@ This design is deliberately smaller than a general query language. ## Why this boundary remains valid -The values covered by this design are finite and non-recursive in the Taffy revision currently pinned by TaffyJS, [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51). +The values covered by this design are finite and non-recursive in the Taffy revision currently pinned by TaffyJS, [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). -- [`Layout`](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/layout.rs#L263-L294) contains numbers and fixed Point, Size, and Rect records. -- [`DetailedLayoutInfo`](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/layout.rs#L402-L410) currently contains either no details or a Grid value. The Grid details contain fixed records plus arrays of fixed line-position records, line-name strings, and numbers rather than another DetailedLayoutInfo value. -- Style contains fixed records, tagged variants, and collections, but those collections have bounded element shapes. For example, [`GridTemplateComponent::Repeat`](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/grid.rs#L1639-L1648) contains a list of TrackSizingFunction values rather than another list of GridTemplateComponent values. CSS Grid also specifies that [`repeat()` cannot be nested](https://www.w3.org/TR/css-grid/#repeat-notation). +- [`Layout`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/layout.rs#L263-L294) contains numbers and fixed Point, Size, and Rect records. +- [`DetailedLayoutInfo`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/layout.rs#L402-L410) currently contains either no details or a Grid value. The Grid details contain fixed records plus arrays of fixed line-position records, line-name strings, and numbers rather than another DetailedLayoutInfo value. +- Style contains fixed records, tagged variants, and collections, but those collections have bounded element shapes. For example, [`GridTemplateComponent::Repeat`](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/grid.rs#L1639-L1648) contains a list of TrackSizingFunction values rather than another list of GridTemplateComponent values. CSS Grid also specifies that [`repeat()` cannot be nested](https://www.w3.org/TR/css-grid/#repeat-notation). -Two related structures are recursive, but neither is embedded in these per-node values. The Taffy node tree refers to children through NodeId and belongs to the tree API. CSS math functions such as `calc()`, `min()`, `max()`, and `clamp()` have a recursive [calculation-tree model](https://www.w3.org/TR/css-values-4/#calc-internal), but [Taffy stores a calc value as an opaque pointer-like handle resolved by the surrounding tree implementation](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/compact_length.rs#L210-L270), not as an expression tree inside Style. +Two related structures are recursive, but neither is embedded in these per-node values. The Taffy node tree refers to children through NodeId and belongs to the tree API. CSS math functions such as `calc()`, `min()`, `max()`, and `clamp()` have a recursive [calculation-tree model](https://www.w3.org/TR/css-values-4/#calc-internal), but [Taffy stores a calc value as an opaque pointer-like handle resolved by the surrounding tree implementation](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/compact_length.rs#L210-L270), not as an expression tree inside Style. New layout features may add fields, variants, collections, or relationships between nodes without making a per-node Style or Layout recursively contain itself. Those changes can extend the generated selectors without changing this model. If TaffyJS later exposes a genuinely recursive value such as a raw CSS expression tree or layout-fragment tree, the existing query can return the whole value or a reference to it without descending recursively, or that new value can receive a separately designed API. diff --git a/.agents/docs/taffyjs-yoga-reference.md b/.agents/docs/taffyjs-yoga-reference.md index 17e50e6..ba26148 100644 --- a/.agents/docs/taffyjs-yoga-reference.md +++ b/.agents/docs/taffyjs-yoga-reference.md @@ -33,8 +33,8 @@ Primary sources: - [Yoga pixel-grid processing](https://github.com/facebook/yoga/blob/v3.2.1/yoga/algorithm/PixelGrid.cpp) - [Yoga flex-basis experiment branch](https://github.com/facebook/yoga/blob/v3.2.1/yoga/algorithm/CalculateLayout.cpp) - [Yoga WebFlexBasis relayout regression](https://github.com/facebook/yoga/blob/v3.2.1/tests/YGRelayoutTest.cpp) -- [Taffy Style](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/style/mod.rs) -- [Taffy tree and layout storage](https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs) +- [Taffy Style](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/style/mod.rs) +- [Taffy tree and layout storage](https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs) - [Current @taffyjs/node tree wrapper](../../packages/taffyjs-node/src/tree.ts) The inventory includes package exports, intentional named runtime and type exports, members on the default Yoga object, declared factories and methods, and deliberate behavior added by the JavaScript wrapper. It excludes undocumented Emscripten or Embind implementation artifacts such as the runtime Z property found on factory objects. diff --git a/.agents/docs/technology-stack.md b/.agents/docs/technology-stack.md index bfbef88..ab3a19a 100644 --- a/.agents/docs/technology-stack.md +++ b/.agents/docs/technology-stack.md @@ -2,7 +2,7 @@ ## Native bindings and distribution -The binding depends on Taffy by exact Git revision, currently [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51). The repository publishes npm packages and no Rust crate, so a revision requirement carries no crates.io restriction, and the pinned revision contains upstream fixes that no Taffy release contains. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That comparison explains why the project does not fall back to the release tag; it is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host and is normally refreshed after a dependency change. A refresh for `8d13fdc8` remains pending: three complete attempts on 2026-08-23 were rejected by the existing stability gates in different scenarios, so `benchmarks/results/published.json` deliberately remains the dataset from source commit `ccb0c0c108e390bcc88a6832d930a2498bd0630f` and must not be treated as evidence for the current pin. Each published package names the exact revision in its README. +The binding depends on Taffy by exact Git revision, currently [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), which is also the Taffy 0.14.0 release commit. The repository publishes npm packages and no Rust crate, so a Git requirement carries no crates.io restriction and makes the audited source commit explicit in each package README. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That historical comparison is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host, identifies its TaffyJS source commit, and is normally refreshed after a dependency change. napi-rs owns the Rust-to-Node boundary, private native declarations, native loader, and target-specific package metadata. It generates an ESM loader, which Vite+ bundles into the ESM public entry without maintaining a custom loader. The pinned napi-rs template deliberately emits bare Node builtin specifiers to retain Node 12 compatibility; TaffyJS targets Node 22.20 or newer, so the repository mechanically normalizes those generated specifiers to the explicit `node:` protocol before formatting and bundling the loader. diff --git a/Cargo.lock b/Cargo.lock index ec5b803..69f687f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -313,8 +313,8 @@ dependencies = [ [[package]] name = "taffy" -version = "0.13.0" -source = "git+https://github.com/DioxusLabs/taffy?rev=8d13fdc88468c83f01b13b36fadc0349950c6f51#8d13fdc88468c83f01b13b36fadc0349950c6f51" +version = "0.14.0" +source = "git+https://github.com/DioxusLabs/taffy?rev=77f385683c1d698c91a23a259f87fdddf26925fb#77f385683c1d698c91a23a259f87fdddf26925fb" dependencies = [ "arrayvec", "serde", diff --git a/Cargo.toml b/Cargo.toml index 4b85260..6a6611c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,7 +11,7 @@ rust-version = "1.88" napi = { version = "=3.12.0", features = ["napi8"] } napi-build = "=2.4.0" napi-derive = "=3.6.2" -taffy = { git = "https://github.com/DioxusLabs/taffy", rev = "8d13fdc88468c83f01b13b36fadc0349950c6f51" } +taffy = { git = "https://github.com/DioxusLabs/taffy", rev = "77f385683c1d698c91a23a259f87fdddf26925fb" } [profile.release] lto = true diff --git a/apps/website/node/index.md b/apps/website/node/index.md index 4dab853..e8d6f55 100644 --- a/apps/website/node/index.md +++ b/apps/website/node/index.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the native Node-API binding for Taffy at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51), an upstream commit after the 0.13.0 release. It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. +`@taffyjs/node` is the native Node-API binding for Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), the Taffy 0.14.0 release commit. It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. Follow [Getting Started](../guide/getting-started.md) to install the package and compute a first layout. diff --git a/apps/website/wasm/index.md b/apps/website/wasm/index.md index 8997e7b..c0d0a5d 100644 --- a/apps/website/wasm/index.md +++ b/apps/website/wasm/index.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, over Taffy at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51). Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. +`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, over Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. Read the [Design](./design.md) to understand how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/packages/taffyjs-node/README.md b/packages/taffyjs-node/README.md index 2582445..e86dd47 100644 --- a/packages/taffyjs-node/README.md +++ b/packages/taffyjs-node/README.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the ESM-only Node-API binding for Taffy at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51), an upstream commit after the 0.13.0 release. It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. +`@taffyjs/node` is the ESM-only Node-API binding for Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), the Taffy 0.14.0 release commit. It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. Install it with npm: diff --git a/packages/taffyjs-wasm/README.md b/packages/taffyjs-wasm/README.md index f100cc7..43e3c2e 100644 --- a/packages/taffyjs-wasm/README.md +++ b/packages/taffyjs-wasm/README.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the Taffy layout engine, at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51), as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. +`@taffyjs/wasm` runs the Taffy layout engine, at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. The [Design](../../apps/website/wasm/design.md) explains how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/packages/taffyjs-yoga-wasm/README.md b/packages/taffyjs-yoga-wasm/README.md index fc29bcd..6c06c20 100644 --- a/packages/taffyjs-yoga-wasm/README.md +++ b/packages/taffyjs-yoga-wasm/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga-wasm -`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. Taffy is at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51). +`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. Taffy is at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). The [Design](../../apps/website/yoga-wasm/design.md) explains why the Yoga-facing model and runtime transport remain separate choices. diff --git a/packages/taffyjs-yoga/COMPATIBILITY.md b/packages/taffyjs-yoga/COMPATIBILITY.md index 36ef08b..6475495 100644 --- a/packages/taffyjs-yoga/COMPATIBILITY.md +++ b/packages/taffyjs-yoga/COMPATIBILITY.md @@ -61,7 +61,7 @@ When an upstream enum type also contains values that are Unsupported for one pro ## Upstream work in progress -The compatibility tables describe what the current package can do with its pinned Taffy dependency, revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51). Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. +The compatibility tables describe what the current package can do with its pinned Taffy dependency, revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. | Capability | Upstream status | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/packages/taffyjs-yoga/README.md b/packages/taffyjs-yoga/README.md index f9cbbb4..f7d6f80 100644 --- a/packages/taffyjs-yoga/README.md +++ b/packages/taffyjs-yoga/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga -`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy, at revision [`8d13fdc8`](https://github.com/DioxusLabs/taffy/commit/8d13fdc88468c83f01b13b36fadc0349950c6f51), remains the only layout engine. +`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy, at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), remains the only layout engine. The [Design](../../apps/website/yoga/design.md) explains which parts of Yoga the facade preserves, which parts stay owned by Taffy, and how unsupported behavior is reported. diff --git a/tests/taffyjs-node/tests/layouts/algorithms.test.mts b/tests/taffyjs-node/tests/layouts/algorithms.test.mts index cd59f32..72d5ec0 100644 --- a/tests/taffyjs-node/tests/layouts/algorithms.test.mts +++ b/tests/taffyjs-node/tests/layouts/algorithms.test.mts @@ -44,14 +44,14 @@ function computeChildren(rootStyle: StyleInput, childStyles: readonly StyleInput }; } -// Every fixed layout value below is pinned to the exact Taffy sources at revision 8d13fdc8: -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/block.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/float.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/flexbox.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/grid/mod.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/grid/placement.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/grid/track_sizing.rs -// https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/mod.rs +// Every fixed layout value below is pinned to the exact Taffy sources at revision 77f38568: +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/float.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/flexbox.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/mod.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/placement.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/grid/track_sizing.rs +// https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/mod.rs test("block-float", () => { const block = computeChildren({ display: Display.Block, size: { width: 100 } }, [ @@ -154,6 +154,28 @@ test("flex", () => { assert.deepEqual(tree.getUnroundedLayout(second).location, { x: 50.5, y: 0 }); }); +test("flex descendants can overflow an ancestor max width", () => { + const tree = new TaffyTree(); + const leaf = tree.newLeaf({ + flexGrow: 1, + size: { width: 86 }, + }); + const middle = tree.newWithChildren([leaf]); + const root = tree.newWithChildren([middle], { + maxSize: { width: 8 }, + }); + + tree.computeLayout({ + root, + availableSpace: { width: 900, height: 700 }, + }); + + assert.deepEqual( + [root, middle, leaf].map((node) => tree.getUnroundedLayout(node).size.width), + [8, 86, 86], + ); +}); + test("balanced flex wrapping honors flexLineCount", () => { const tree = new TaffyTree(); tree.disableRounding(); diff --git a/tests/taffyjs-node/tests/tree/compute-layout.test.mts b/tests/taffyjs-node/tests/tree/compute-layout.test.mts index 4e69cd6..b5eb406 100644 --- a/tests/taffyjs-node/tests/tree/compute-layout.test.mts +++ b/tests/taffyjs-node/tests/tree/compute-layout.test.mts @@ -40,8 +40,8 @@ function wrapperState(tree: TaffyTree, nodes: readonly NodeId[]) { test("algorithms", () => { // Pinned upstream routing, cache, and hidden-layout sources for these values: - // https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/tree/taffy_tree.rs#L284-L329 - // https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/mod.rs#L278-L290 + // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/tree/taffy_tree.rs#L284-L329 + // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/mod.rs#L278-L290 const cases = [ ["Flex", Display.Flex, {}], ["Grid", Display.Grid, {}], @@ -94,7 +94,7 @@ test("algorithms", () => { test("percentage-content", () => { // Pinned upstream block percentage and scrollable-overflow source for these values: - // https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/block.rs#L566-L746 + // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs#L566-L746 const tree = new TaffyTree(); const child = tree.newLeaf({ size: { width: Dimension.Percent(50), height: 80 }, @@ -116,8 +116,8 @@ test("percentage-content", () => { test("scrollable-overflow", () => { // Pinned upstream scrollable-overflow sources for these values: - // https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/common/scrollable_overflow.rs - // https://github.com/DioxusLabs/taffy/blob/8d13fdc88468c83f01b13b36fadc0349950c6f51/src/compute/block.rs + // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/common/scrollable_overflow.rs + // https://github.com/DioxusLabs/taffy/blob/77f385683c1d698c91a23a259f87fdddf26925fb/src/compute/block.rs const padded = new TaffyTree(); padded.disableRounding(); const paddedChild = padded.newLeaf({ size: { width: 30, height: 20 } }); From a7229d11c420cadad23cee68f7257437c322d0f7 Mon Sep 17 00:00:00 2001 From: Yunfei He Date: Tue, 25 Aug 2026 10:17:36 +0800 Subject: [PATCH 2/3] Refresh published benchmarks --- benchmarks/results/published.json | 3250 ++++++++++++++--------------- 1 file changed, 1625 insertions(+), 1625 deletions(-) diff --git a/benchmarks/results/published.json b/benchmarks/results/published.json index 4f17116..6d61622 100644 --- a/benchmarks/results/published.json +++ b/benchmarks/results/published.json @@ -1,14 +1,14 @@ { "schemaVersion": 3, - "generatedAt": "2026-08-23T05:23:11.666Z", + "generatedAt": "2026-08-25T02:16:51.246Z", "source": { - "commit": "ccb0c0c108e390bcc88a6832d930a2498bd0630f", + "commit": "2a19dc217cd15ad8170d890ef7dbf46bf76037ea", "dirty": false }, "environment": { "node": "v24.19.0", "platform": "darwin", - "release": "25.5.0", + "release": "25.6.0", "arch": "arm64", "cpu": "Apple M3 Pro" }, @@ -89,200 +89,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 301.3678305127598, - "meanMs": 3.3247056532628836, - "medianMs": 3.233645999999908, - "minMs": 2.992416999999932, - "maxMs": 11.44833299999982, - "p75Ms": 3.3964999999998895, - "p99Ms": 4.2938744999999585, - "maxRelativeMarginOfError": 0.9616486572757207, - "measureCalls": 791, + "hz": 4041.3692507037267, + "meanMs": 0.24744381953388303, + "medianMs": 0.23456249999998136, + "minMs": 0.22470799999996416, + "maxMs": 2.855957999999987, + "p75Ms": 0.2449789999998302, + "p99Ms": 0.40627100000006067, + "maxRelativeMarginOfError": 0.4562268413524829, + "measureCalls": 5, "readCount": 4656, "roundCount": 2, - "sampleCount": 1508, + "sampleCount": 20208, "rounds": [ { - "hz": 288.04103853390666, - "meanMs": 3.471727518723987, - "medianMs": 3.3465000000001055, - "minMs": 3.0385829999997895, - "maxMs": 10.329459000000043, - "p75Ms": 3.5794999999998254, - "p99Ms": 4.8711660000000165, - "relativeMarginOfError": 0.9616486572757207, - "sampleCount": 721 + "hz": 4027.46118468987, + "meanMs": 0.24829537868705837, + "medianMs": 0.2351250000000391, + "minMs": 0.22470799999996416, + "maxMs": 2.239458999999897, + "p75Ms": 0.2464999999997417, + "p99Ms": 0.4237920000000486, + "relativeMarginOfError": 0.45146492352936674, + "sampleCount": 10069 }, { - "hz": 314.6946224916129, - "meanMs": 3.1776837878017807, - "medianMs": 3.1207919999997102, - "minMs": 2.992416999999932, - "maxMs": 11.44833299999982, - "p75Ms": 3.2134999999999536, - "p99Ms": 3.7165829999999005, - "relativeMarginOfError": 0.8269483006325214, - "sampleCount": 787 + "hz": 4055.2773167175837, + "meanMs": 0.2465922603807077, + "medianMs": 0.2339999999999236, + "minMs": 0.22474999999985812, + "maxMs": 2.855957999999987, + "p75Ms": 0.24345799999991868, + "p99Ms": 0.38875000000007276, + "relativeMarginOfError": 0.4562268413524829, + "sampleCount": 10139 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 34.99688656382664, - "meanMs": 28.76429208538012, - "medianMs": 27.957478999999978, - "minMs": 25.345125000000053, - "maxMs": 81.09508299999993, - "p75Ms": 28.953145999999947, - "p99Ms": 55.36664599999983, - "maxRelativeMarginOfError": 5.171981746145922, - "measureCalls": 791, + "hz": 46.983959281263004, + "meanMs": 21.285251113624927, + "medianMs": 21.152250000000038, + "minMs": 20.320999999999913, + "maxMs": 27.377415999999812, + "p75Ms": 21.35025050000013, + "p99Ms": 25.705208500000083, + "maxRelativeMarginOfError": 0.7010522064593471, + "measureCalls": 5, "readCount": 4656, "roundCount": 2, - "sampleCount": 176, + "sampleCount": 236, "rounds": [ { - "hz": 32.150153620221246, - "meanMs": 31.10405044444445, - "medianMs": 29.484916999999996, - "minMs": 26.63062500000001, - "maxMs": 81.09508299999993, - "p75Ms": 31.177167000000054, - "p99Ms": 81.09508299999993, - "relativeMarginOfError": 5.171981746145922, - "sampleCount": 81 + "hz": 46.604093633877845, + "meanMs": 21.45734252136751, + "medianMs": 21.335457999999903, + "minMs": 20.77312499999971, + "maxMs": 27.377415999999812, + "p75Ms": 21.51020900000003, + "p99Ms": 26.993625000000065, + "relativeMarginOfError": 0.7010522064593471, + "sampleCount": 117 }, { - "hz": 37.84361950743204, - "meanMs": 26.42453372631579, - "medianMs": 26.43004099999996, - "minMs": 25.345125000000053, - "maxMs": 29.638208999999733, - "p75Ms": 26.72912499999984, - "p99Ms": 29.638208999999733, - "relativeMarginOfError": 0.5189972034326946, - "sampleCount": 95 + "hz": 47.363824928648164, + "meanMs": 21.113159705882342, + "medianMs": 20.969042000000172, + "minMs": 20.320999999999913, + "maxMs": 27.115082999999686, + "p75Ms": 21.190292000000227, + "p99Ms": 24.4167920000001, + "relativeMarginOfError": 0.6728000647881687, + "sampleCount": 119 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 207.022308018537, - "meanMs": 4.83055218839424, - "medianMs": 4.593521000000123, - "minMs": 4.039624999999887, - "maxMs": 24.961457999999993, - "p75Ms": 4.995957999999973, - "p99Ms": 8.336833499999955, - "maxRelativeMarginOfError": 2.121415415309915, - "measureCalls": 543, + "hz": 475.0335665482071, + "meanMs": 2.118990061505086, + "medianMs": 1.9182394999999701, + "minMs": 1.7612920000001395, + "maxMs": 9.467207999999573, + "p75Ms": 2.148250000000189, + "p99Ms": 4.5914169999999785, + "maxRelativeMarginOfError": 2.038839880530137, + "measureCalls": 3, "readCount": 4656, "roundCount": 2, - "sampleCount": 1036, + "sampleCount": 2376, "rounds": [ { - "hz": 205.8500787289416, - "meanMs": 4.857904384466016, - "medianMs": 4.57950000000028, - "minMs": 4.039624999999887, - "maxMs": 24.961457999999993, - "p75Ms": 5.032457999999906, - "p99Ms": 7.7476669999999785, - "relativeMarginOfError": 2.121415415309915, - "sampleCount": 515 + "hz": 513.4738635023134, + "meanMs": 1.947518795171343, + "medianMs": 1.8444999999999254, + "minMs": 1.7612920000001395, + "maxMs": 6.827666999999906, + "p75Ms": 1.9484160000001793, + "p99Ms": 3.6449589999999716, + "relativeMarginOfError": 0.9884126051917673, + "sampleCount": 1284 }, { - "hz": 208.19453730813237, - "meanMs": 4.803199992322463, - "medianMs": 4.607541999999967, - "minMs": 4.069833000000017, - "maxMs": 12.242541999999958, - "p75Ms": 4.959458000000041, - "p99Ms": 8.92599999999993, - "relativeMarginOfError": 1.3774471722770376, - "sampleCount": 521 + "hz": 436.59326959410083, + "meanMs": 2.290461327838829, + "medianMs": 1.9919790000000148, + "minMs": 1.780958999999939, + "maxMs": 9.467207999999573, + "p75Ms": 2.348084000000199, + "p99Ms": 5.5378749999999854, + "relativeMarginOfError": 2.038839880530137, + "sampleCount": 1092 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 29.09165708641494, - "meanMs": 34.37988710304053, - "medianMs": 33.64397950000006, - "minMs": 30.389458999999988, - "maxMs": 76.64970799999992, - "p75Ms": 35.087333499999886, - "p99Ms": 65.56735400000002, - "maxRelativeMarginOfError": 3.7804853213802225, - "measureCalls": 543, + "hz": 37.012033221537266, + "meanMs": 27.01830218817203, + "medianMs": 26.82368749999989, + "minMs": 25.947125000000142, + "maxMs": 32.304874999999925, + "p75Ms": 27.06579150000016, + "p99Ms": 31.146791499999892, + "maxRelativeMarginOfError": 0.7740900543203504, + "measureCalls": 3, "readCount": 4656, "roundCount": 2, - "sampleCount": 146, + "sampleCount": 186, "rounds": [ { - "hz": 29.46856876879986, - "meanMs": 33.934461081081075, - "medianMs": 32.71879200000012, - "minMs": 30.472917000000052, - "maxMs": 76.64970799999992, - "p75Ms": 34.51754200000005, - "p99Ms": 76.64970799999992, - "relativeMarginOfError": 3.7804853213802225, - "sampleCount": 74 + "hz": 37.06814244916942, + "meanMs": 26.977343182795686, + "medianMs": 26.75412499999993, + "minMs": 25.947125000000142, + "maxMs": 32.304874999999925, + "p75Ms": 26.94820800000025, + "p99Ms": 32.304874999999925, + "relativeMarginOfError": 0.7740900543203504, + "sampleCount": 93 }, { - "hz": 28.714745404030023, - "meanMs": 34.825313124999994, - "medianMs": 34.56916699999999, - "minMs": 30.389458999999988, - "maxMs": 54.48500000000013, - "p75Ms": 35.65712499999972, - "p99Ms": 54.48500000000013, - "relativeMarginOfError": 2.6938575313392756, - "sampleCount": 72 + "hz": 36.95592399390512, + "meanMs": 27.059261193548377, + "medianMs": 26.893249999999853, + "minMs": 26.091292000000067, + "maxMs": 29.98870799999986, + "p75Ms": 27.18337500000007, + "p99Ms": 29.98870799999986, + "relativeMarginOfError": 0.5531402273871143, + "sampleCount": 93 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 2221.1020522550243, - "meanMs": 0.45026919423961004, - "medianMs": 0.43479200000001583, - "minMs": 0.41408400000000256, - "maxMs": 2.2432079999999814, - "p75Ms": 0.44697949999999764, - "p99Ms": 0.8586460000000216, - "maxRelativeMarginOfError": 0.6885120201292585, + "hz": 2249.1177254495765, + "meanMs": 0.44470998165478887, + "medianMs": 0.4357705000001033, + "minMs": 0.4167909999996482, + "maxMs": 5.833625000000211, + "p75Ms": 0.44212500000003274, + "p99Ms": 0.5459375000000932, + "maxRelativeMarginOfError": 0.7321138155148602, "measureCalls": 1, "readCount": 4656, "roundCount": 2, - "sampleCount": 11106, + "sampleCount": 11247, "rounds": [ { - "hz": 2242.6161045823605, - "meanMs": 0.44590779400749403, - "medianMs": 0.43812500000012733, - "minMs": 0.41679199999998673, - "maxMs": 1.2577080000000933, - "p75Ms": 0.45062499999994543, - "p99Ms": 0.5751250000000709, - "relativeMarginOfError": 0.20465179527718855, - "sampleCount": 5607 + "hz": 2281.32493152771, + "meanMs": 0.43834176630434707, + "medianMs": 0.432166000000052, + "minMs": 0.4167909999996482, + "maxMs": 1.3375840000003336, + "p75Ms": 0.43816700000024866, + "p99Ms": 0.5135420000000295, + "relativeMarginOfError": 0.2501838642466433, + "sampleCount": 5704 }, { - "hz": 2199.5879999276885, - "meanMs": 0.45463059447172605, - "medianMs": 0.43145899999990434, - "minMs": 0.41408400000000256, - "maxMs": 2.2432079999999814, - "p75Ms": 0.44333400000004985, - "p99Ms": 1.1421669999999722, - "relativeMarginOfError": 0.6885120201292585, - "sampleCount": 5499 + "hz": 2216.910519371443, + "meanMs": 0.45107819700523066, + "medianMs": 0.4393750000001546, + "minMs": 0.42591700000002675, + "maxMs": 5.833625000000211, + "p75Ms": 0.4460829999998168, + "p99Ms": 0.578333000000157, + "relativeMarginOfError": 0.7321138155148602, + "sampleCount": 5543 } ] } @@ -315,200 +315,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 196.25446102414352, - "meanMs": 5.095755547344077, - "medianMs": 5.057416500000045, - "minMs": 4.86691699999983, - "maxMs": 10.109457999999904, - "p75Ms": 5.147270500000104, - "p99Ms": 5.51983400000006, - "maxRelativeMarginOfError": 0.47471112417319156, - "measureCalls": 825, + "hz": 259.40875753379567, + "meanMs": 3.8552165753579737, + "medianMs": 3.771197749999999, + "minMs": 3.520042000000103, + "maxMs": 10.211499999999887, + "p75Ms": 3.8587709999999333, + "p99Ms": 6.337562499999876, + "maxRelativeMarginOfError": 1.0741723773910767, + "measureCalls": 785, "readCount": 4656, "roundCount": 2, - "sampleCount": 982, + "sampleCount": 1299, "rounds": [ { - "hz": 194.67520073711444, - "meanMs": 5.136761108829575, - "medianMs": 5.0882910000000265, - "minMs": 4.895874999999933, - "maxMs": 10.109457999999904, - "p75Ms": 5.199125000000095, - "p99Ms": 5.666709000000083, - "relativeMarginOfError": 0.47471112417319156, - "sampleCount": 487 + "hz": 261.6841127336274, + "meanMs": 3.821401267175576, + "medianMs": 3.7539999999999054, + "minMs": 3.520042000000103, + "maxMs": 7.764792000000057, + "p75Ms": 3.833958000000166, + "p99Ms": 5.698041999999987, + "relativeMarginOfError": 0.7464390485198542, + "sampleCount": 655 }, { - "hz": 197.8337213111726, - "meanMs": 5.05474998585858, - "medianMs": 5.026542000000063, - "minMs": 4.86691699999983, - "maxMs": 9.34462499999995, - "p75Ms": 5.095416000000114, - "p99Ms": 5.372959000000037, - "relativeMarginOfError": 0.3799542511131746, - "sampleCount": 495 + "hz": 257.133402333964, + "meanMs": 3.889031883540371, + "medianMs": 3.7883955000000924, + "minMs": 3.5282079999999496, + "maxMs": 10.211499999999887, + "p75Ms": 3.8835839999997006, + "p99Ms": 6.977082999999766, + "relativeMarginOfError": 1.0741723773910767, + "sampleCount": 644 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 33.58744846540054, - "meanMs": 29.781263213785373, - "medianMs": 29.661093749999964, - "minMs": 28.08320900000001, - "maxMs": 34.87266700000009, - "p75Ms": 30.315854000000172, - "p99Ms": 33.11597900000004, - "maxRelativeMarginOfError": 0.8169535358748663, - "measureCalls": 825, + "hz": 34.575115301499466, + "meanMs": 28.922899666666655, + "medianMs": 28.342999999999847, + "minMs": 26.470332999999982, + "maxMs": 40.677208000000064, + "p75Ms": 29.35066699999993, + "p99Ms": 38.67145800000003, + "maxRelativeMarginOfError": 1.6794695713058447, + "measureCalls": 785, "readCount": 4656, "roundCount": 2, - "sampleCount": 169, + "sampleCount": 174, "rounds": [ { - "hz": 33.02887908176751, - "meanMs": 30.276534590361454, - "medianMs": 30.24158299999999, - "minMs": 28.417915999999877, - "maxMs": 34.87266700000009, - "p75Ms": 30.80279100000007, - "p99Ms": 34.87266700000009, - "relativeMarginOfError": 0.8169535358748663, - "sampleCount": 83 + "hz": 34.697799339178204, + "meanMs": 28.820271574712624, + "medianMs": 28.360124999999698, + "minMs": 26.739250000000084, + "maxMs": 36.665707999999995, + "p75Ms": 29.428750000000036, + "p99Ms": 36.665707999999995, + "relativeMarginOfError": 1.1219925482000375, + "sampleCount": 87 }, { - "hz": 34.146017849033576, - "meanMs": 29.285991837209288, - "medianMs": 29.080604499999936, - "minMs": 28.08320900000001, - "maxMs": 31.359290999999985, - "p75Ms": 29.828917000000274, - "p99Ms": 31.359290999999985, - "relativeMarginOfError": 0.5948008764446654, - "sampleCount": 86 + "hz": 34.452431263820735, + "meanMs": 29.025527758620687, + "medianMs": 28.325874999999996, + "minMs": 26.470332999999982, + "maxMs": 40.677208000000064, + "p75Ms": 29.272583999999824, + "p99Ms": 40.677208000000064, + "relativeMarginOfError": 1.6794695713058447, + "sampleCount": 87 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 168.9584847690283, - "meanMs": 5.92099236719179, - "medianMs": 5.8030939999999305, - "minMs": 5.424833000000035, - "maxMs": 13.189833999999792, - "p75Ms": 6.06199950000007, - "p99Ms": 7.587250500000096, - "maxRelativeMarginOfError": 0.9504737389881371, - "measureCalls": 569, + "hz": 419.96749315384136, + "meanMs": 2.3814655141971026, + "medianMs": 2.246614999999906, + "minMs": 2.0156670000001213, + "maxMs": 7.560542000000169, + "p75Ms": 2.3926869999999667, + "p99Ms": 3.809624999999869, + "maxRelativeMarginOfError": 1.0475840614415608, + "measureCalls": 53, "readCount": 4656, "roundCount": 2, - "sampleCount": 845, + "sampleCount": 2101, "rounds": [ { - "hz": 165.57198502144794, - "meanMs": 6.039669089371983, - "medianMs": 5.925270999999839, - "minMs": 5.448041000000103, - "maxMs": 13.189833999999792, - "p75Ms": 6.238207999999986, - "p99Ms": 7.519084000000021, - "relativeMarginOfError": 0.9504737389881371, - "sampleCount": 414 + "hz": 424.902476827209, + "meanMs": 2.3534812210724305, + "medianMs": 2.2257919999997284, + "minMs": 2.0156670000001213, + "maxMs": 7.560542000000169, + "p75Ms": 2.3665829999999914, + "p99Ms": 3.7869580000001406, + "relativeMarginOfError": 1.0475840614415608, + "sampleCount": 1063 }, { - "hz": 172.3449845166087, - "meanMs": 5.802315645011596, - "medianMs": 5.680917000000022, - "minMs": 5.424833000000035, - "maxMs": 9.657083000000057, - "p75Ms": 5.885791000000154, - "p99Ms": 7.6554170000001704, - "relativeMarginOfError": 0.7142112746002534, - "sampleCount": 431 + "hz": 415.0325094804737, + "meanMs": 2.4094498073217747, + "medianMs": 2.2674380000000838, + "minMs": 2.0884580000001733, + "maxMs": 6.5307920000000195, + "p75Ms": 2.418790999999942, + "p99Ms": 3.8322919999995975, + "relativeMarginOfError": 1.029751557579118, + "sampleCount": 1038 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 29.485224851421286, - "meanMs": 33.91542033783785, - "medianMs": 33.271333249999884, - "minMs": 31.631417000000056, - "maxMs": 57.461667000000034, - "p75Ms": 34.52652050000006, - "p99Ms": 47.928270999999995, - "maxRelativeMarginOfError": 2.3134797525004083, - "measureCalls": 569, + "hz": 35.99014312043027, + "meanMs": 27.785397807570206, + "medianMs": 27.34480199999996, + "minMs": 26.253208000000086, + "maxMs": 49.375082999999904, + "p75Ms": 27.74541649999992, + "p99Ms": 44.45181200000002, + "maxRelativeMarginOfError": 1.9724012569697618, + "measureCalls": 53, "readCount": 4656, "roundCount": 2, - "sampleCount": 148, + "sampleCount": 181, "rounds": [ { - "hz": 29.542661109917272, - "meanMs": 33.849354202702706, - "medianMs": 32.862749499999836, - "minMs": 31.631417000000056, - "maxMs": 57.461667000000034, - "p75Ms": 34.359707999999955, - "p99Ms": 57.461667000000034, - "relativeMarginOfError": 2.3134797525004083, - "sampleCount": 74 + "hz": 36.01411786030711, + "meanMs": 27.766888637362626, + "medianMs": 27.21008299999994, + "minMs": 26.253208000000086, + "maxMs": 49.375082999999904, + "p75Ms": 27.602499999999964, + "p99Ms": 49.375082999999904, + "relativeMarginOfError": 1.9724012569697618, + "sampleCount": 91 }, { - "hz": 29.427788592925296, - "meanMs": 33.981486472972996, - "medianMs": 33.67991699999993, - "minMs": 32.163458000000446, - "maxMs": 38.394874999999956, - "p75Ms": 34.693333000000166, - "p99Ms": 38.394874999999956, - "relativeMarginOfError": 0.9036952138605534, - "sampleCount": 74 + "hz": 35.96616838055343, + "meanMs": 27.803906977777782, + "medianMs": 27.479520999999977, + "minMs": 26.33958399999983, + "maxMs": 39.52854100000013, + "p75Ms": 27.888332999999875, + "p99Ms": 39.52854100000013, + "relativeMarginOfError": 1.2131489060627707, + "sampleCount": 90 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1591.1192137890407, - "meanMs": 0.6285901425426215, - "medianMs": 0.5937915000000658, - "minMs": 0.5641250000001037, - "maxMs": 39.38800000000015, - "p75Ms": 0.6100625000001401, - "p99Ms": 1.37287450000008, - "maxRelativeMarginOfError": 3.1298091800737184, + "hz": 1667.3937502904569, + "meanMs": 0.5997692934641536, + "medianMs": 0.5905625000000896, + "minMs": 0.5715420000000222, + "maxMs": 1.8941669999999249, + "p75Ms": 0.5990004999999883, + "p99Ms": 0.7205004999998437, + "maxRelativeMarginOfError": 0.2994556838790838, "measureCalls": 10, "readCount": 4656, "roundCount": 2, - "sampleCount": 7957, + "sampleCount": 8338, "rounds": [ { - "hz": 1611.3600517301516, - "meanMs": 0.6205937642094818, - "medianMs": 0.5879580000000715, - "minMs": 0.5641250000001037, - "maxMs": 39.38800000000015, - "p75Ms": 0.6019580000001952, - "p99Ms": 1.3521660000001248, - "relativeMarginOfError": 3.1298091800737184, - "sampleCount": 4029 + "hz": 1679.3675506763461, + "meanMs": 0.5954622617289833, + "medianMs": 0.5863749999999754, + "minMs": 0.5715420000000222, + "maxMs": 1.8941669999999249, + "p75Ms": 0.5946670000000722, + "p99Ms": 0.7099589999997988, + "relativeMarginOfError": 0.27128237631757884, + "sampleCount": 4199 }, { - "hz": 1570.8783758479296, - "meanMs": 0.6365865208757613, - "medianMs": 0.59962500000006, - "minMs": 0.5697079999999914, - "maxMs": 5.2571660000000975, - "p75Ms": 0.618167000000085, - "p99Ms": 1.393583000000035, - "relativeMarginOfError": 1.0341296404462514, - "sampleCount": 3928 + "hz": 1655.4199499045676, + "meanMs": 0.6040763251993239, + "medianMs": 0.5947500000002037, + "minMs": 0.575666000000183, + "maxMs": 1.7018330000000788, + "p75Ms": 0.6033339999999043, + "p99Ms": 0.7310419999998885, + "relativeMarginOfError": 0.2994556838790838, + "sampleCount": 4139 } ] } @@ -541,200 +541,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 152.2616046156159, - "meanMs": 6.567823947656668, - "medianMs": 6.511146000000053, - "minMs": 6.235458000000108, - "maxMs": 10.74887499999977, - "p75Ms": 6.649729000000093, - "p99Ms": 7.537146000000007, - "maxRelativeMarginOfError": 0.5022850838272583, + "hz": 205.4071733292229, + "meanMs": 4.868422369466147, + "medianMs": 4.798156250000034, + "minMs": 4.657000000000153, + "maxMs": 11.155124999999998, + "p75Ms": 4.877645999999913, + "p99Ms": 6.629437500000051, + "maxRelativeMarginOfError": 0.6874329007792808, "measureCalls": 1074, "readCount": 4656, "roundCount": 2, - "sampleCount": 762, + "sampleCount": 1028, "rounds": [ { - "hz": 153.0587977489602, - "meanMs": 6.533436919060038, - "medianMs": 6.485750000000053, - "minMs": 6.254875000000084, - "maxMs": 10.349790999999868, - "p75Ms": 6.59270800000013, - "p99Ms": 7.477292000000034, - "relativeMarginOfError": 0.42421696337608406, - "sampleCount": 383 + "hz": 206.0191835106091, + "meanMs": 4.853916916666667, + "medianMs": 4.787395999999944, + "minMs": 4.657000000000153, + "maxMs": 11.155124999999998, + "p75Ms": 4.85737499999982, + "p99Ms": 6.2716250000000855, + "relativeMarginOfError": 0.6874329007792808, + "sampleCount": 516 }, { - "hz": 151.46441148227166, - "meanMs": 6.602210976253298, - "medianMs": 6.536542000000054, - "minMs": 6.235458000000108, - "maxMs": 10.74887499999977, - "p75Ms": 6.706750000000056, - "p99Ms": 7.59699999999998, - "relativeMarginOfError": 0.5022850838272583, - "sampleCount": 379 + "hz": 204.7951631478367, + "meanMs": 4.882927822265627, + "medianMs": 4.808916500000123, + "minMs": 4.660499999999956, + "maxMs": 8.802249999999958, + "p75Ms": 4.897917000000007, + "p99Ms": 6.987250000000017, + "relativeMarginOfError": 0.6505564889357112, + "sampleCount": 512 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 30.93423331313398, - "meanMs": 32.328937933421, - "medianMs": 32.05966599999988, - "minMs": 30.82950000000028, - "maxMs": 37.519209000000046, - "p75Ms": 32.561187499999846, - "p99Ms": 36.34431300000006, - "maxRelativeMarginOfError": 0.8563375321416294, + "hz": 31.89268554257088, + "meanMs": 31.355152850000003, + "medianMs": 30.904541499999993, + "minMs": 29.888832999999977, + "maxMs": 41.26954100000012, + "p75Ms": 31.552791999999954, + "p99Ms": 40.64110400000004, + "maxRelativeMarginOfError": 1.1728164351962973, "measureCalls": 1074, "readCount": 4656, "roundCount": 2, - "sampleCount": 156, + "sampleCount": 160, "rounds": [ { - "hz": 30.673753529619855, - "meanMs": 32.60116174025974, - "medianMs": 32.42491599999994, - "minMs": 31.324625000000083, - "maxMs": 35.16941700000007, - "p75Ms": 32.96654100000001, - "p99Ms": 35.16941700000007, - "relativeMarginOfError": 0.565780604424754, - "sampleCount": 77 + "hz": 31.88716301355157, + "meanMs": 31.360582299999997, + "medianMs": 30.881270500000028, + "minMs": 29.993667000000187, + "maxMs": 40.012666999999965, + "p75Ms": 31.548833999999715, + "p99Ms": 40.012666999999965, + "relativeMarginOfError": 1.1728164351962973, + "sampleCount": 80 }, { - "hz": 31.1947130966481, - "meanMs": 32.056714126582264, - "medianMs": 31.69441599999982, - "minMs": 30.82950000000028, - "maxMs": 37.519209000000046, - "p75Ms": 32.155833999999686, - "p99Ms": 37.519209000000046, - "relativeMarginOfError": 0.8563375321416294, - "sampleCount": 79 + "hz": 31.89820807159019, + "meanMs": 31.349723400000006, + "medianMs": 30.92781249999996, + "minMs": 29.888832999999977, + "maxMs": 41.26954100000012, + "p75Ms": 31.556750000000193, + "p99Ms": 41.26954100000012, + "relativeMarginOfError": 1.1598105608524398, + "sampleCount": 80 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 132.26125987610385, - "meanMs": 7.561455911138081, - "medianMs": 7.432416500000016, - "minMs": 6.9040829999999005, - "maxMs": 12.474999999999909, - "p75Ms": 7.704291500000181, - "p99Ms": 10.033250500000008, - "maxRelativeMarginOfError": 0.8573029026509844, + "hz": 184.247382718557, + "meanMs": 5.427699433076717, + "medianMs": 5.236510749999866, + "minMs": 4.93754100000001, + "maxMs": 12.724624999999833, + "p75Ms": 5.435583500000121, + "p99Ms": 8.90581249999991, + "maxRelativeMarginOfError": 1.373097726030248, "measureCalls": 739, "readCount": 4656, "roundCount": 2, - "sampleCount": 662, + "sampleCount": 922, "rounds": [ { - "hz": 133.4997057294765, - "meanMs": 7.490653215568862, - "medianMs": 7.364125000000058, - "minMs": 6.9040829999999005, - "maxMs": 11.615958999999748, - "p75Ms": 7.6342500000000655, - "p99Ms": 10.374833999999964, - "relativeMarginOfError": 0.8144257059602256, - "sampleCount": 334 + "hz": 185.40408617196124, + "meanMs": 5.393624383620681, + "medianMs": 5.225520999999844, + "minMs": 4.93754100000001, + "maxMs": 10.727124999999887, + "p75Ms": 5.43466699999999, + "p99Ms": 7.861290999999937, + "relativeMarginOfError": 0.9649351179491299, + "sampleCount": 464 }, { - "hz": 131.02281402273118, - "meanMs": 7.632258606707301, - "medianMs": 7.500707999999975, - "minMs": 6.983500000000049, - "maxMs": 12.474999999999909, - "p75Ms": 7.774333000000297, - "p99Ms": 9.691667000000052, - "relativeMarginOfError": 0.8573029026509844, - "sampleCount": 328 + "hz": 183.09067926515274, + "meanMs": 5.461774482532753, + "medianMs": 5.247500499999887, + "minMs": 4.985249999999951, + "maxMs": 12.724624999999833, + "p75Ms": 5.436500000000251, + "p99Ms": 9.950333999999884, + "relativeMarginOfError": 1.373097726030248, + "sampleCount": 458 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 25.578197608783334, - "meanMs": 39.10179467620194, - "medianMs": 38.36992724999999, - "minMs": 37.001667, - "maxMs": 64.89604199999985, - "p75Ms": 39.09195849999992, - "p99Ms": 53.611041999999884, - "maxRelativeMarginOfError": 2.944677148215401, + "hz": 26.72664898830231, + "meanMs": 37.416043462686574, + "medianMs": 36.716749999999934, + "minMs": 35.362249999999676, + "maxMs": 47.56325000000015, + "p75Ms": 38.18627099999992, + "p99Ms": 45.688729000000194, + "maxRelativeMarginOfError": 1.1694702059344533, "measureCalls": 739, "readCount": 4656, "roundCount": 2, - "sampleCount": 129, + "sampleCount": 134, "rounds": [ { - "hz": 25.26139167806032, - "meanMs": 39.58610090625, - "medianMs": 38.24635449999994, - "minMs": 37.09462499999995, - "maxMs": 64.89604199999985, - "p75Ms": 39.115749999999935, - "p99Ms": 64.89604199999985, - "relativeMarginOfError": 2.944677148215401, - "sampleCount": 64 + "hz": 26.66419704730822, + "meanMs": 37.5034732238806, + "medianMs": 36.771541999999954, + "minMs": 35.60220799999979, + "maxMs": 43.814208000000235, + "p75Ms": 38.18983400000002, + "p99Ms": 43.814208000000235, + "relativeMarginOfError": 1.154777968513446, + "sampleCount": 67 }, { - "hz": 25.895003539506344, - "meanMs": 38.61748844615388, - "medianMs": 38.49350000000004, - "minMs": 37.001667, - "maxMs": 42.326041999999916, - "p75Ms": 39.0681669999999, - "p99Ms": 42.326041999999916, - "relativeMarginOfError": 0.6516827789112697, - "sampleCount": 65 + "hz": 26.789100929296396, + "meanMs": 37.32861370149254, + "medianMs": 36.66195799999991, + "minMs": 35.362249999999676, + "maxMs": 47.56325000000015, + "p75Ms": 38.18270799999982, + "p99Ms": 47.56325000000015, + "relativeMarginOfError": 1.1694702059344533, + "sampleCount": 67 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 389.71228401067873, - "meanMs": 2.5662310452125197, - "medianMs": 2.5355940000000885, - "minMs": 2.44399999999996, - "maxMs": 4.265958000000182, - "p75Ms": 2.585791499999914, - "p99Ms": 3.006458500000008, - "maxRelativeMarginOfError": 0.3103174430548027, + "hz": 382.3078042083134, + "meanMs": 2.615732676337882, + "medianMs": 2.5709999999998843, + "minMs": 2.51954099999989, + "maxMs": 10.687875000000076, + "p75Ms": 2.60918700000002, + "p99Ms": 3.5477290000000608, + "maxRelativeMarginOfError": 0.8704682831700329, "measureCalls": 87, "readCount": 4656, "roundCount": 2, - "sampleCount": 1949, + "sampleCount": 1913, "rounds": [ { - "hz": 385.9793059510995, - "meanMs": 2.590812472538857, - "medianMs": 2.562667000000147, - "minMs": 2.4839170000000195, - "maxMs": 3.4417499999999563, - "p75Ms": 2.614541999999801, - "p99Ms": 2.9809580000001006, - "relativeMarginOfError": 0.22711044614615708, - "sampleCount": 965 + "hz": 380.8263596813947, + "meanMs": 2.6258686526757646, + "medianMs": 2.5728329999997186, + "minMs": 2.51954099999989, + "maxMs": 10.687875000000076, + "p75Ms": 2.609958000000006, + "p99Ms": 3.866333000000168, + "relativeMarginOfError": 0.8704682831700329, + "sampleCount": 953 }, { - "hz": 393.44526207025797, - "meanMs": 2.5416496178861823, - "medianMs": 2.50852100000003, - "minMs": 2.44399999999996, - "maxMs": 4.265958000000182, - "p75Ms": 2.5570410000000265, - "p99Ms": 3.0319589999999152, - "relativeMarginOfError": 0.3103174430548027, - "sampleCount": 984 + "hz": 383.78924873523215, + "meanMs": 2.6055967, + "medianMs": 2.56916700000005, + "minMs": 2.5236660000000484, + "maxMs": 5.267499999999927, + "p75Ms": 2.608416000000034, + "p99Ms": 3.2291249999999536, + "relativeMarginOfError": 0.460313232332473, + "sampleCount": 960 } ] } @@ -767,200 +767,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 6206.801747167405, - "meanMs": 0.16111454085539934, - "medianMs": 0.1561249999999177, - "minMs": 0.1475420000001577, - "maxMs": 0.6368330000000242, - "p75Ms": 0.1620829999999387, - "p99Ms": 0.24068749999992178, - "maxRelativeMarginOfError": 0.20194318792559426, + "hz": 8303.247181503859, + "meanMs": 0.12043481481525536, + "medianMs": 0.11570849999998245, + "minMs": 0.10875000000010004, + "maxMs": 2.2114999999998872, + "p75Ms": 0.11858350000011342, + "p99Ms": 0.20262449999995624, + "maxRelativeMarginOfError": 0.30822030809712697, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 31035, + "sampleCount": 41518, "rounds": [ { - "hz": 6222.0225148715945, - "meanMs": 0.16071944413731157, - "medianMs": 0.15649999999993724, - "minMs": 0.14899999999988722, - "maxMs": 0.41095900000004804, - "p75Ms": 0.1617909999999938, - "p99Ms": 0.23058300000002419, - "relativeMarginOfError": 0.14443416364898723, - "sampleCount": 15556 + "hz": 8301.657164803668, + "meanMs": 0.12045787728258348, + "medianMs": 0.11524999999994634, + "minMs": 0.109958000000006, + "maxMs": 2.2114999999998872, + "p75Ms": 0.11816700000008495, + "p99Ms": 0.20654100000001563, + "relativeMarginOfError": 0.30822030809712697, + "sampleCount": 20755 }, { - "hz": 6191.580979463214, - "meanMs": 0.1615096375734871, - "medianMs": 0.15574999999989814, - "minMs": 0.1475420000001577, - "maxMs": 0.6368330000000242, - "p75Ms": 0.16237499999988358, - "p99Ms": 0.2507919999998194, - "relativeMarginOfError": 0.20194318792559426, - "sampleCount": 15479 + "hz": 8304.837198204048, + "meanMs": 0.12041175234792727, + "medianMs": 0.11616700000001856, + "minMs": 0.10875000000010004, + "maxMs": 0.7145829999999478, + "p75Ms": 0.11900000000014188, + "p99Ms": 0.19870799999989686, + "relativeMarginOfError": 0.2022852556216334, + "sampleCount": 20763 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 467.530347522296, - "meanMs": 2.1396904832602406, - "medianMs": 2.0470000000000255, - "minMs": 1.4550830000000587, - "maxMs": 7.075333000000228, - "p75Ms": 2.1796255000001565, - "p99Ms": 3.417020999999977, - "maxRelativeMarginOfError": 1.1879374440203343, + "hz": 448.8318349435023, + "meanMs": 2.228636922183614, + "medianMs": 2.161406249999885, + "minMs": 1.4868329999999332, + "maxMs": 10.584250000000338, + "p75Ms": 2.3455414999999675, + "p99Ms": 4.135374999999897, + "maxRelativeMarginOfError": 1.7406433859477186, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 2339, + "sampleCount": 2245, "rounds": [ { - "hz": 476.52466671610995, - "meanMs": 2.098527253355703, - "medianMs": 2.039250000000038, - "minMs": 1.4550830000000587, - "maxMs": 5.329250000000002, - "p75Ms": 2.1384170000001177, - "p99Ms": 2.990291999999954, - "relativeMarginOfError": 0.7660801439469658, - "sampleCount": 1192 + "hz": 456.3839427699115, + "meanMs": 2.191137562664328, + "medianMs": 2.1579579999997804, + "minMs": 1.4901669999999285, + "maxMs": 6.4340000000001965, + "p75Ms": 2.3167499999999563, + "p99Ms": 3.5459999999999354, + "relativeMarginOfError": 1.1918721165810684, + "sampleCount": 1141 }, { - "hz": 458.536028328482, - "meanMs": 2.1808537131647783, - "medianMs": 2.0547500000000127, - "minMs": 1.484042000000045, - "maxMs": 7.075333000000228, - "p75Ms": 2.2208340000001954, - "p99Ms": 3.84375, - "relativeMarginOfError": 1.1879374440203343, - "sampleCount": 1147 + "hz": 441.2797271170931, + "meanMs": 2.2661362817029005, + "medianMs": 2.16485449999999, + "minMs": 1.4868329999999332, + "maxMs": 10.584250000000338, + "p75Ms": 2.3743329999999787, + "p99Ms": 4.724749999999858, + "relativeMarginOfError": 1.7406433859477186, + "sampleCount": 1104 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 1360.2998973645037, - "meanMs": 0.7353175753404675, - "medianMs": 0.6751870000000508, - "minMs": 0.628791000000092, - "maxMs": 13.960000000000036, - "p75Ms": 0.6950210000000538, - "p99Ms": 2.092187499999909, - "maxRelativeMarginOfError": 1.9178769206003574, + "hz": 1477.176180527882, + "meanMs": 0.6774186488867813, + "medianMs": 0.6038959999998781, + "minMs": 0.5681660000000193, + "maxMs": 12.021792000000005, + "p75Ms": 0.6209375000001955, + "p99Ms": 2.3888955000001033, + "maxRelativeMarginOfError": 2.017403821646042, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 6802, + "sampleCount": 7387, "rounds": [ { - "hz": 1381.9093461941222, - "meanMs": 0.7236364691751105, - "medianMs": 0.6664160000000265, - "minMs": 0.628791000000092, - "maxMs": 13.865999999999985, - "p75Ms": 0.6833749999999554, - "p99Ms": 2.069332999999915, - "relativeMarginOfError": 1.7115090322758244, - "sampleCount": 3455 + "hz": 1515.3047331747928, + "meanMs": 0.6599332649775657, + "medianMs": 0.5890829999998459, + "minMs": 0.5681660000000193, + "maxMs": 12.021792000000005, + "p75Ms": 0.6067080000002534, + "p99Ms": 2.411250000000109, + "relativeMarginOfError": 2.017403821646042, + "sampleCount": 3789 }, { - "hz": 1338.6904485348853, - "meanMs": 0.7469986815058244, - "medianMs": 0.6839580000000751, - "minMs": 0.6475829999999405, - "maxMs": 13.960000000000036, - "p75Ms": 0.7066670000001523, - "p99Ms": 2.115041999999903, - "relativeMarginOfError": 1.9178769206003574, - "sampleCount": 3347 + "hz": 1439.0476278809715, + "meanMs": 0.6949040327959968, + "medianMs": 0.6187089999999102, + "minMs": 0.5948330000001079, + "maxMs": 10.950332999999773, + "p75Ms": 0.6351670000001377, + "p99Ms": 2.3665410000000975, + "relativeMarginOfError": 1.9628912741752103, + "sampleCount": 3598 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 237.4735149033367, - "meanMs": 4.210996416666663, - "medianMs": 3.962874750000026, - "minMs": 3.661875000000009, - "maxMs": 49.51079200000004, - "p75Ms": 4.2247080000001915, - "p99Ms": 7.107895500000041, - "maxRelativeMarginOfError": 4.599702927545789, + "hz": 255.33155761262583, + "meanMs": 3.916476417840376, + "medianMs": 3.7845000000002074, + "minMs": 3.632041999999956, + "maxMs": 7.738040999999839, + "p75Ms": 3.9090205000000537, + "p99Ms": 5.782458500000075, + "maxRelativeMarginOfError": 0.8298757431004349, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 1188, + "sampleCount": 1278, "rounds": [ { - "hz": 237.55588473193757, - "meanMs": 4.209535794612785, - "medianMs": 3.8691250000000537, - "minMs": 3.661875000000009, - "maxMs": 49.51079200000004, - "p75Ms": 4.096125000000029, - "p99Ms": 8.245832999999948, - "relativeMarginOfError": 4.599702927545789, - "sampleCount": 594 + "hz": 255.37121242005037, + "meanMs": 3.9158681611893598, + "medianMs": 3.7800420000003214, + "minMs": 3.644749999999931, + "maxMs": 7.336958999999979, + "p75Ms": 3.8957500000001346, + "p99Ms": 6.044459000000188, + "relativeMarginOfError": 0.8298757431004349, + "sampleCount": 639 }, { - "hz": 237.39114507473587, - "meanMs": 4.21245703872054, - "medianMs": 4.056624499999998, - "minMs": 3.7180839999998625, - "maxMs": 11.4145410000001, - "p75Ms": 4.353291000000354, - "p99Ms": 5.969958000000133, - "relativeMarginOfError": 1.1466831462987381, - "sampleCount": 594 + "hz": 255.29190280520132, + "meanMs": 3.9170846744913916, + "medianMs": 3.7889580000000933, + "minMs": 3.632041999999956, + "maxMs": 7.738040999999839, + "p75Ms": 3.922290999999973, + "p99Ms": 5.520457999999962, + "relativeMarginOfError": 0.7492499658510292, + "sampleCount": 639 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 6134.976483739276, - "meanMs": 0.16300120728810086, - "medianMs": 0.1585415000000694, - "minMs": 0.15254200000026685, - "maxMs": 0.6769999999996799, - "p75Ms": 0.16408349999994698, - "p99Ms": 0.23122899999992796, - "maxRelativeMarginOfError": 0.1708970356062215, + "hz": 6026.508077181246, + "meanMs": 0.16593366005072385, + "medianMs": 0.1613955000001397, + "minMs": 0.15729200000032506, + "maxMs": 0.6375420000001668, + "p75Ms": 0.16437450000000808, + "p99Ms": 0.24368699999990895, + "maxRelativeMarginOfError": 0.20346152049915264, "measureCalls": 0, "readCount": 592, "roundCount": 2, - "sampleCount": 30676, + "sampleCount": 30134, "rounds": [ { - "hz": 6117.012983338709, - "meanMs": 0.16347848250833577, - "medianMs": 0.15895799999998417, - "minMs": 0.15279199999986304, - "maxMs": 0.6769999999996799, - "p75Ms": 0.1646250000001146, - "p99Ms": 0.23529199999995853, - "relativeMarginOfError": 0.1708970356062215, - "sampleCount": 15293 + "hz": 6022.0689837297505, + "meanMs": 0.16605588589266757, + "medianMs": 0.16125000000010914, + "minMs": 0.15729200000032506, + "maxMs": 0.5458329999999023, + "p75Ms": 0.16441600000007384, + "p99Ms": 0.24808299999995143, + "relativeMarginOfError": 0.20346152049915264, + "sampleCount": 15056 }, { - "hz": 6152.939984139842, - "meanMs": 0.16252393206786597, - "medianMs": 0.15812500000015461, - "minMs": 0.15254200000026685, - "maxMs": 0.47024999999996453, - "p75Ms": 0.16354199999977936, - "p99Ms": 0.2271659999998974, - "relativeMarginOfError": 0.14512824837243732, - "sampleCount": 15383 + "hz": 6030.947170632743, + "meanMs": 0.16581143420878017, + "medianMs": 0.16154100000017024, + "minMs": 0.15737499999977445, + "maxMs": 0.6375420000001668, + "p75Ms": 0.16433299999994233, + "p99Ms": 0.23929099999986647, + "relativeMarginOfError": 0.18294483730884162, + "sampleCount": 15078 } ] } @@ -993,200 +993,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 595.7444221396142, - "meanMs": 1.6791402394681998, - "medianMs": 1.6394999999999982, - "minMs": 1.5599170000000413, - "maxMs": 13.465832999999748, - "p75Ms": 1.6838954999999487, - "p99Ms": 2.731083500000011, - "maxRelativeMarginOfError": 1.3000831038037401, + "hz": 798.6956678537592, + "meanMs": 1.2520618148790907, + "medianMs": 1.2315414999999916, + "minMs": 1.1852499999999964, + "maxMs": 3.7111660000000484, + "p75Ms": 1.263249999999971, + "p99Ms": 1.4987084999997933, + "maxRelativeMarginOfError": 0.4070489354718789, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 2979, + "sampleCount": 3994, "rounds": [ { - "hz": 606.7021874733346, - "meanMs": 1.6482551417270956, - "medianMs": 1.6333329999999933, - "minMs": 1.5599170000000413, - "maxMs": 2.0707499999999754, - "p75Ms": 1.6745829999999842, - "p99Ms": 1.8473330000000487, - "relativeMarginOfError": 0.17762224236701715, - "sampleCount": 1517 + "hz": 801.9249241093783, + "meanMs": 1.2469995256857802, + "medianMs": 1.2273330000000442, + "minMs": 1.1852499999999964, + "maxMs": 3.3492080000000897, + "p75Ms": 1.258874999999989, + "p99Ms": 1.4143749999998363, + "relativeMarginOfError": 0.3603125979986096, + "sampleCount": 2005 }, { - "hz": 584.7866568058938, - "meanMs": 1.7100253372093037, - "medianMs": 1.645667000000003, - "minMs": 1.5658750000000055, - "maxMs": 13.465832999999748, - "p75Ms": 1.6932079999999132, - "p99Ms": 3.6148339999999735, - "relativeMarginOfError": 1.3000831038037401, - "sampleCount": 1462 + "hz": 795.4664115981401, + "meanMs": 1.2571241040724015, + "medianMs": 1.235749999999939, + "minMs": 1.1947079999999914, + "maxMs": 3.7111660000000484, + "p75Ms": 1.2676249999999527, + "p99Ms": 1.5830419999997503, + "relativeMarginOfError": 0.4070489354718789, + "sampleCount": 1989 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 91.83167107256986, - "meanMs": 10.892080184598445, - "medianMs": 10.75758349999984, - "minMs": 10.223666999999978, - "maxMs": 14.1568749999999, - "p75Ms": 11.018208999999956, - "p99Ms": 12.573187499999904, - "maxRelativeMarginOfError": 0.691114272312312, + "hz": 94.28002786982299, + "meanMs": 10.6083577376587, + "medianMs": 10.34020850000013, + "minMs": 9.982374999999934, + "maxMs": 21.79429099999993, + "p75Ms": 10.56337499999995, + "p99Ms": 16.02995850000002, + "maxRelativeMarginOfError": 1.610777866893408, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 461, + "sampleCount": 472, "rounds": [ { - "hz": 90.4153533401776, - "meanMs": 11.060068484581512, - "medianMs": 10.897833999999875, - "minMs": 10.257416999999919, - "maxMs": 14.1568749999999, - "p75Ms": 11.215833999999859, - "p99Ms": 13.166791999999987, - "relativeMarginOfError": 0.691114272312312, - "sampleCount": 227 + "hz": 95.45848577314605, + "meanMs": 10.475758041841006, + "medianMs": 10.299875000000156, + "minMs": 9.997375000000147, + "maxMs": 15.674375000000055, + "p75Ms": 10.518208999999842, + "p99Ms": 12.749209000000064, + "relativeMarginOfError": 0.7137994661954838, + "sampleCount": 239 }, { - "hz": 93.24798880496212, - "meanMs": 10.72409188461538, - "medianMs": 10.617332999999803, - "minMs": 10.223666999999978, - "maxMs": 12.832957999999962, - "p75Ms": 10.820584000000053, - "p99Ms": 11.97958299999982, - "relativeMarginOfError": 0.4460589012165358, - "sampleCount": 234 + "hz": 93.10156996649994, + "meanMs": 10.740957433476392, + "medianMs": 10.380542000000105, + "minMs": 9.982374999999934, + "maxMs": 21.79429099999993, + "p75Ms": 10.60854100000006, + "p99Ms": 19.310707999999977, + "relativeMarginOfError": 1.610777866893408, + "sampleCount": 233 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 175.6019818624604, - "meanMs": 5.6959154302913255, - "medianMs": 5.306385499999948, - "minMs": 4.953958000000057, - "maxMs": 21.852124999999887, - "p75Ms": 5.872625000000028, - "p99Ms": 7.737125000000162, - "maxRelativeMarginOfError": 2.3275670632362035, + "hz": 192.87490691270176, + "meanMs": 5.184861544211763, + "medianMs": 4.683791999999954, + "minMs": 4.424167000000125, + "maxMs": 21.764000000000124, + "p75Ms": 5.20156300000005, + "p99Ms": 12.97618749999998, + "maxRelativeMarginOfError": 2.896070351394687, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 879, + "sampleCount": 965, "rounds": [ { - "hz": 178.17077104490158, - "meanMs": 5.612592874439465, - "medianMs": 5.229645999999946, - "minMs": 4.953958000000057, - "maxMs": 21.448624999999993, - "p75Ms": 5.78449999999998, - "p99Ms": 7.785583000000315, - "relativeMarginOfError": 2.290922414760617, - "sampleCount": 446 + "hz": 191.82401627388325, + "meanMs": 5.21311157708332, + "medianMs": 4.681791999999916, + "minMs": 4.424167000000125, + "maxMs": 21.764000000000124, + "p75Ms": 5.278917000000092, + "p99Ms": 17.063792000000035, + "relativeMarginOfError": 2.896070351394687, + "sampleCount": 480 }, { - "hz": 173.03319268001923, - "meanMs": 5.779237986143185, - "medianMs": 5.38312499999995, - "minMs": 5.064666999999645, - "maxMs": 21.852124999999887, - "p75Ms": 5.9607500000000755, - "p99Ms": 7.6886670000000095, - "relativeMarginOfError": 2.3275670632362035, - "sampleCount": 433 + "hz": 193.9257975515203, + "meanMs": 5.1566115113402065, + "medianMs": 4.685791999999992, + "minMs": 4.449582999999848, + "maxMs": 18.097999999999956, + "p75Ms": 5.124209000000008, + "p99Ms": 8.888582999999926, + "relativeMarginOfError": 2.2379193923254213, + "sampleCount": 485 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 34.437154471062534, - "meanMs": 29.041220296712105, - "medianMs": 28.520395749999977, - "minMs": 26.51991599999974, - "maxMs": 43.79704199999992, - "p75Ms": 29.487957999999935, - "p99Ms": 38.187687499999925, - "maxRelativeMarginOfError": 2.0528817325723776, + "hz": 35.92249719967354, + "meanMs": 27.838000874542132, + "medianMs": 27.632093500000053, + "minMs": 26.225209000000177, + "maxMs": 34.86374999999998, + "p75Ms": 28.02770850000013, + "p99Ms": 33.66652049999993, + "maxRelativeMarginOfError": 1.0572983045483906, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 173, + "sampleCount": 181, "rounds": [ { - "hz": 34.776286106146316, - "meanMs": 28.75522696551721, - "medianMs": 27.891999999999825, - "minMs": 26.51991599999974, - "maxMs": 43.79704199999992, - "p75Ms": 28.820290999999997, - "p99Ms": 43.79704199999992, - "relativeMarginOfError": 2.0528817325723776, - "sampleCount": 87 + "hz": 36.038945668018975, + "meanMs": 27.74775958241758, + "medianMs": 27.602250000000026, + "minMs": 26.244333000000097, + "maxMs": 32.469290999999885, + "p75Ms": 27.941167000000178, + "p99Ms": 32.469290999999885, + "relativeMarginOfError": 0.7806196721734333, + "sampleCount": 91 }, { - "hz": 34.09802283597875, - "meanMs": 29.327213627906996, - "medianMs": 29.14879150000013, - "minMs": 27.132333000000017, - "maxMs": 32.57833299999993, - "p75Ms": 30.155624999999873, - "p99Ms": 32.57833299999993, - "relativeMarginOfError": 0.8715497874155216, - "sampleCount": 86 + "hz": 35.80604873132812, + "meanMs": 27.92824216666668, + "medianMs": 27.66193700000008, + "minMs": 26.225209000000177, + "maxMs": 34.86374999999998, + "p75Ms": 28.114250000000084, + "p99Ms": 34.86374999999998, + "relativeMarginOfError": 1.0572983045483906, + "sampleCount": 90 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 714.3317696624274, - "meanMs": 1.4003525444529048, - "medianMs": 1.3660002500000132, - "minMs": 1.291707999999744, - "maxMs": 8.122540999999728, - "p75Ms": 1.412875500000041, - "p99Ms": 2.054103499999883, - "maxRelativeMarginOfError": 0.9142189945821931, + "hz": 720.5291404449221, + "meanMs": 1.388144808036087, + "medianMs": 1.3595210000000293, + "minMs": 1.3122920000000704, + "maxMs": 4.955584000000044, + "p75Ms": 1.3941659999998137, + "p99Ms": 1.7436460000000125, + "maxRelativeMarginOfError": 0.6542537715568982, "measureCalls": 0, "readCount": 4640, "roundCount": 2, - "sampleCount": 3573, + "sampleCount": 3604, "rounds": [ { - "hz": 701.629287430346, - "meanMs": 1.4252540735042714, - "medianMs": 1.3697919999999613, - "minMs": 1.291707999999744, - "maxMs": 8.122540999999728, - "p75Ms": 1.4344589999998334, - "p99Ms": 2.558665999999903, - "relativeMarginOfError": 0.9142189945821931, - "sampleCount": 1755 + "hz": 730.6869618501797, + "meanMs": 1.368575124794741, + "medianMs": 1.3484580000000506, + "minMs": 1.3122920000000704, + "maxMs": 2.731625000000122, + "p75Ms": 1.3820409999998446, + "p99Ms": 1.533292000000074, + "relativeMarginOfError": 0.24223046613085683, + "sampleCount": 1827 }, { - "hz": 727.0342518945089, - "meanMs": 1.3754510154015382, - "medianMs": 1.3622085000000652, - "minMs": 1.30074999999988, - "maxMs": 2.472708000000239, - "p75Ms": 1.3912920000002487, - "p99Ms": 1.5495409999998628, - "relativeMarginOfError": 0.2248063359148482, - "sampleCount": 1818 + "hz": 710.3713190396644, + "meanMs": 1.4077144912774326, + "medianMs": 1.370584000000008, + "minMs": 1.335458000000017, + "maxMs": 4.955584000000044, + "p75Ms": 1.4062909999997828, + "p99Ms": 1.9539999999999509, + "relativeMarginOfError": 0.6542537715568982, + "sampleCount": 1777 } ] } @@ -1219,159 +1219,159 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 127.81444705855424, - "meanMs": 7.824279225243162, - "medianMs": 7.572823249999999, - "minMs": 6.915291000000025, - "maxMs": 32.737916999999925, - "p75Ms": 7.817000000000007, - "p99Ms": 12.571125000000052, - "maxRelativeMarginOfError": 2.6107943654902144, + "hz": 175.62808016748937, + "meanMs": 5.693884985835427, + "medianMs": 5.631833499999971, + "minMs": 5.393792000000076, + "maxMs": 11.312249999999949, + "p75Ms": 5.734604000000104, + "p99Ms": 7.159417000000076, + "maxRelativeMarginOfError": 0.6358205808837929, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 640, + "sampleCount": 879, "rounds": [ { - "hz": 128.77023661409825, - "meanMs": 7.765769686335393, - "medianMs": 7.50533350000012, - "minMs": 6.915291000000025, - "maxMs": 32.737916999999925, - "p75Ms": 7.725500000000011, - "p99Ms": 13.450375000000122, - "relativeMarginOfError": 2.6107943654902144, - "sampleCount": 322 + "hz": 176.06144827201155, + "meanMs": 5.679835136054426, + "medianMs": 5.615041999999903, + "minMs": 5.393792000000076, + "maxMs": 10.888749999999959, + "p75Ms": 5.723750000000109, + "p99Ms": 7.388084000000163, + "relativeMarginOfError": 0.6292447584300577, + "sampleCount": 441 }, { - "hz": 126.8586575030102, - "meanMs": 7.882788764150931, - "medianMs": 7.640312999999878, - "minMs": 6.917750000000069, - "maxMs": 13.559832999999799, - "p75Ms": 7.908500000000004, - "p99Ms": 11.691874999999982, - "relativeMarginOfError": 1.2798451551916228, - "sampleCount": 318 + "hz": 175.19471206296717, + "meanMs": 5.707934835616428, + "medianMs": 5.648625000000038, + "minMs": 5.41883299999995, + "maxMs": 11.312249999999949, + "p75Ms": 5.745458000000099, + "p99Ms": 6.930749999999989, + "relativeMarginOfError": 0.6358205808837929, + "sampleCount": 438 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 22.265230972535466, - "meanMs": 45.342924137887415, - "medianMs": 42.723781000000145, - "minMs": 39.18429100000003, - "maxMs": 94.77549999999997, - "p75Ms": 47.20570850000013, - "p99Ms": 70.60114599999997, - "maxRelativeMarginOfError": 7.071583419960442, + "hz": 25.036421863331263, + "meanMs": 39.94383345920137, + "medianMs": 39.487739749999946, + "minMs": 38.407500000000255, + "maxMs": 53.98766700000033, + "p75Ms": 39.9372085, + "p99Ms": 51.41333350000025, + "maxRelativeMarginOfError": 1.3647205547752828, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 113, + "sampleCount": 127, "rounds": [ { - "hz": 24.433085886389055, - "meanMs": 40.92810890322578, - "medianMs": 40.69797900000003, - "minMs": 39.18429100000003, - "maxMs": 46.42679199999998, - "p75Ms": 41.63612499999999, - "p99Ms": 46.42679199999998, - "relativeMarginOfError": 0.8427810575100759, - "sampleCount": 62 + "hz": 25.214625543247692, + "meanMs": 39.65952214062498, + "medianMs": 39.19022949999999, + "minMs": 38.407500000000255, + "maxMs": 48.83900000000017, + "p75Ms": 39.71083399999998, + "p99Ms": 48.83900000000017, + "relativeMarginOfError": 1.0104313284188715, + "sampleCount": 64 }, { - "hz": 20.097376058681878, - "meanMs": 49.757739372549054, - "medianMs": 44.74958300000026, - "minMs": 40.51112499999999, - "maxMs": 94.77549999999997, - "p75Ms": 52.77529200000026, - "p99Ms": 94.77549999999997, - "relativeMarginOfError": 7.071583419960442, - "sampleCount": 51 + "hz": 24.858218183414838, + "meanMs": 40.22814477777777, + "medianMs": 39.785249999999905, + "minMs": 38.700832999999875, + "maxMs": 53.98766700000033, + "p75Ms": 40.16358300000002, + "p99Ms": 53.98766700000033, + "relativeMarginOfError": 1.3647205547752828, + "sampleCount": 63 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 42.32917864725211, - "meanMs": 23.63730145015878, - "medianMs": 22.40300000000005, - "minMs": 19.98174999999992, - "maxMs": 57.303040999999666, - "p75Ms": 23.5775000000001, - "p99Ms": 46.21612500000015, - "maxRelativeMarginOfError": 4.602539854225249, + "hz": 49.19360321160303, + "meanMs": 20.328888378016007, + "medianMs": 19.696187500000036, + "minMs": 17.503749999999854, + "maxMs": 42.36324999999988, + "p75Ms": 20.15375000000006, + "p99Ms": 37.42735400000004, + "maxRelativeMarginOfError": 3.08518823897085, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 213, + "sampleCount": 247, "rounds": [ { - "hz": 41.33895071056981, - "meanMs": 24.19026082692306, - "medianMs": 22.43712499999998, - "minMs": 19.98174999999992, - "maxMs": 57.303040999999666, - "p75Ms": 23.593249999999898, - "p99Ms": 55.34179200000017, - "relativeMarginOfError": 4.602539854225249, - "sampleCount": 104 + "hz": 49.54583069111708, + "meanMs": 20.18333300806453, + "medianMs": 19.614208000000133, + "minMs": 17.503749999999854, + "maxMs": 42.043042000000014, + "p75Ms": 20.086207999999942, + "p99Ms": 37.80558300000007, + "relativeMarginOfError": 3.0434195924143195, + "sampleCount": 124 }, { - "hz": 43.31940658393441, - "meanMs": 23.084342073394506, - "medianMs": 22.368875000000116, - "minMs": 20.01587500000005, - "maxMs": 39.12195799999972, - "p75Ms": 23.561750000000302, - "p99Ms": 37.090458000000126, - "relativeMarginOfError": 2.2222498546783527, - "sampleCount": 109 + "hz": 48.84137573208898, + "meanMs": 20.474443747967484, + "medianMs": 19.77816699999994, + "minMs": 17.65887500000008, + "maxMs": 42.36324999999988, + "p75Ms": 20.221292000000176, + "p99Ms": 37.049125000000004, + "relativeMarginOfError": 3.08518823897085, + "sampleCount": 123 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 8.883509272368523, - "meanMs": 112.93992170000001, - "medianMs": 109.29035399999987, - "minMs": 103.68475000000035, - "maxMs": 188.54554099999996, - "p75Ms": 112.24195900000018, - "p99Ms": 151.56435399999987, - "maxRelativeMarginOfError": 7.50030143295173, + "hz": 9.447963532723076, + "meanMs": 105.84903000000001, + "medianMs": 104.92774999999983, + "minMs": 103.45633300000009, + "maxMs": 114.685833, + "p75Ms": 105.60837450000008, + "p99Ms": 112.73997900000018, + "maxRelativeMarginOfError": 1.0423313677867108, "measureCalls": 0, "readCount": 18624, "roundCount": 2, "sampleCount": 50, "rounds": [ { - "hz": 9.393206668143181, - "meanMs": 106.45991676, - "medianMs": 105.3739999999998, - "minMs": 103.77045899999985, - "maxMs": 114.58316699999978, - "p75Ms": 106.93808400000034, - "p99Ms": 114.58316699999978, - "relativeMarginOfError": 1.1337367678549384, + "hz": 9.3761515039185, + "meanMs": 106.65356671999999, + "medianMs": 105.49495799999977, + "minMs": 104.30208399999992, + "maxMs": 114.685833, + "p75Ms": 106.32770800000026, + "p99Ms": 114.685833, + "relativeMarginOfError": 1.0423313677867108, "sampleCount": 25 }, { - "hz": 8.373811876593864, - "meanMs": 119.41992664000001, - "medianMs": 113.20670799999994, - "minMs": 103.68475000000035, - "maxMs": 188.54554099999996, - "p75Ms": 117.54583400000001, - "p99Ms": 188.54554099999996, - "relativeMarginOfError": 7.50030143295173, + "hz": 9.519775561527652, + "meanMs": 105.04449328000004, + "medianMs": 104.3605419999999, + "minMs": 103.45633300000009, + "maxMs": 110.79412500000035, + "p75Ms": 104.8890409999999, + "p99Ms": 110.79412500000035, + "relativeMarginOfError": 0.7904593080328032, "sampleCount": 25 } ] @@ -1379,40 +1379,40 @@ { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 167.58697844868533, - "meanMs": 5.967094058103855, - "medianMs": 5.801249749999982, - "minMs": 5.493750000000091, - "maxMs": 25.28770799999984, - "p75Ms": 5.967729499999905, - "p99Ms": 8.975854499999969, - "maxRelativeMarginOfError": 1.95895915425979, + "hz": 170.15006088056006, + "meanMs": 5.877202869739627, + "medianMs": 5.807604000000026, + "minMs": 5.622708999999986, + "maxMs": 11.30279100000007, + "p75Ms": 5.906020500000068, + "p99Ms": 7.32743749999986, + "maxRelativeMarginOfError": 0.7026195281104309, "measureCalls": 0, "readCount": 18624, "roundCount": 2, - "sampleCount": 839, + "sampleCount": 852, "rounds": [ { - "hz": 167.1353241116076, - "meanMs": 5.98317564114832, - "medianMs": 5.802791499999955, - "minMs": 5.503374999999778, - "maxMs": 25.28770799999984, - "p75Ms": 5.957167000000027, - "p99Ms": 9.3679589999997, - "relativeMarginOfError": 1.95895915425979, - "sampleCount": 418 + "hz": 170.58138548919433, + "meanMs": 5.86230436065573, + "medianMs": 5.811000000000149, + "minMs": 5.64995799999997, + "maxMs": 8.545708999999988, + "p75Ms": 5.895457999999962, + "p99Ms": 7.204874999999902, + "relativeMarginOfError": 0.4560842270371684, + "sampleCount": 427 }, { - "hz": 168.03863278576307, - "meanMs": 5.9510124750593905, - "medianMs": 5.79970800000001, - "minMs": 5.493750000000091, - "maxMs": 13.127874999999676, - "p75Ms": 5.978291999999783, - "p99Ms": 8.583750000000236, - "relativeMarginOfError": 0.984173499582651, - "sampleCount": 421 + "hz": 169.7187362719258, + "meanMs": 5.892101378823524, + "medianMs": 5.804207999999903, + "minMs": 5.622708999999986, + "maxMs": 11.30279100000007, + "p75Ms": 5.916583000000173, + "p99Ms": 7.449999999999818, + "relativeMarginOfError": 0.7026195281104309, + "sampleCount": 425 } ] } @@ -1445,79 +1445,79 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 432.40348529895357, - "meanMs": 2.318046207887914, - "medianMs": 2.219531000000046, - "minMs": 1.993832999999995, - "maxMs": 9.988374999999905, - "p75Ms": 2.35318749999999, - "p99Ms": 4.352333000000044, - "maxRelativeMarginOfError": 1.2909028059999061, + "hz": 607.6545856275748, + "meanMs": 1.6458566527246785, + "medianMs": 1.6099064999999655, + "minMs": 1.5494590000000699, + "maxMs": 6.294040999999879, + "p75Ms": 1.6457915000000867, + "p99Ms": 2.321187499999951, + "maxRelativeMarginOfError": 0.6347830546343044, "measureCalls": 440, "readCount": 4640, "roundCount": 2, - "sampleCount": 2163, + "sampleCount": 3040, "rounds": [ { - "hz": 411.549990585204, - "meanMs": 2.42983847133139, - "medianMs": 2.325666000000183, - "minMs": 2.0437910000000556, - "maxMs": 8.135499999999865, - "p75Ms": 2.494457999999895, - "p99Ms": 4.030582999999979, - "relativeMarginOfError": 1.0877055566040124, - "sampleCount": 1029 + "hz": 601.214315725776, + "meanMs": 1.6633003803191486, + "medianMs": 1.623063000000002, + "minMs": 1.566958999999997, + "maxMs": 6.294040999999879, + "p75Ms": 1.6596660000000156, + "p99Ms": 2.5826250000000073, + "relativeMarginOfError": 0.6347830546343044, + "sampleCount": 1504 }, { - "hz": 453.2569800127032, - "meanMs": 2.2062539444444376, - "medianMs": 2.1133959999999092, - "minMs": 1.993832999999995, - "maxMs": 9.988374999999905, - "p75Ms": 2.211917000000085, - "p99Ms": 4.67408300000011, - "relativeMarginOfError": 1.2909028059999061, - "sampleCount": 1134 + "hz": 614.0948555293735, + "meanMs": 1.6284129251302086, + "medianMs": 1.596749999999929, + "minMs": 1.5494590000000699, + "maxMs": 6.221000000000004, + "p75Ms": 1.6319170000001577, + "p99Ms": 2.0597499999998945, + "relativeMarginOfError": 0.5049639736826443, + "sampleCount": 1536 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 66.22880016831316, - "meanMs": 15.223862990578452, - "medianMs": 14.07199950000006, - "minMs": 13.105332999999973, - "maxMs": 60.28620799999999, - "p75Ms": 15.247125000000096, - "p99Ms": 32.21512499999983, - "maxRelativeMarginOfError": 6.241540086990983, + "hz": 72.3156815894663, + "meanMs": 13.828278450655695, + "medianMs": 13.578218499999991, + "minMs": 12.907375000000002, + "maxMs": 21.05874999999969, + "p75Ms": 13.895520499999975, + "p99Ms": 18.030041499999925, + "maxRelativeMarginOfError": 0.9757205872123061, "measureCalls": 440, "readCount": 4640, "roundCount": 2, - "sampleCount": 332, + "sampleCount": 363, "rounds": [ { - "hz": 60.23498733642169, - "meanMs": 16.60164705298012, - "medianMs": 14.522458000000142, - "minMs": 13.105332999999973, - "maxMs": 60.28620799999999, - "p75Ms": 16.43941700000005, - "p99Ms": 48.82895799999983, - "relativeMarginOfError": 6.241540086990983, - "sampleCount": 151 + "hz": 72.40067532056108, + "meanMs": 13.812025862637359, + "medianMs": 13.559728999999948, + "minMs": 12.907375000000002, + "maxMs": 16.90816700000005, + "p75Ms": 13.928583000000117, + "p99Ms": 16.88433299999997, + "relativeMarginOfError": 0.7724381112017463, + "sampleCount": 182 }, { - "hz": 72.22261300020463, - "meanMs": 13.846078928176784, - "medianMs": 13.62154099999998, - "minMs": 13.146750000000111, - "maxMs": 15.727249999999913, - "p75Ms": 14.054833000000144, - "p99Ms": 15.60129199999983, - "relativeMarginOfError": 0.5941513931732438, + "hz": 72.23068785837152, + "meanMs": 13.84453103867403, + "medianMs": 13.596708000000035, + "minMs": 13.113958000000025, + "maxMs": 21.05874999999969, + "p75Ms": 13.862457999999833, + "p99Ms": 19.17574999999988, + "relativeMarginOfError": 0.9757205872123061, "sampleCount": 181 } ] @@ -1525,120 +1525,120 @@ { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 164.91841481100516, - "meanMs": 6.0638909192542165, - "medianMs": 5.521843749999931, - "minMs": 5.098790999999892, - "maxMs": 24.954249999999774, - "p75Ms": 6.515042000000108, - "p99Ms": 10.22049949999996, - "maxRelativeMarginOfError": 2.7406833559634727, + "hz": 194.7995308054505, + "meanMs": 5.134125603315716, + "medianMs": 4.625083000000018, + "minMs": 4.372124999999869, + "maxMs": 22.801832999999988, + "p75Ms": 4.977041499999984, + "p99Ms": 11.842416999999955, + "maxRelativeMarginOfError": 3.0204831488851993, "measureCalls": 301, "readCount": 4640, "roundCount": 2, - "sampleCount": 826, + "sampleCount": 975, "rounds": [ { - "hz": 166.05235040803197, - "meanMs": 6.022197201923074, - "medianMs": 5.501270999999974, - "minMs": 5.166749999999865, - "maxMs": 19.61870799999997, - "p75Ms": 6.50891700000011, - "p99Ms": 9.737333000000035, - "relativeMarginOfError": 2.227038248444974, - "sampleCount": 416 + "hz": 192.61949049687078, + "meanMs": 5.191582624481325, + "medianMs": 4.65137500000003, + "minMs": 4.425875000000133, + "maxMs": 21.531208999999762, + "p75Ms": 5.091750000000047, + "p99Ms": 14.808667000000014, + "relativeMarginOfError": 3.0204831488851993, + "sampleCount": 482 }, { - "hz": 163.78447921397833, - "meanMs": 6.105584636585358, - "medianMs": 5.542416499999888, - "minMs": 5.098790999999892, - "maxMs": 24.954249999999774, - "p75Ms": 6.521167000000105, - "p99Ms": 10.703665999999885, - "relativeMarginOfError": 2.7406833559634727, - "sampleCount": 410 + "hz": 196.97957111403025, + "meanMs": 5.0766685821501065, + "medianMs": 4.598791000000006, + "minMs": 4.372124999999869, + "maxMs": 22.801832999999988, + "p75Ms": 4.862332999999921, + "p99Ms": 8.876166999999896, + "relativeMarginOfError": 2.8097234792680066, + "sampleCount": 493 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 31.867998035118507, - "meanMs": 31.38189370768871, - "medianMs": 30.754083499999922, - "minMs": 27.70241699999997, - "maxMs": 68.80358300000012, - "p75Ms": 32.14372900000012, - "p99Ms": 53.54772900000012, - "maxRelativeMarginOfError": 3.433214351774358, + "hz": 33.51047739574106, + "meanMs": 29.84587072204111, + "medianMs": 28.89333350000004, + "minMs": 27.32354200000009, + "maxMs": 60.18199999999979, + "p75Ms": 30.280021000000033, + "p99Ms": 48.12539599999991, + "maxRelativeMarginOfError": 2.8894590579107504, "measureCalls": 301, "readCount": 4640, "roundCount": 2, - "sampleCount": 160, + "sampleCount": 168, "rounds": [ { - "hz": 31.586329436619792, - "meanMs": 31.65926582278485, - "medianMs": 31.28899999999976, - "minMs": 28.89037499999995, - "maxMs": 38.29187500000012, - "p75Ms": 32.75812500000029, - "p99Ms": 38.29187500000012, - "relativeMarginOfError": 1.5979650803293177, - "sampleCount": 79 + "hz": 33.9200103607195, + "meanMs": 29.481123070588247, + "medianMs": 28.7404590000001, + "minMs": 27.743375000000015, + "maxMs": 36.06879200000003, + "p75Ms": 30.24762499999997, + "p99Ms": 36.06879200000003, + "relativeMarginOfError": 1.2581057593094884, + "sampleCount": 85 }, { - "hz": 32.14966663361722, - "meanMs": 31.104521592592576, - "medianMs": 30.219167000000084, - "minMs": 27.70241699999997, - "maxMs": 68.80358300000012, - "p75Ms": 31.52933299999995, - "p99Ms": 68.80358300000012, - "relativeMarginOfError": 3.433214351774358, - "sampleCount": 81 + "hz": 33.10094443076262, + "meanMs": 30.210618373493972, + "medianMs": 29.04620799999998, + "minMs": 27.32354200000009, + "maxMs": 60.18199999999979, + "p75Ms": 30.312417000000096, + "p99Ms": 60.18199999999979, + "relativeMarginOfError": 2.8894590579107504, + "sampleCount": 83 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 700.3227502853347, - "meanMs": 1.427968658080224, - "medianMs": 1.4051664999999502, - "minMs": 1.3356670000000577, - "maxMs": 2.728208999999879, - "p75Ms": 1.450749999999971, - "p99Ms": 1.7652500000000373, - "maxRelativeMarginOfError": 0.37580874143177295, + "hz": 690.5706923357195, + "meanMs": 1.4480817848946523, + "medianMs": 1.4246045000000152, + "minMs": 1.3779579999998077, + "maxMs": 3.289833999999928, + "p75Ms": 1.46012450000012, + "p99Ms": 1.6814584999999624, + "maxRelativeMarginOfError": 0.36133611244561553, "measureCalls": 37, "readCount": 4640, "roundCount": 2, - "sampleCount": 3502, + "sampleCount": 3454, "rounds": [ { - "hz": 704.6926986977866, - "meanMs": 1.419058267309874, - "medianMs": 1.4024994999999763, - "minMs": 1.3504590000000007, - "maxMs": 2.193625000000111, - "p75Ms": 1.439875000000029, - "p99Ms": 1.6459580000000642, - "relativeMarginOfError": 0.1985521291591437, - "sampleCount": 1762 + "hz": 689.406769210048, + "meanMs": 1.450522455916473, + "medianMs": 1.4298749999999814, + "minMs": 1.3779579999998077, + "maxMs": 3.1512079999997695, + "p75Ms": 1.4664160000002084, + "p99Ms": 1.6552500000000236, + "relativeMarginOfError": 0.2870900512506445, + "sampleCount": 1724 }, { - "hz": 695.9528018728829, - "meanMs": 1.436879048850574, - "medianMs": 1.4078334999999242, - "minMs": 1.3356670000000577, - "maxMs": 2.728208999999879, - "p75Ms": 1.4616249999999127, - "p99Ms": 1.8845420000000104, - "relativeMarginOfError": 0.37580874143177295, - "sampleCount": 1740 + "hz": 691.734615461391, + "meanMs": 1.4456411138728316, + "medianMs": 1.419334000000049, + "minMs": 1.3825840000004064, + "maxMs": 3.289833999999928, + "p75Ms": 1.4538330000000315, + "p99Ms": 1.7076669999999012, + "relativeMarginOfError": 0.36133611244561553, + "sampleCount": 1730 } ] } @@ -1670,159 +1670,159 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 917.616547429512, - "meanMs": 1.0905030513062597, - "medianMs": 1.061781749999966, - "minMs": 0.9923330000000306, - "maxMs": 3.2160829999997986, - "p75Ms": 1.1022500000000264, - "p99Ms": 1.7783959999999297, - "maxRelativeMarginOfError": 0.7284595347824431, + "hz": 2009.8761799328813, + "meanMs": 0.4975969148615639, + "medianMs": 0.4837084999999206, + "minMs": 0.46212500000001455, + "maxMs": 2.666500000000042, + "p75Ms": 0.4978959999999688, + "p99Ms": 0.7206255000000397, + "maxRelativeMarginOfError": 0.4558130903730494, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 4589, + "sampleCount": 10050, "rounds": [ { - "hz": 893.9853865572787, - "meanMs": 1.1185865172259488, - "medianMs": 1.0710840000000417, - "minMs": 0.9989580000001297, - "maxMs": 3.2160829999997986, - "p75Ms": 1.1236670000000686, - "p99Ms": 2.3219169999997575, - "relativeMarginOfError": 0.7284595347824431, - "sampleCount": 2235 + "hz": 1988.9720486870401, + "meanMs": 0.5027722740800303, + "medianMs": 0.48558299999990595, + "minMs": 0.4656250000000455, + "maxMs": 2.666500000000042, + "p75Ms": 0.5008330000000569, + "p99Ms": 0.836917000000085, + "relativeMarginOfError": 0.4558130903730494, + "sampleCount": 4973 }, { - "hz": 941.2477083017453, - "meanMs": 1.0624195853865706, - "medianMs": 1.0524794999998903, - "minMs": 0.9923330000000306, - "maxMs": 1.7247079999999642, - "p75Ms": 1.0808329999999842, - "p99Ms": 1.2348750000001019, - "relativeMarginOfError": 0.1833921187931725, - "sampleCount": 2354 + "hz": 2030.7803111787223, + "meanMs": 0.4924215556430975, + "medianMs": 0.48183399999993526, + "minMs": 0.46212500000001455, + "maxMs": 1.4629580000000715, + "p75Ms": 0.4949589999998807, + "p99Ms": 0.6043339999999944, + "relativeMarginOfError": 0.23809887683208325, + "sampleCount": 5077 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 129.3992519131752, - "meanMs": 7.741089429021921, - "medianMs": 7.43989600000009, - "minMs": 7.059791000000018, - "maxMs": 41.40562499999987, - "p75Ms": 7.629999500000054, - "p99Ms": 15.014354500000024, - "maxRelativeMarginOfError": 3.8722654433323385, + "hz": 140.14567805122144, + "meanMs": 7.135452201094827, + "medianMs": 7.020895750000022, + "minMs": 6.554292000000032, + "maxMs": 12.261583000000428, + "p75Ms": 7.168083499999966, + "p99Ms": 9.343374999999924, + "maxRelativeMarginOfError": 0.7485508967082604, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 648, + "sampleCount": 701, "rounds": [ { - "hz": 134.71616914558282, - "meanMs": 7.423013928783386, - "medianMs": 7.343500000000176, - "minMs": 7.059791000000018, - "maxMs": 10.974541999999929, - "p75Ms": 7.483208000000104, - "p99Ms": 8.733749999999986, - "relativeMarginOfError": 0.5167595254653532, - "sampleCount": 337 + "hz": 140.3796381019489, + "meanMs": 7.1235402336182325, + "medianMs": 6.9974580000000515, + "minMs": 6.554292000000032, + "maxMs": 12.261583000000428, + "p75Ms": 7.1584170000000995, + "p99Ms": 9.34479199999987, + "relativeMarginOfError": 0.7485508967082604, + "sampleCount": 351 }, { - "hz": 124.08233468076754, - "meanMs": 8.059164929260454, - "medianMs": 7.536292000000003, - "minMs": 7.102709000000004, - "maxMs": 41.40562499999987, - "p75Ms": 7.776791000000003, - "p99Ms": 21.294959000000063, - "relativeMarginOfError": 3.8722654433323385, - "sampleCount": 311 + "hz": 139.91171800049398, + "meanMs": 7.147364168571422, + "medianMs": 7.044333499999993, + "minMs": 6.676874999999882, + "maxMs": 11.373583999999937, + "p75Ms": 7.177749999999833, + "p99Ms": 9.341957999999977, + "relativeMarginOfError": 0.7029972682336404, + "sampleCount": 350 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 323.4851493349635, - "meanMs": 3.0920113637277082, - "medianMs": 2.8438334999999597, - "minMs": 2.69404099999997, - "maxMs": 16.355207999999948, - "p75Ms": 2.9339165000000094, - "p99Ms": 4.878208500000028, - "maxRelativeMarginOfError": 2.122674948119856, + "hz": 382.49324898027226, + "meanMs": 2.615198305468395, + "medianMs": 2.291354500000068, + "minMs": 2.1849589999999353, + "maxMs": 20.263124999999945, + "p75Ms": 2.380916500000126, + "p99Ms": 5.6703959999999825, + "maxRelativeMarginOfError": 3.165193338591383, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 1618, + "sampleCount": 1913, "rounds": [ { - "hz": 328.2800401703452, - "meanMs": 3.046179717417781, - "medianMs": 2.8022920000000795, - "minMs": 2.69404099999997, - "maxMs": 14.611333000000059, - "p75Ms": 2.881375000000162, - "p99Ms": 4.693667000000005, - "relativeMarginOfError": 1.9916869928877232, - "sampleCount": 821 + "hz": 375.91693213183873, + "meanMs": 2.66016216489362, + "medianMs": 2.30437500000005, + "minMs": 2.1849589999999353, + "maxMs": 20.263124999999945, + "p75Ms": 2.4183750000001965, + "p99Ms": 5.973250000000007, + "relativeMarginOfError": 3.165193338591383, + "sampleCount": 940 }, { - "hz": 318.69025849958183, - "meanMs": 3.1378430100376353, - "medianMs": 2.88537499999984, - "minMs": 2.7569160000000466, - "maxMs": 16.355207999999948, - "p75Ms": 2.986457999999857, - "p99Ms": 5.062750000000051, - "relativeMarginOfError": 2.122674948119856, - "sampleCount": 797 + "hz": 389.0695658287057, + "meanMs": 2.5702344460431696, + "medianMs": 2.2783340000000862, + "minMs": 2.202209000000039, + "maxMs": 19.389542000000347, + "p75Ms": 2.343458000000055, + "p99Ms": 5.367541999999958, + "relativeMarginOfError": 2.7326532447877967, + "sampleCount": 973 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 64.03883634541793, - "meanMs": 15.6166517939087, - "medianMs": 15.260072750000006, - "minMs": 14.566084000000046, - "maxMs": 40.40554199999997, - "p75Ms": 15.769167000000095, - "p99Ms": 25.580104499999948, - "maxRelativeMarginOfError": 2.403617725979918, + "hz": 62.7175665599544, + "meanMs": 15.957792668482206, + "medianMs": 15.39159399999997, + "minMs": 14.538000000000011, + "maxMs": 37.47758299999987, + "p75Ms": 16.036645999999905, + "p99Ms": 24.960562999999865, + "maxRelativeMarginOfError": 2.7996434570092945, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 321, + "sampleCount": 315, "rounds": [ { - "hz": 63.49468225946179, - "meanMs": 15.74935040880503, - "medianMs": 15.321957999999995, - "minMs": 14.774000000000115, - "maxMs": 40.40554199999997, - "p75Ms": 15.79579200000012, - "p99Ms": 31.400291999999922, - "relativeMarginOfError": 2.403617725979918, - "sampleCount": 159 + "hz": 60.90717971923718, + "meanMs": 16.41842562091503, + "medianMs": 15.627958999999919, + "minMs": 14.540707999999995, + "maxMs": 37.47758299999987, + "p75Ms": 16.383041999999932, + "p99Ms": 28.00370900000007, + "relativeMarginOfError": 2.7996434570092945, + "sampleCount": 153 }, { - "hz": 64.58299043137407, - "meanMs": 15.483953179012369, - "medianMs": 15.198187500000017, - "minMs": 14.566084000000046, - "maxMs": 19.942957999999976, - "p75Ms": 15.742542000000071, - "p99Ms": 19.759916999999973, - "relativeMarginOfError": 0.9252418735574771, + "hz": 64.52795340067162, + "meanMs": 15.497159716049383, + "medianMs": 15.15522900000002, + "minMs": 14.538000000000011, + "maxMs": 26.414207999999917, + "p75Ms": 15.690249999999878, + "p99Ms": 21.91741699999966, + "relativeMarginOfError": 1.298404944157346, "sampleCount": 162 } ] @@ -1830,40 +1830,40 @@ { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1243.5159916500031, - "meanMs": 0.8041714318258677, - "medianMs": 0.7946977500000116, - "minMs": 0.766208000000006, - "maxMs": 1.2554170000000795, - "p75Ms": 0.8112500000000864, - "p99Ms": 0.9200210000000197, - "maxRelativeMarginOfError": 0.14212042725837995, + "hz": 1154.671109822823, + "meanMs": 0.8661919744229238, + "medianMs": 0.8175102500000548, + "minMs": 0.7803749999998217, + "maxMs": 21.502040999999736, + "p75Ms": 0.8481664999999339, + "p99Ms": 1.7929994999999508, + "maxRelativeMarginOfError": 1.6964838634159736, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 6219, + "sampleCount": 5774, "rounds": [ { - "hz": 1243.7502997148306, - "meanMs": 0.80401990675241, - "medianMs": 0.7944374999999582, - "minMs": 0.766208000000006, - "maxMs": 1.1092089999999644, - "p75Ms": 0.8113749999999982, - "p99Ms": 0.9228749999999764, - "relativeMarginOfError": 0.13617164774919363, - "sampleCount": 3110 + "hz": 1169.584731773078, + "meanMs": 0.8550043214774279, + "medianMs": 0.8199580000000424, + "minMs": 0.7825840000000426, + "maxMs": 21.502040999999736, + "p75Ms": 0.8476660000001175, + "p99Ms": 1.3819579999999405, + "relativeMarginOfError": 1.6964838634159736, + "sampleCount": 2924 }, { - "hz": 1243.2816835851756, - "meanMs": 0.8043229568993254, - "medianMs": 0.7949580000000651, - "minMs": 0.7707499999999072, - "maxMs": 1.2554170000000795, - "p75Ms": 0.8111250000001746, - "p99Ms": 0.9171670000000631, - "relativeMarginOfError": 0.14212042725837995, - "sampleCount": 3109 + "hz": 1139.7574878725682, + "meanMs": 0.8773796273684198, + "medianMs": 0.8150625000000673, + "minMs": 0.7803749999998217, + "maxMs": 3.9448340000000144, + "p75Ms": 0.8486669999997503, + "p99Ms": 2.204040999999961, + "relativeMarginOfError": 1.0387901902685677, + "sampleCount": 2850 } ] } @@ -1895,200 +1895,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 118.66062545000875, - "meanMs": 8.431474795792642, - "medianMs": 8.289176999999995, - "minMs": 7.839291000000003, - "maxMs": 41.88962500000025, - "p75Ms": 8.411520999999993, - "p99Ms": 11.922583499999973, - "maxRelativeMarginOfError": 2.8466161114780117, + "hz": 1815.9535480200066, + "meanMs": 0.5506870640926788, + "medianMs": 0.5393129999998223, + "minMs": 0.5103750000002947, + "maxMs": 1.4152919999999085, + "p75Ms": 0.5539170000000695, + "p99Ms": 0.6720209999999724, + "maxRelativeMarginOfError": 0.24446447459737117, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 595, + "sampleCount": 9081, "rounds": [ { - "hz": 116.05052720633874, - "meanMs": 8.616936295532653, - "medianMs": 8.34658300000001, - "minMs": 7.935375000000022, - "maxMs": 41.88962500000025, - "p75Ms": 8.474749999999858, - "p99Ms": 15.157999999999902, - "relativeMarginOfError": 2.8466161114780117, - "sampleCount": 291 + "hz": 1824.4957514672647, + "meanMs": 0.5480966448925941, + "medianMs": 0.5372089999996206, + "minMs": 0.5103750000002947, + "maxMs": 1.402958000000126, + "p75Ms": 0.5512499999999818, + "p99Ms": 0.6625829999999837, + "relativeMarginOfError": 0.24446447459737117, + "sampleCount": 4562 }, { - "hz": 121.27072369367875, - "meanMs": 8.246013296052633, - "medianMs": 8.23177099999998, - "minMs": 7.839291000000003, - "maxMs": 8.929082999999991, - "p75Ms": 8.348292000000129, - "p99Ms": 8.687167000000045, - "relativeMarginOfError": 0.21316999769712044, - "sampleCount": 304 + "hz": 1807.4113445727487, + "meanMs": 0.5532774832927634, + "medianMs": 0.541417000000024, + "minMs": 0.5201660000002448, + "maxMs": 1.4152919999999085, + "p75Ms": 0.5565840000001572, + "p99Ms": 0.6814589999999612, + "relativeMarginOfError": 0.24161981195044777, + "sampleCount": 4519 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 60.60769882753283, - "meanMs": 16.49955675, - "medianMs": 16.441218749999962, - "minMs": 15.991500000000087, - "maxMs": 17.961624999999913, - "p75Ms": 16.639499999999998, - "p99Ms": 17.467979500000013, - "maxRelativeMarginOfError": 0.2816179351809727, + "hz": 139.98936272058293, + "meanMs": 7.143902596142263, + "medianMs": 7.030395749999798, + "minMs": 6.668875000000071, + "maxMs": 12.617375000000266, + "p75Ms": 7.185208500000101, + "p99Ms": 9.64572899999996, + "maxRelativeMarginOfError": 0.9039463757517826, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 304, + "sampleCount": 701, "rounds": [ { - "hz": 60.632413972270825, - "meanMs": 16.492828414473692, - "medianMs": 16.42391650000002, - "minMs": 16.05766699999981, - "maxMs": 17.961624999999913, - "p75Ms": 16.628375000000005, - "p99Ms": 17.394916999999964, - "relativeMarginOfError": 0.2816179351809727, - "sampleCount": 152 + "hz": 141.163662553433, + "meanMs": 7.083976016997164, + "medianMs": 7.002749999999651, + "minMs": 6.668875000000071, + "maxMs": 11.183165999999801, + "p75Ms": 7.146417000000042, + "p99Ms": 8.502040999999963, + "relativeMarginOfError": 0.5351995549552249, + "sampleCount": 353 }, { - "hz": 60.58298368279483, - "meanMs": 16.506285085526308, - "medianMs": 16.458520999999905, - "minMs": 15.991500000000087, - "maxMs": 17.544708999999784, - "p75Ms": 16.65062499999999, - "p99Ms": 17.54104200000006, - "relativeMarginOfError": 0.2579358223132772, - "sampleCount": 152 + "hz": 138.81506288773286, + "meanMs": 7.203829175287362, + "medianMs": 7.058041499999945, + "minMs": 6.733375000000024, + "maxMs": 12.617375000000266, + "p75Ms": 7.22400000000016, + "p99Ms": 10.789416999999958, + "relativeMarginOfError": 0.9039463757517826, + "sampleCount": 348 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 138.29459338188826, - "meanMs": 7.231671380349853, - "medianMs": 6.970031249999863, - "minMs": 6.626582999999982, - "maxMs": 20.545415999999932, - "p75Ms": 7.149333499999898, - "p99Ms": 9.249750000000063, - "maxRelativeMarginOfError": 1.4219355401653868, + "hz": 415.54438060668735, + "meanMs": 2.4065246287606223, + "medianMs": 2.1130207499999756, + "minMs": 2.0273339999998825, + "maxMs": 18.849791000000096, + "p75Ms": 2.1824580000000537, + "p99Ms": 5.1886460000000625, + "maxRelativeMarginOfError": 3.1278490750716474, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 693, + "sampleCount": 2079, "rounds": [ { - "hz": 139.68473133787492, - "meanMs": 7.158978582857139, - "medianMs": 6.908187500000054, - "minMs": 6.626582999999982, - "maxMs": 18.97116700000015, - "p75Ms": 7.080541999999923, - "p99Ms": 9.139417000000094, - "relativeMarginOfError": 1.3259102323994587, - "sampleCount": 350 + "hz": 417.29687254724445, + "meanMs": 2.396375496168581, + "medianMs": 2.111291499999993, + "minMs": 2.032791999999972, + "maxMs": 18.273167000000058, + "p75Ms": 2.1827910000001793, + "p99Ms": 5.034834000000046, + "relativeMarginOfError": 2.87460150357885, + "sampleCount": 1044 }, { - "hz": 136.90445542590157, - "meanMs": 7.304364177842567, - "medianMs": 7.031874999999673, - "minMs": 6.732457999999951, - "maxMs": 20.545415999999932, - "p75Ms": 7.218124999999873, - "p99Ms": 9.360083000000031, - "relativeMarginOfError": 1.4219355401653868, - "sampleCount": 343 + "hz": 413.7918886661303, + "meanMs": 2.4166737613526643, + "medianMs": 2.114749999999958, + "minMs": 2.0273339999998825, + "maxMs": 18.849791000000096, + "p75Ms": 2.182124999999928, + "p99Ms": 5.342458000000079, + "relativeMarginOfError": 3.1278490750716474, + "sampleCount": 1035 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 49.95329048172377, - "meanMs": 20.02754948300939, - "medianMs": 19.687520749999976, - "minMs": 18.83979199999976, - "maxMs": 45.065415999999914, - "p75Ms": 20.1231039999999, - "p99Ms": 27.218791499999952, - "maxRelativeMarginOfError": 2.530226662917869, + "hz": 70.15794002317028, + "meanMs": 14.25366880644481, + "medianMs": 13.846666500000026, + "minMs": 13.296708999999964, + "maxMs": 21.68037500000014, + "p75Ms": 14.495104499999911, + "p99Ms": 19.66962449999994, + "maxRelativeMarginOfError": 1.178502391897951, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 251, + "sampleCount": 351, "rounds": [ { - "hz": 48.90331831701149, - "meanMs": 20.448510130081303, - "medianMs": 19.863458000000037, - "minMs": 18.83979199999976, - "maxMs": 45.065415999999914, - "p75Ms": 20.383125000000064, - "p99Ms": 33.042958, - "relativeMarginOfError": 2.530226662917869, - "sampleCount": 123 + "hz": 69.9589934800045, + "meanMs": 14.294087868571431, + "medianMs": 13.91604099999995, + "minMs": 13.314583000000312, + "maxMs": 21.68037500000014, + "p75Ms": 14.525249999999687, + "p99Ms": 18.752958000000035, + "relativeMarginOfError": 1.0938599837175293, + "sampleCount": 175 }, { - "hz": 51.00326264643604, - "meanMs": 19.60658883593748, - "medianMs": 19.511583499999915, - "minMs": 18.89695900000015, - "maxMs": 22.935084000000188, - "p75Ms": 19.863082999999733, - "p99Ms": 21.394624999999905, - "relativeMarginOfError": 0.5277742006832923, - "sampleCount": 128 + "hz": 70.35688656633607, + "meanMs": 14.213249744318189, + "medianMs": 13.777292000000102, + "minMs": 13.296708999999964, + "maxMs": 21.162459000000013, + "p75Ms": 14.464959000000135, + "p99Ms": 20.586290999999846, + "relativeMarginOfError": 1.178502391897951, + "sampleCount": 176 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1356.4130041632968, - "meanMs": 0.737265888542777, - "medianMs": 0.728896000000077, - "minMs": 0.7025830000000042, - "maxMs": 1.0644170000000486, - "p75Ms": 0.7426250000000891, - "p99Ms": 0.8402709999999161, - "maxRelativeMarginOfError": 0.12710978096661119, + "hz": 1313.1538799615344, + "meanMs": 0.7615461762245512, + "medianMs": 0.7415205000000924, + "minMs": 0.7146249999999554, + "maxMs": 3.8470829999996567, + "p75Ms": 0.758104000000003, + "p99Ms": 1.0905005000000756, + "maxRelativeMarginOfError": 0.5078068300769949, "measureCalls": 0, "readCount": 800, "roundCount": 2, - "sampleCount": 6783, + "sampleCount": 6567, "rounds": [ { - "hz": 1364.6679083344752, - "meanMs": 0.7327790108440827, - "medianMs": 0.7241250000001855, - "minMs": 0.7025830000000042, - "maxMs": 1.0317090000000917, - "p75Ms": 0.7382500000001073, - "p99Ms": 0.8334579999998368, - "relativeMarginOfError": 0.12710978096661119, - "sampleCount": 3412 + "hz": 1320.0169569514271, + "meanMs": 0.7575660257497716, + "medianMs": 0.741083000000117, + "minMs": 0.7212919999997212, + "maxMs": 2.1225830000003043, + "p75Ms": 0.7557500000002619, + "p99Ms": 0.9541670000000977, + "relativeMarginOfError": 0.3341230775691424, + "sampleCount": 3301 }, { - "hz": 1348.1580999921184, - "meanMs": 0.7417527662414714, - "medianMs": 0.7336669999999685, - "minMs": 0.7090410000000702, - "maxMs": 1.0644170000000486, - "p75Ms": 0.7470000000000709, - "p99Ms": 0.8470839999999953, - "relativeMarginOfError": 0.12661634610548683, - "sampleCount": 3371 + "hz": 1306.2908029716416, + "meanMs": 0.7655263266993307, + "medianMs": 0.7419580000000678, + "minMs": 0.7146249999999554, + "maxMs": 3.8470829999996567, + "p75Ms": 0.7604579999997441, + "p99Ms": 1.2268340000000535, + "relativeMarginOfError": 0.5078068300769949, + "sampleCount": 3266 } ] } @@ -2120,200 +2120,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 11.014496613134527, - "meanMs": 90.80504317857144, - "medianMs": 89.32402075000005, - "minMs": 86.01800000000003, - "maxMs": 120.11816700000008, - "p75Ms": 89.68993750000004, - "p99Ms": 106.78810450000014, - "maxRelativeMarginOfError": 3.7866078385988113, + "hz": 1624.8568588574599, + "meanMs": 0.6184458388306379, + "medianMs": 0.5751460000000748, + "minMs": 0.5330410000000256, + "maxMs": 17.019708000000037, + "p75Ms": 0.616145500000016, + "p99Ms": 1.210916999999995, + "maxRelativeMarginOfError": 1.6307360439884022, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 56, + "sampleCount": 8125, "rounds": [ { - "hz": 10.870122222540083, - "meanMs": 91.99528575000001, - "medianMs": 88.880583, - "minMs": 86.01800000000003, - "maxMs": 120.11816700000008, - "p75Ms": 89.31204200000002, - "p99Ms": 120.11816700000008, - "relativeMarginOfError": 3.7866078385988113, - "sampleCount": 28 + "hz": 1738.1573539286462, + "meanMs": 0.5753219049700902, + "medianMs": 0.5595000000001846, + "minMs": 0.5330410000000256, + "maxMs": 1.9635000000000673, + "p75Ms": 0.5772910000000593, + "p99Ms": 0.8099589999999353, + "relativeMarginOfError": 0.3713930360981118, + "sampleCount": 4346 }, { - "hz": 11.158871003728972, - "meanMs": 89.61480060714287, - "medianMs": 89.76745850000009, - "minMs": 87.63420799999994, - "maxMs": 93.4580420000002, - "p75Ms": 90.06783300000006, - "p99Ms": 93.4580420000002, - "relativeMarginOfError": 0.5008741881838976, - "sampleCount": 28 + "hz": 1511.5563637862736, + "meanMs": 0.6615697726911856, + "medianMs": 0.5907919999999649, + "minMs": 0.5377079999999523, + "maxMs": 17.019708000000037, + "p75Ms": 0.6549999999999727, + "p99Ms": 1.6118750000000546, + "relativeMarginOfError": 1.6307360439884022, + "sampleCount": 3779 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 8.566320587339344, - "meanMs": 116.74243159999995, - "medianMs": 115.7555000000001, - "minMs": 113.32220800000005, - "maxMs": 130.450875, - "p75Ms": 116.99710400000026, - "p99Ms": 124.23308350000002, - "maxRelativeMarginOfError": 1.7529001981275205, + "hz": 129.81152132522817, + "meanMs": 7.705594084659098, + "medianMs": 7.251228999999853, + "minMs": 6.639791999999943, + "maxMs": 26.28545800000029, + "p75Ms": 7.77908350000007, + "p99Ms": 16.09820850000017, + "maxRelativeMarginOfError": 2.838838701479655, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 50, + "sampleCount": 650, "rounds": [ { - "hz": 8.628738688416902, - "meanMs": 115.89179323999996, - "medianMs": 115.63287500000001, - "minMs": 113.32220800000005, - "maxMs": 118.01529200000004, - "p75Ms": 116.83570800000007, - "p99Ms": 118.01529200000004, - "relativeMarginOfError": 0.4354356734985444, - "sampleCount": 25 + "hz": 131.96347884330297, + "meanMs": 7.577854181818193, + "medianMs": 7.213332999999807, + "minMs": 6.668249999999944, + "maxMs": 16.948750000000018, + "p75Ms": 7.567500000000109, + "p99Ms": 12.714208999999983, + "relativeMarginOfError": 1.6595398018214877, + "sampleCount": 330 }, { - "hz": 8.503902486261788, - "meanMs": 117.59306995999995, - "medianMs": 115.87812500000018, - "minMs": 113.56954099999984, - "maxMs": 130.450875, - "p75Ms": 117.15850000000046, - "p99Ms": 130.450875, - "relativeMarginOfError": 1.7529001981275205, - "sampleCount": 25 + "hz": 127.65956380715339, + "meanMs": 7.833333987500003, + "medianMs": 7.289124999999899, + "minMs": 6.639791999999943, + "maxMs": 26.28545800000029, + "p75Ms": 7.99066700000003, + "p99Ms": 19.482208000000355, + "relativeMarginOfError": 2.838838701479655, + "sampleCount": 320 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 18.055467491946963, - "meanMs": 55.3868002268116, - "medianMs": 55.370541749999944, - "minMs": 53.75129199999992, - "maxMs": 57.70908300000019, - "p75Ms": 55.788396000000034, - "p99Ms": 57.32785399999989, - "maxRelativeMarginOfError": 0.4283789474881322, + "hz": 410.178524741346, + "meanMs": 2.440299265025882, + "medianMs": 2.114052000000015, + "minMs": 1.952458000000206, + "maxMs": 18.686874999999873, + "p75Ms": 2.2199790000000235, + "p99Ms": 5.808729500000027, + "maxRelativeMarginOfError": 3.0437737215935856, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 91, + "sampleCount": 2052, "rounds": [ { - "hz": 18.1616265520207, - "meanMs": 55.061147586956515, - "medianMs": 55.12454149999991, - "minMs": 53.75129199999992, - "maxMs": 56.946624999999585, - "p75Ms": 55.45879200000013, - "p99Ms": 56.946624999999585, - "relativeMarginOfError": 0.4283789474881322, - "sampleCount": 46 + "hz": 397.4865983454489, + "meanMs": 2.515808090543261, + "medianMs": 2.1522079999999733, + "minMs": 1.9915420000002086, + "maxMs": 17.580666000000292, + "p75Ms": 2.2727500000000873, + "p99Ms": 6.118167000000085, + "relativeMarginOfError": 3.0437737215935856, + "sampleCount": 994 }, { - "hz": 17.949308431873224, - "meanMs": 55.712452866666695, - "medianMs": 55.61654199999998, - "minMs": 53.86650000000009, - "maxMs": 57.70908300000019, - "p75Ms": 56.11799999999994, - "p99Ms": 57.70908300000019, - "relativeMarginOfError": 0.4095702617690482, - "sampleCount": 45 + "hz": 422.87045113724304, + "meanMs": 2.364790439508503, + "medianMs": 2.075896000000057, + "minMs": 1.952458000000206, + "maxMs": 18.686874999999873, + "p75Ms": 2.1672079999999596, + "p99Ms": 5.4992919999999685, + "relativeMarginOfError": 2.857234053788716, + "sampleCount": 1058 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 12.611220654184585, - "meanMs": 79.294985734375, - "medianMs": 79.26930225000012, - "minMs": 76.71579199999996, - "maxMs": 82.24795900000004, - "p75Ms": 79.74127149999993, - "p99Ms": 81.34522950000007, - "maxRelativeMarginOfError": 0.4214864122234058, + "hz": 72.07391719653211, + "meanMs": 13.874965438003661, + "medianMs": 13.42391674999999, + "minMs": 12.775540999999976, + "maxMs": 22.954624999999965, + "p75Ms": 14.117646000000036, + "p99Ms": 22.253875000000107, + "maxRelativeMarginOfError": 1.4775328109734698, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 64, + "sampleCount": 362, "rounds": [ { - "hz": 12.643525628409062, - "meanMs": 79.09186325000002, - "medianMs": 79.16833350000002, - "minMs": 76.71579199999996, - "maxMs": 80.44250000000011, - "p75Ms": 79.52333399999998, - "p99Ms": 80.44250000000011, - "relativeMarginOfError": 0.33289583245911475, - "sampleCount": 32 + "hz": 71.72744063175624, + "meanMs": 13.941665716666673, + "medianMs": 13.468563000000017, + "minMs": 12.775540999999976, + "maxMs": 22.954624999999965, + "p75Ms": 14.170417000000043, + "p99Ms": 22.77479100000005, + "relativeMarginOfError": 1.4775328109734698, + "sampleCount": 180 }, { - "hz": 12.57891567996011, - "meanMs": 79.49810821874999, - "medianMs": 79.37027100000023, - "minMs": 78.23687500000005, - "maxMs": 82.24795900000004, - "p75Ms": 79.95920899999987, - "p99Ms": 82.24795900000004, - "relativeMarginOfError": 0.4214864122234058, - "sampleCount": 32 + "hz": 72.42039376130799, + "meanMs": 13.80826515934065, + "medianMs": 13.379270499999961, + "minMs": 12.791083999999955, + "maxMs": 22.215708999999947, + "p75Ms": 14.064875000000029, + "p99Ms": 21.732959000000164, + "relativeMarginOfError": 1.418305036721897, + "sampleCount": 182 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1365.74826893784, - "meanMs": 0.7322003584806709, - "medianMs": 0.7235835000000179, - "minMs": 0.7016250000001492, - "maxMs": 1.1816250000000537, - "p75Ms": 0.7383959999998524, - "p99Ms": 0.8348124999999982, - "maxRelativeMarginOfError": 0.1311806535093428, + "hz": 1268.0412373517552, + "meanMs": 0.7889089068997516, + "medianMs": 0.752010749999954, + "minMs": 0.719208999999978, + "maxMs": 11.233499999999822, + "p75Ms": 0.7812294999998812, + "p99Ms": 1.360875000000192, + "maxRelativeMarginOfError": 1.340815032222883, "measureCalls": 0, "readCount": 788, "roundCount": 2, - "sampleCount": 6830, + "sampleCount": 6342, "rounds": [ { - "hz": 1367.3480661188155, - "meanMs": 0.7313426806083662, - "medianMs": 0.7227090000001226, - "minMs": 0.7016250000001492, - "maxMs": 1.0417079999999714, - "p75Ms": 0.7372919999997976, - "p99Ms": 0.8359169999998812, - "relativeMarginOfError": 0.12922826927015224, - "sampleCount": 3419 + "hz": 1243.6865805347404, + "meanMs": 0.8040610999999984, + "medianMs": 0.7542090000000599, + "minMs": 0.7249170000000049, + "maxMs": 11.233499999999822, + "p75Ms": 0.7909999999997126, + "p99Ms": 1.5557910000002266, + "relativeMarginOfError": 1.340815032222883, + "sampleCount": 3110 }, { - "hz": 1364.1484717568646, - "meanMs": 0.7330580363529757, - "medianMs": 0.7244579999999132, - "minMs": 0.704665999999861, - "maxMs": 1.1816250000000537, - "p75Ms": 0.7394999999999072, - "p99Ms": 0.8337080000001151, - "relativeMarginOfError": 0.1311806535093428, - "sampleCount": 3411 + "hz": 1292.3958941687702, + "meanMs": 0.7737567137995047, + "medianMs": 0.7498124999998481, + "minMs": 0.719208999999978, + "maxMs": 2.11337500000036, + "p75Ms": 0.7714590000000499, + "p99Ms": 1.1659590000001572, + "relativeMarginOfError": 0.3744675993019663, + "sampleCount": 3232 } ] } @@ -2342,80 +2342,80 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 2136.010154134032, - "meanMs": 0.4681765851714409, - "medianMs": 0.4602707500000065, - "minMs": 0.43687499999998636, - "maxMs": 1.6582909999999629, - "p75Ms": 0.47268750000000637, - "p99Ms": 0.5620210000000725, - "maxRelativeMarginOfError": 0.19517777908150802, + "hz": 2040.3492775174393, + "meanMs": 0.49182604744242187, + "medianMs": 0.4404375000000016, + "minMs": 0.403208000000177, + "maxMs": 3.29037500000004, + "p75Ms": 0.48110399999984566, + "p99Ms": 1.1809164999999666, + "maxRelativeMarginOfError": 1.1210823459833044, "measureCalls": 0, "readCount": 772, "roundCount": 2, - "sampleCount": 10681, + "sampleCount": 10202, "rounds": [ { - "hz": 2124.322653412196, - "meanMs": 0.4707382837507046, - "medianMs": 0.46270800000002055, - "minMs": 0.43687499999998636, - "maxMs": 1.6582909999999629, - "p75Ms": 0.4756250000000364, - "p99Ms": 0.5664170000000013, - "relativeMarginOfError": 0.19517777908150802, - "sampleCount": 5311 + "hz": 1919.904110005241, + "meanMs": 0.5208593464583344, + "medianMs": 0.446666999999934, + "minMs": 0.4107909999997901, + "maxMs": 3.29037500000004, + "p75Ms": 0.4988749999999982, + "p99Ms": 1.3550419999999122, + "relativeMarginOfError": 1.1210823459833044, + "sampleCount": 4800 }, { - "hz": 2147.697654855868, - "meanMs": 0.4656148865921772, - "medianMs": 0.45783349999999245, - "minMs": 0.4375, - "maxMs": 0.7287499999999909, - "p75Ms": 0.46974999999997635, - "p99Ms": 0.5576250000001437, - "relativeMarginOfError": 0.13996251275403085, - "sampleCount": 5370 + "hz": 2160.7944450296377, + "meanMs": 0.46279274842650936, + "medianMs": 0.4342080000000692, + "minMs": 0.403208000000177, + "maxMs": 2.044667000000004, + "p75Ms": 0.46333299999969313, + "p99Ms": 1.006791000000021, + "relativeMarginOfError": 0.5854753964625095, + "sampleCount": 5402 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 154.20538106729254, - "meanMs": 6.48513582895823, - "medianMs": 6.388812499999858, - "minMs": 6.081665999999814, - "maxMs": 8.196666999999934, - "p75Ms": 6.553479000000152, - "p99Ms": 7.557291499999906, - "maxRelativeMarginOfError": 0.4644775859065282, + "hz": 135.09047315577934, + "meanMs": 7.412660367368433, + "medianMs": 7.083125249999966, + "minMs": 6.411666999999966, + "maxMs": 31.81579099999999, + "p75Ms": 7.489104500000167, + "p99Ms": 13.457770999999866, + "maxRelativeMarginOfError": 2.869814571158091, "measureCalls": 0, "readCount": 772, "roundCount": 2, - "sampleCount": 772, + "sampleCount": 677, "rounds": [ { - "hz": 155.21468965293468, - "meanMs": 6.442689169665797, - "medianMs": 6.350207999999839, - "minMs": 6.081665999999814, - "maxMs": 7.788792000000058, - "p75Ms": 6.521333000000141, - "p99Ms": 7.5195830000000115, - "relativeMarginOfError": 0.4644775859065282, - "sampleCount": 389 + "hz": 140.10503289526258, + "meanMs": 7.137502339031343, + "medianMs": 6.961874999999964, + "minMs": 6.439959000000272, + "maxMs": 11.63429199999996, + "p75Ms": 7.228625000000193, + "p99Ms": 10.74795899999981, + "relativeMarginOfError": 1.019651338069962, + "sampleCount": 351 }, { - "hz": 153.19607248165036, - "meanMs": 6.527582488250662, - "medianMs": 6.427416999999878, - "minMs": 6.164500000000089, - "maxMs": 8.196666999999934, - "p75Ms": 6.585625000000164, - "p99Ms": 7.5949999999998, - "relativeMarginOfError": 0.4561750107919077, - "sampleCount": 383 + "hz": 130.0759134162961, + "meanMs": 7.6878183957055235, + "medianMs": 7.204375499999969, + "minMs": 6.411666999999966, + "maxMs": 31.81579099999999, + "p75Ms": 7.749584000000141, + "p99Ms": 16.167582999999922, + "relativeMarginOfError": 2.869814571158091, + "sampleCount": 326 } ] } @@ -2446,200 +2446,200 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 1625.3740546459767, - "meanMs": 0.616118116540652, - "medianMs": 0.594458500000087, - "minMs": 0.5518750000001091, - "maxMs": 4.2268340000000535, - "p75Ms": 0.6249374999999873, - "p99Ms": 0.8892289999998866, - "maxRelativeMarginOfError": 0.5302573107206032, + "hz": 1774.5214750526916, + "meanMs": 0.5635332628019317, + "medianMs": 0.5260414999999625, + "minMs": 0.493916999999783, + "maxMs": 4.584375000000136, + "p75Ms": 0.5582920000000513, + "p99Ms": 1.262562500000115, + "maxRelativeMarginOfError": 0.7530990086818221, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 8128, + "sampleCount": 8874, "rounds": [ { - "hz": 1686.6310555643854, - "meanMs": 0.5928978935262028, - "medianMs": 0.5764170000002196, - "minMs": 0.5542089999999007, - "maxMs": 4.2268340000000535, - "p75Ms": 0.590541999999914, - "p99Ms": 0.8056249999999636, - "relativeMarginOfError": 0.5302573107206032, - "sampleCount": 4217 + "hz": 1772.0904810058937, + "meanMs": 0.5643052714962776, + "medianMs": 0.5271659999999656, + "minMs": 0.493916999999783, + "maxMs": 4.584375000000136, + "p75Ms": 0.5604169999999158, + "p99Ms": 1.2248749999999973, + "relativeMarginOfError": 0.7530990086818221, + "sampleCount": 4431 }, { - "hz": 1564.1170537275677, - "meanMs": 0.6393383395551011, - "medianMs": 0.6124999999999545, - "minMs": 0.5518750000001091, - "maxMs": 3.536292000000003, - "p75Ms": 0.6593330000000606, - "p99Ms": 0.9728329999998095, - "relativeMarginOfError": 0.46734047822535196, - "sampleCount": 3911 + "hz": 1776.9524690994897, + "meanMs": 0.5627612541075858, + "medianMs": 0.5249169999999594, + "minMs": 0.49575000000004366, + "maxMs": 3.068500000000313, + "p75Ms": 0.5561670000001868, + "p99Ms": 1.3002500000002328, + "relativeMarginOfError": 0.7215629544528992, + "sampleCount": 4443 } ] }, { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 142.20862387594065, - "meanMs": 7.040048660597827, - "medianMs": 6.844969000000077, - "minMs": 6.495666999999912, - "maxMs": 18.85849999999982, - "p75Ms": 7.205833499999926, - "p99Ms": 10.075042000000167, - "maxRelativeMarginOfError": 1.6268814052163751, + "hz": 134.55588050227027, + "meanMs": 7.43478811586505, + "medianMs": 7.247958500000038, + "minMs": 6.706957999999986, + "maxMs": 14.728208999999879, + "p75Ms": 7.5243754999999055, + "p99Ms": 10.707188000000087, + "maxRelativeMarginOfError": 1.1721312715764387, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 713, + "sampleCount": 674, "rounds": [ { - "hz": 147.0401565864508, - "meanMs": 6.800863269021751, - "medianMs": 6.680770999999993, - "minMs": 6.495666999999912, - "maxMs": 8.207167000000027, - "p75Ms": 6.858999999999924, - "p99Ms": 7.9021670000001905, - "relativeMarginOfError": 0.46992781888353524, - "sampleCount": 368 + "hz": 131.88398645769027, + "meanMs": 7.582421693939395, + "medianMs": 7.375792000000047, + "minMs": 6.706957999999986, + "maxMs": 14.728208999999879, + "p75Ms": 7.72320899999977, + "p99Ms": 11.036959000000024, + "relativeMarginOfError": 1.1721312715764387, + "sampleCount": 330 }, { - "hz": 137.37709116543047, - "meanMs": 7.279234052173902, - "medianMs": 7.009167000000161, - "minMs": 6.520999999999958, - "maxMs": 18.85849999999982, - "p75Ms": 7.5526669999999285, - "p99Ms": 12.247917000000143, - "relativeMarginOfError": 1.6268814052163751, - "sampleCount": 345 + "hz": 137.2277745468503, + "meanMs": 7.287154537790705, + "medianMs": 7.12012500000003, + "minMs": 6.707249999999931, + "maxMs": 11.977166000000011, + "p75Ms": 7.325542000000041, + "p99Ms": 10.37741700000015, + "relativeMarginOfError": 0.9002375028899133, + "sampleCount": 344 } ] }, { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 262.43841025454657, - "meanMs": 3.811354883148982, - "medianMs": 3.5238332499999956, - "minMs": 3.350458000000117, - "maxMs": 16.774625000000015, - "p75Ms": 3.7002914999999916, - "p99Ms": 7.2683960000000525, - "maxRelativeMarginOfError": 1.873516244648038, + "hz": 256.78538247783393, + "meanMs": 3.8969713214232136, + "medianMs": 3.5090832500000033, + "minMs": 3.2438750000001164, + "maxMs": 36.06054200000017, + "p75Ms": 3.8228955000001292, + "p99Ms": 6.806896000000279, + "maxRelativeMarginOfError": 3.1876038143275185, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 1313, + "sampleCount": 1285, "rounds": [ { - "hz": 258.3234296289183, - "meanMs": 3.871116148606808, - "medianMs": 3.5548334999999724, - "minMs": 3.421333000000004, - "maxMs": 13.269624999999905, - "p75Ms": 3.7635830000000396, - "p99Ms": 9.106917000000067, - "relativeMarginOfError": 1.870928277453784, - "sampleCount": 646 + "hz": 263.50512771921746, + "meanMs": 3.7949925629742114, + "medianMs": 3.4423329999999623, + "minMs": 3.2438750000001164, + "maxMs": 20.619333000000097, + "p75Ms": 3.708625000000211, + "p99Ms": 6.284875000000284, + "relativeMarginOfError": 2.380874310908372, + "sampleCount": 659 }, { - "hz": 266.55339088017485, - "meanMs": 3.751593617691156, - "medianMs": 3.4928330000000187, - "minMs": 3.350458000000117, - "maxMs": 16.774625000000015, - "p75Ms": 3.6369999999999436, - "p99Ms": 5.429875000000038, - "relativeMarginOfError": 1.873516244648038, - "sampleCount": 667 + "hz": 250.06563723645044, + "meanMs": 3.9989500798722157, + "medianMs": 3.5758335000000443, + "minMs": 3.3555420000002414, + "maxMs": 36.06054200000017, + "p75Ms": 3.9371660000000475, + "p99Ms": 7.328917000000274, + "relativeMarginOfError": 3.1876038143275185, + "sampleCount": 626 } ] }, { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 45.96429948661251, - "meanMs": 21.76153677282951, - "medianMs": 21.243802250000016, - "minMs": 20.2467079999999, - "maxMs": 69.73208300000033, - "p75Ms": 21.698375499999997, - "p99Ms": 28.679041500000153, - "maxRelativeMarginOfError": 4.126432500327977, + "hz": 43.795870303291295, + "meanMs": 22.85198795070714, + "medianMs": 22.26389599999999, + "minMs": 20.72979200000009, + "maxMs": 35.267791999999986, + "p75Ms": 23.454395999999917, + "p99Ms": 30.859041499999933, + "maxRelativeMarginOfError": 2.148027558768745, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 231, + "sampleCount": 220, "rounds": [ { - "hz": 45.2321398166135, - "meanMs": 22.108173614035078, - "medianMs": 21.216145499999982, - "minMs": 20.2467079999999, - "maxMs": 69.73208300000033, - "p75Ms": 21.735333999999966, - "p99Ms": 33.99720800000023, - "relativeMarginOfError": 4.126432500327977, - "sampleCount": 114 + "hz": 45.051540128063586, + "meanMs": 22.19679942477878, + "medianMs": 22.00929199999996, + "minMs": 20.72979200000009, + "maxMs": 27.23229100000026, + "p75Ms": 22.653041999999914, + "p99Ms": 26.908582999999908, + "relativeMarginOfError": 0.8829402489672388, + "sampleCount": 113 }, { - "hz": 46.696459156611525, - "meanMs": 21.414899931623935, - "medianMs": 21.27145900000005, - "minMs": 20.568457999999737, - "maxMs": 24.994500000000244, - "p75Ms": 21.66141700000003, - "p99Ms": 23.360875000000078, - "relativeMarginOfError": 0.5756882918456633, - "sampleCount": 117 + "hz": 42.540200478519004, + "meanMs": 23.507176476635497, + "medianMs": 22.518500000000017, + "minMs": 20.954041999999845, + "maxMs": 35.267791999999986, + "p75Ms": 24.25574999999992, + "p99Ms": 34.80949999999996, + "relativeMarginOfError": 2.148027558768745, + "sampleCount": 107 } ] }, { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 1638.8984266194561, - "meanMs": 0.6101819688345483, - "medianMs": 0.6020000000000891, - "minMs": 0.5763750000000982, - "maxMs": 1.1317910000002485, - "p75Ms": 0.6147289999998975, - "p99Ms": 0.7031254999999987, - "maxRelativeMarginOfError": 0.14008143963959632, + "hz": 1522.8583470619524, + "meanMs": 0.656685926231807, + "medianMs": 0.6251040000000216, + "minMs": 0.5961250000000291, + "maxMs": 5.864458000000013, + "p75Ms": 0.6562499999998863, + "p99Ms": 1.1742295000001377, + "maxRelativeMarginOfError": 0.7482539640021741, "measureCalls": 0, "readCount": 808, "roundCount": 2, - "sampleCount": 8196, + "sampleCount": 7616, "rounds": [ { - "hz": 1630.4986949285712, - "meanMs": 0.6133092918812841, - "medianMs": 0.6052500000000691, - "minMs": 0.5853329999999914, - "maxMs": 1.1317910000002485, - "p75Ms": 0.6183750000000146, - "p99Ms": 0.7017919999999549, - "relativeMarginOfError": 0.13380965796311609, - "sampleCount": 4077 + "hz": 1513.2700714112698, + "meanMs": 0.6608205758456611, + "medianMs": 0.6264165000000048, + "minMs": 0.5987920000000031, + "maxMs": 5.864458000000013, + "p75Ms": 0.6572919999998703, + "p99Ms": 1.218000000000302, + "relativeMarginOfError": 0.7482539640021741, + "sampleCount": 3784 }, { - "hz": 1647.298158310341, - "meanMs": 0.6070546457878125, - "medianMs": 0.5987500000001091, - "minMs": 0.5763750000000982, - "maxMs": 1.05074999999988, - "p75Ms": 0.6110829999997804, - "p99Ms": 0.7044590000000426, - "relativeMarginOfError": 0.14008143963959632, - "sampleCount": 4119 + "hz": 1532.4466227126347, + "meanMs": 0.6525512766179528, + "medianMs": 0.6237915000000385, + "minMs": 0.5961250000000291, + "maxMs": 4.755083000000013, + "p75Ms": 0.6552079999999023, + "p99Ms": 1.1304589999999735, + "relativeMarginOfError": 0.5741796910392448, + "sampleCount": 3832 } ] } @@ -2669,28 +2669,28 @@ { "targetId": "node", "packageName": "@taffyjs/node", - "hz": 144.6731413350479, - "meanMs": 6.912133038461538, - "medianMs": 6.836187499999994, - "minMs": 6.4090419999999995, - "maxMs": 7.655124999999998, - "p75Ms": 7.025500000000001, - "p99Ms": 7.655124999999998, - "maxRelativeMarginOfError": 1.7708941171464543, + "hz": 164.722160629157, + "meanMs": 6.070828576923079, + "medianMs": 5.908812500000003, + "minMs": 5.170833000000002, + "maxMs": 8.856542000000005, + "p75Ms": 6.315958000000002, + "p99Ms": 8.856542000000005, + "maxRelativeMarginOfError": 4.727675327988059, "measureCalls": 59, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 144.6731413350479, - "meanMs": 6.912133038461538, - "medianMs": 6.836187499999994, - "minMs": 6.4090419999999995, - "maxMs": 7.655124999999998, - "p75Ms": 7.025500000000001, - "p99Ms": 7.655124999999998, - "relativeMarginOfError": 1.7708941171464543, + "hz": 164.722160629157, + "meanMs": 6.070828576923079, + "medianMs": 5.908812500000003, + "minMs": 5.170833000000002, + "maxMs": 8.856542000000005, + "p75Ms": 6.315958000000002, + "p99Ms": 8.856542000000005, + "relativeMarginOfError": 4.727675327988059, "sampleCount": 26 } ] @@ -2698,28 +2698,28 @@ { "targetId": "wasm", "packageName": "@taffyjs/wasm", - "hz": 25.644869842422136, - "meanMs": 38.99415384615385, - "medianMs": 38.3555, - "minMs": 34.617416000000006, - "maxMs": 62.97049999999999, - "p75Ms": 40.372625000000006, - "p99Ms": 62.97049999999999, - "maxRelativeMarginOfError": 5.364874203807891, + "hz": 22.625358008545298, + "meanMs": 44.19819565384615, + "medianMs": 40.3871875, + "minMs": 36.522833999999996, + "maxMs": 59.57066699999999, + "p75Ms": 49.677583, + "p99Ms": 59.57066699999999, + "maxRelativeMarginOfError": 6.352188090903529, "measureCalls": 59, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 25.644869842422136, - "meanMs": 38.99415384615385, - "medianMs": 38.3555, - "minMs": 34.617416000000006, - "maxMs": 62.97049999999999, - "p75Ms": 40.372625000000006, - "p99Ms": 62.97049999999999, - "relativeMarginOfError": 5.364874203807891, + "hz": 22.625358008545298, + "meanMs": 44.19819565384615, + "medianMs": 40.3871875, + "minMs": 36.522833999999996, + "maxMs": 59.57066699999999, + "p75Ms": 49.677583, + "p99Ms": 59.57066699999999, + "relativeMarginOfError": 6.352188090903529, "sampleCount": 26 } ] @@ -2727,28 +2727,28 @@ { "targetId": "taffy-yoga", "packageName": "@taffyjs/yoga", - "hz": 75.45233303648742, - "meanMs": 13.253400653846153, - "medianMs": 12.934458500000002, - "minMs": 12.607292000000001, - "maxMs": 16.299500000000002, - "p75Ms": 13.228208000000002, - "p99Ms": 16.299500000000002, - "maxRelativeMarginOfError": 2.5418787065388813, + "hz": 74.44174972309244, + "meanMs": 13.433322076923076, + "medianMs": 13.095624999999998, + "minMs": 12.199582999999997, + "maxMs": 17.8495, + "p75Ms": 13.474291999999998, + "p99Ms": 17.8495, + "maxRelativeMarginOfError": 3.959577225634866, "measureCalls": 39, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 75.45233303648742, - "meanMs": 13.253400653846153, - "medianMs": 12.934458500000002, - "minMs": 12.607292000000001, - "maxMs": 16.299500000000002, - "p75Ms": 13.228208000000002, - "p99Ms": 16.299500000000002, - "relativeMarginOfError": 2.5418787065388813, + "hz": 74.44174972309244, + "meanMs": 13.433322076923076, + "medianMs": 13.095624999999998, + "minMs": 12.199582999999997, + "maxMs": 17.8495, + "p75Ms": 13.474291999999998, + "p99Ms": 17.8495, + "relativeMarginOfError": 3.959577225634866, "sampleCount": 26 } ] @@ -2756,28 +2756,28 @@ { "targetId": "taffy-yoga-wasm", "packageName": "@taffyjs/yoga-wasm", - "hz": 21.97927923738461, - "meanMs": 45.49739730769231, - "medianMs": 44.266875, - "minMs": 43.306749999999994, - "maxMs": 53.34625, - "p75Ms": 45.079541000000006, - "p99Ms": 53.34625, - "maxRelativeMarginOfError": 2.365326872413201, + "hz": 16.832556386985722, + "meanMs": 59.40868261538461, + "medianMs": 56.18897849999999, + "minMs": 47.546625000000006, + "maxMs": 92.80325, + "p75Ms": 65.33012500000001, + "p99Ms": 92.80325, + "maxRelativeMarginOfError": 6.739126157412318, "measureCalls": 39, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 21.97927923738461, - "meanMs": 45.49739730769231, - "medianMs": 44.266875, - "minMs": 43.306749999999994, - "maxMs": 53.34625, - "p75Ms": 45.079541000000006, - "p99Ms": 53.34625, - "relativeMarginOfError": 2.365326872413201, + "hz": 16.832556386985722, + "meanMs": 59.40868261538461, + "medianMs": 56.18897849999999, + "minMs": 47.546625000000006, + "maxMs": 92.80325, + "p75Ms": 65.33012500000001, + "p99Ms": 92.80325, + "relativeMarginOfError": 6.739126157412318, "sampleCount": 26 } ] @@ -2785,28 +2785,28 @@ { "targetId": "yoga-layout", "packageName": "yoga-layout", - "hz": 39.77770638801417, - "meanMs": 25.13970992307692, - "medianMs": 23.929104499999994, - "minMs": 20.668791, - "maxMs": 48.009667, - "p75Ms": 25.478416000000003, - "p99Ms": 48.009667, - "maxRelativeMarginOfError": 8.234788090834332, + "hz": 40.35471521503637, + "meanMs": 24.78025169230769, + "medianMs": 24.4025005, + "minMs": 21.513583000000004, + "maxMs": 31.552042, + "p75Ms": 25.353041000000005, + "p99Ms": 31.552042, + "maxRelativeMarginOfError": 3.3560811028558595, "measureCalls": 5, "readCount": 148, "roundCount": 1, "sampleCount": 26, "rounds": [ { - "hz": 39.77770638801417, - "meanMs": 25.13970992307692, - "medianMs": 23.929104499999994, - "minMs": 20.668791, - "maxMs": 48.009667, - "p75Ms": 25.478416000000003, - "p99Ms": 48.009667, - "relativeMarginOfError": 8.234788090834332, + "hz": 40.35471521503637, + "meanMs": 24.78025169230769, + "medianMs": 24.4025005, + "minMs": 21.513583000000004, + "maxMs": 31.552042, + "p75Ms": 25.353041000000005, + "p99Ms": 31.552042, + "relativeMarginOfError": 3.3560811028558595, "sampleCount": 26 } ] From 155b6ba9a2e65cf1a7bfab4fa3c55e533ee89f7c Mon Sep 17 00:00:00 2001 From: Yunfei He Date: Tue, 25 Aug 2026 10:43:00 +0800 Subject: [PATCH 3/3] docs: show the Taffy release in public docs --- .agents/docs/technology-stack.md | 2 +- apps/website/node/index.md | 2 +- apps/website/wasm/index.md | 2 +- packages/taffyjs-node/README.md | 2 +- packages/taffyjs-wasm/README.md | 2 +- packages/taffyjs-yoga-wasm/README.md | 2 +- packages/taffyjs-yoga/COMPATIBILITY.md | 2 +- packages/taffyjs-yoga/README.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.agents/docs/technology-stack.md b/.agents/docs/technology-stack.md index ab3a19a..0ab91fa 100644 --- a/.agents/docs/technology-stack.md +++ b/.agents/docs/technology-stack.md @@ -2,7 +2,7 @@ ## Native bindings and distribution -The binding depends on Taffy by exact Git revision, currently [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), which is also the Taffy 0.14.0 release commit. The repository publishes npm packages and no Rust crate, so a Git requirement carries no crates.io restriction and makes the audited source commit explicit in each package README. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That historical comparison is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host, identifies its TaffyJS source commit, and is normally refreshed after a dependency change. +The binding depends on Taffy by exact Git revision, currently [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), which is also the Taffy 0.14.0 release commit. The repository publishes npm packages and no Rust crate, so a Git requirement carries no crates.io restriction. `Cargo.toml` and `Cargo.lock` retain the exact source identity; public package docs name the Taffy release instead of repeating its commit hash when the revision is tagged. The Git-pin strategy was originally supported by a 500-node nested-flexbox measurement on one macOS arm64 host: on 2026-08-22, Taffy 0.13.0 took 26.15 ms while the then-current post-release revision `55cda62a` took 3.24 ms and the `yoga-layout` baseline remained 9.7 ms. That historical comparison is not a performance claim for the current pin. The retained public dataset is measured on the fixed benchmark host, identifies its TaffyJS source commit, and is normally refreshed after a dependency change. napi-rs owns the Rust-to-Node boundary, private native declarations, native loader, and target-specific package metadata. It generates an ESM loader, which Vite+ bundles into the ESM public entry without maintaining a custom loader. The pinned napi-rs template deliberately emits bare Node builtin specifiers to retain Node 12 compatibility; TaffyJS targets Node 22.20 or newer, so the repository mechanically normalizes those generated specifiers to the explicit `node:` protocol before formatting and bundling the loader. diff --git a/apps/website/node/index.md b/apps/website/node/index.md index e8d6f55..c9ce801 100644 --- a/apps/website/node/index.md +++ b/apps/website/node/index.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the native Node-API binding for Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), the Taffy 0.14.0 release commit. It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. +`@taffyjs/node` is the native Node-API binding for Taffy 0.14.0. It provides an explicit in-memory layout tree for Block, Flexbox, and Grid through readable JavaScript inputs and outputs. Follow [Getting Started](../guide/getting-started.md) to install the package and compute a first layout. diff --git a/apps/website/wasm/index.md b/apps/website/wasm/index.md index c0d0a5d..f23f423 100644 --- a/apps/website/wasm/index.md +++ b/apps/website/wasm/index.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, over Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. +`@taffyjs/wasm` runs the same TaffyJS API through WebAssembly, using Taffy 0.14.0. Choose it for a bundled browser application, or when you want to use WebAssembly explicitly in Node.js instead of loading a native addon. Read the [Design](./design.md) to understand how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/packages/taffyjs-node/README.md b/packages/taffyjs-node/README.md index e86dd47..eb44757 100644 --- a/packages/taffyjs-node/README.md +++ b/packages/taffyjs-node/README.md @@ -1,6 +1,6 @@ # `@taffyjs/node` -`@taffyjs/node` is the ESM-only Node-API binding for Taffy at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), the Taffy 0.14.0 release commit. It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. +`@taffyjs/node` is the ESM-only Node-API binding for Taffy 0.14.0. It exposes an explicit in-memory layout tree, readable JavaScript inputs and outputs, and a private platform-specific native implementation. Install it with npm: diff --git a/packages/taffyjs-wasm/README.md b/packages/taffyjs-wasm/README.md index 43e3c2e..98acc7c 100644 --- a/packages/taffyjs-wasm/README.md +++ b/packages/taffyjs-wasm/README.md @@ -1,6 +1,6 @@ # `@taffyjs/wasm` -`@taffyjs/wasm` runs the Taffy layout engine, at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. +`@taffyjs/wasm` runs the Taffy 0.14.0 layout engine as threadless WebAssembly in Node.js, Bun 1.2+ within major 1, Deno 2.2+ within major 2, and bundled browsers. It exposes the same public TaffyJS API as `@taffyjs/node`; choosing this package guarantees that the implementation is Wasm rather than a native addon. The [Design](../../apps/website/wasm/design.md) explains how the package keeps one direct API across native and WebAssembly runtimes. diff --git a/packages/taffyjs-yoga-wasm/README.md b/packages/taffyjs-yoga-wasm/README.md index 6c06c20..0efb2e0 100644 --- a/packages/taffyjs-yoga-wasm/README.md +++ b/packages/taffyjs-yoga-wasm/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga-wasm -`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. Taffy is at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). +`@taffyjs/yoga-wasm` is an ESM Yoga 3.2.1 compatibility facade backed by `@taffyjs/wasm`. It uses the same TypeScript facade, public entries, declarations, and compatibility classifications as `@taffyjs/yoga`; only the TaffyJS runtime backend changes. The layout engine is Taffy 0.14.0. The [Design](../../apps/website/yoga-wasm/design.md) explains why the Yoga-facing model and runtime transport remain separate choices. diff --git a/packages/taffyjs-yoga/COMPATIBILITY.md b/packages/taffyjs-yoga/COMPATIBILITY.md index 6475495..b08cadd 100644 --- a/packages/taffyjs-yoga/COMPATIBILITY.md +++ b/packages/taffyjs-yoga/COMPATIBILITY.md @@ -61,7 +61,7 @@ When an upstream enum type also contains values that are Unsupported for one pro ## Upstream work in progress -The compatibility tables describe what the current package can do with its pinned Taffy dependency, revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb). Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. +The compatibility tables describe what the current package can do with its pinned Taffy 0.14.0 dependency. Upstream work is tracked separately so that a possible compatibility improvement is visible without presenting unshipped code as available behavior. | Capability | Upstream status | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/packages/taffyjs-yoga/README.md b/packages/taffyjs-yoga/README.md index f7d6f80..c4a1b77 100644 --- a/packages/taffyjs-yoga/README.md +++ b/packages/taffyjs-yoga/README.md @@ -1,6 +1,6 @@ # @taffyjs/yoga -`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy, at revision [`77f38568`](https://github.com/DioxusLabs/taffy/commit/77f385683c1d698c91a23a259f87fdddf26925fb), remains the only layout engine. +`@taffyjs/yoga` is a Node.js compatibility facade for `yoga-layout@3.2.1`, implemented in TypeScript over `@taffyjs/node`. It keeps Yoga's package entries and public API shape while Taffy 0.14.0 remains the only layout engine. The [Design](../../apps/website/yoga/design.md) explains which parts of Yoga the facade preserves, which parts stay owned by Taffy, and how unsupported behavior is reported.