Avatar for the studiometa user
studiometa
js-toolkit
BlogDocsChangelog

[Enhancement] Optimize tween, animate and RafService for browser performance

#721Merged
Comparing
feat/tween-animate-performance
(
9a15506
) with
main
(
82e70c2
)
CodSpeed Performance Gauge
-41%
Improvement
14
Regression
7
Untouched
94

Benchmarks

115 total
create with simple keyframes (opacity)
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
-41%
107.3 µs181.2 µs
create with easing per keyframe
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
-34%
154.1 µs234.8 µs
start/pause cycle
packages/tests/__benchmarks__/animate.bench.ts::animate::lifecycle
CodSpeed Performance Gauge
-29%
148.5 µs208.2 µs
create with custom properties
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
-29%
124.5 µs174.4 µs
add + remove callback
packages/tests/__benchmarks__/services.bench.ts::services::ScrollService
CodSpeed Performance Gauge
-22%
68.2 µs87.6 µs
create with multiple transforms
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
-20%
159 µs197.9 µs
create with 4 keyframes
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
-17%
433.6 µs519.7 µs
trigger (50 callbacks, read only)
packages/tests/__benchmarks__/services.bench.ts::services::RafService.trigger()
CodSpeed Performance Gauge
×10
494.6 µs47.2 µs
create with transform keyframes (x, y)
packages/tests/__benchmarks__/animate.bench.ts::animate::creation
CodSpeed Performance Gauge
+82%
306.1 µs168.5 µs
updateProps()
packages/tests/__benchmarks__/scheduler.bench.ts::ScrollService.updateProps
CodSpeed Performance Gauge
+82%
77.8 µs42.8 µs
trigger (50 callbacks, read + write)
packages/tests/__benchmarks__/services.bench.ts::services::RafService.trigger()
CodSpeed Performance Gauge
+58%
106.3 µs67.1 µs
trigger (10 callbacks, read only)
packages/tests/__benchmarks__/services.bench.ts::services::RafService.trigger()
CodSpeed Performance Gauge
+25%
43.8 µs34.9 µs
getAllProperties (no filter)
packages/tests/__benchmarks__/base.bench.ts::Base internals::getAllProperties
CodSpeed Performance Gauge
+25%
64.3 µs51.6 µs
progress update (x, y transform)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (single element)
CodSpeed Performance Gauge
+20%
371.2 µs308.9 µs
progress with numeric stagger
packages/tests/__benchmarks__/animate.bench.ts::animate::staggered animations
CodSpeed Performance Gauge
+18%
1.3 ms1.1 ms
progress with function stagger
packages/tests/__benchmarks__/animate.bench.ts::animate::staggered animations
CodSpeed Performance Gauge
+18%
1.3 ms1.1 ms
progress update (5 transforms)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (single element)
CodSpeed Performance Gauge
+18%
365.1 µs309.7 µs
trigger (10 callbacks, read + write)
packages/tests/__benchmarks__/services.bench.ts::services::RafService.trigger()
CodSpeed Performance Gauge
+17%
48 µs40.9 µs
progress update (4 keyframes)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (single element)
CodSpeed Performance Gauge
+17%
463.4 µs397.1 µs
progress update (5 elements)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (multiple elements)
CodSpeed Performance Gauge
+14%
939.5 µs825.9 µs
progress update (10 elements)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (multiple elements)
CodSpeed Performance Gauge
+11%
2.7 ms2.4 ms
progress update (opacity only)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (single element)
CodSpeed Performance Gauge
+9%
372.9 µs341.8 µs
progress update (3 custom properties)
packages/tests/__benchmarks__/animate.bench.ts::animate::progress updates (single element)
CodSpeed Performance Gauge
+7%
524 µs487.7 µs
normalize undefined (fallback to linear)
packages/tests/__benchmarks__/tween.bench.ts::tween::normalizeEase
CodSpeed Performance Gauge
+7%
12.8 µs12 µs
progress update (easing function)
packages/tests/__benchmarks__/tween.bench.ts::tween::progress updates
CodSpeed Performance Gauge
+6%
23.3 µs22 µs

Commits

Click on a commit to change the comparison range
Base
main
82e70c2
-40.69%
Update changelog with performance improvements
da84702
18 days ago
by titouanmathis
-0.01%
Restore defensive copy in getInstances
104eee2
10 days ago
by titouanmathis
+0.02%
Use maximum duration for multi-element animate progress
3f1e449
10 days ago
by titouanmathis
-0.01%
Add regression tests for compiled animate segments
559e692
10 days ago
by titouanmathis
+0.01%
Observe scroll size changes in ScrollService
d7352b2
10 days ago
by titouanmathis
-0.55%
Fix ScrollService resize and cache invalidation
b8b6cc8
10 days ago
by titouanmathis
+0.53%
Handle missing custom property keyframes in animate
d16c334
10 days ago
by titouanmathis
-0.07%
Keep transform origin reads in animate read phase
9a15506
9 days ago
by titouanmathis
© 2026 CodSpeed Technology
Home Terms Privacy Docs