Prevent frequently updated components from retaining memory by JoviDeCroock · Pull Request #4907 · preactjs/preact (original) (raw)

@JoviDeCroock

@JoviDeCroock

@github-actions

📊 Tachometer Benchmark Results

Summary

duration

usedJSHeapSize

Results

create10k

duration

Version Avg time vs preact-local vs preact-main
preact-local 967.75ms - 972.15ms - unsure 🔍-0% - +0%-4.64ms - +2.16ms
preact-main 968.60ms - 973.79ms unsure 🔍-0% - +0%-2.16ms - +4.64ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 19.03ms - 19.05ms - unsure 🔍-0% - +0%-0.00ms - +0.02ms
preact-main 19.03ms - 19.03ms unsure 🔍-0% - +0%-0.02ms - +0.00ms -

filter-list

duration

Version Avg time vs preact-local vs preact-main
preact-local 16.48ms - 16.88ms - unsure 🔍-0% - +2%-0.08ms - +0.32ms
preact-main 16.53ms - 16.58ms unsure 🔍-2% - +0%-0.32ms - +0.08ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 1.54ms - 1.54ms - unsure 🔍-0% - +0%-0.00ms - +0.01ms
preact-main 1.54ms - 1.54ms unsure 🔍-0% - +0%-0.01ms - +0.00ms -

hydrate1k

duration

Version Avg time vs preact-local vs preact-main
preact-local 72.02ms - 74.12ms - unsure 🔍-2% - +2%-1.16ms - +1.72ms
preact-main 71.80ms - 73.78ms unsure 🔍-2% - +2%-1.72ms - +1.16ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 6.26ms - 6.85ms - unsure 🔍-6% - +7%-0.39ms - +0.46ms
preact-main 6.22ms - 6.82ms unsure 🔍-7% - +6%-0.46ms - +0.39ms -

many-updates

duration

Version Avg time vs preact-local vs preact-main
preact-local 15.86ms - 16.34ms - unsure 🔍-3% - +1%-0.49ms - +0.15ms
preact-main 16.06ms - 16.49ms unsure 🔍-1% - +3%-0.15ms - +0.49ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 3.72ms - 3.73ms - unsure 🔍-0% - +0%-0.00ms - +0.01ms
preact-main 3.72ms - 3.72ms unsure 🔍-0% - +0%-0.01ms - +0.00ms -

replace1k

duration

Version Avg time vs preact-local vs preact-main
preact-local 59.74ms - 60.74ms - unsure 🔍-2% - +0%-1.48ms - +0.02ms
preact-main 60.41ms - 61.53ms unsure 🔍-0% - +2%-0.02ms - +1.48ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 2.98ms - 3.00ms - unsure 🔍-0% - +0%-0.01ms - +0.01ms
preact-main 2.98ms - 3.00ms unsure 🔍-0% - +0%-0.01ms - +0.01ms -

run-warmup-0

Version Avg time vs preact-local vs preact-main
preact-local 24.21ms - 25.04ms - unsure 🔍-3% - +1%-0.69ms - +0.33ms
preact-main 24.51ms - 25.11ms unsure 🔍-1% - +3%-0.33ms - +0.69ms -

run-warmup-1

Version Avg time vs preact-local vs preact-main
preact-local 31.61ms - 32.34ms - unsure 🔍-2% - +2%-0.58ms - +0.52ms
preact-main 31.60ms - 32.41ms unsure 🔍-2% - +2%-0.52ms - +0.58ms -

run-warmup-2

Version Avg time vs preact-local vs preact-main
preact-local 31.93ms - 32.73ms - unsure 🔍-3% - +1%-0.93ms - +0.30ms
preact-main 32.18ms - 33.12ms unsure 🔍-1% - +3%-0.30ms - +0.93ms -

run-warmup-3

Version Avg time vs preact-local vs preact-main
preact-local 25.05ms - 25.64ms - unsure 🔍-1% - +2%-0.25ms - +0.57ms
preact-main 24.90ms - 25.46ms unsure 🔍-2% - +1%-0.57ms - +0.25ms -

run-warmup-4

Version Avg time vs preact-local vs preact-main
preact-local 23.71ms - 24.73ms - unsure 🔍-3% - +4%-0.65ms - +0.89ms
preact-main 23.52ms - 24.68ms unsure 🔍-4% - +3%-0.89ms - +0.65ms -

run-final

Version Avg time vs preact-local vs preact-main
preact-local 20.58ms - 21.40ms - faster ✔0% - 6%0.05ms - 1.31ms
preact-main 21.20ms - 22.14ms slower ❌0% - 6%0.05ms - 1.31ms -

text-update

duration

Version Avg time vs preact-local vs preact-main
preact-local 2.04ms - 2.24ms - unsure 🔍-8% - +6%-0.17ms - +0.12ms
preact-main 2.05ms - 2.27ms unsure 🔍-6% - +8%-0.12ms - +0.17ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 0.97ms - 1.00ms - unsure 🔍-2% - +1%-0.02ms - +0.01ms
preact-main 0.98ms - 1.00ms unsure 🔍-1% - +2%-0.01ms - +0.02ms -

todo

duration

Version Avg time vs preact-local vs preact-main
preact-local 31.94ms - 32.54ms - unsure 🔍-0% - +2%-0.04ms - +0.66ms
preact-main 31.75ms - 32.12ms unsure 🔍-2% - +0%-0.66ms - +0.04ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 1.25ms - 1.26ms - unsure 🔍-0% - +1%-0.00ms - +0.01ms
preact-main 1.25ms - 1.25ms unsure 🔍-1% - +0%-0.01ms - +0.00ms -

update10th1k

duration

Version Avg time vs preact-local vs preact-main
preact-local 32.91ms - 34.20ms - unsure 🔍-4% - +1%-1.41ms - +0.38ms
preact-main 33.44ms - 34.69ms unsure 🔍-1% - +4%-0.38ms - +1.41ms -

usedJSHeapSize

Version Avg time vs preact-local vs preact-main
preact-local 2.93ms - 2.93ms - unsure 🔍-0% - +0%-0.01ms - +0.00ms
preact-main 2.93ms - 2.94ms unsure 🔍-0% - +0%-0.00ms - +0.01ms -

tachometer-reporter-action v2 for CI

@github-actions

Size Change: +25 B (+0.05%)

Total Size: 47.4 kB

Filename Size Change
dist/preact.js 4.67 kB +9 B (+0.19%)
dist/preact.mjs 4.7 kB +8 B (+0.17%)
dist/preact.umd.js 4.75 kB +8 B (+0.17%)

ℹ️ View Unchanged

Filename Size
compat/dist/compat.js 3.9 kB
compat/dist/compat.mjs 3.82 kB
compat/dist/compat.umd.js 3.95 kB
debug/dist/debug.js 3.9 kB
debug/dist/debug.mjs 3.9 kB
debug/dist/debug.umd.js 3.98 kB
devtools/dist/devtools.js 263 B
devtools/dist/devtools.mjs 273 B
devtools/dist/devtools.umd.js 348 B
hooks/dist/hooks.js 1.53 kB
hooks/dist/hooks.mjs 1.56 kB
hooks/dist/hooks.umd.js 1.6 kB
jsx-runtime/dist/jsxRuntime.js 892 B
jsx-runtime/dist/jsxRuntime.mjs 861 B
jsx-runtime/dist/jsxRuntime.umd.js 966 B
test-utils/dist/testUtils.js 473 B
test-utils/dist/testUtils.mjs 473 B
test-utils/dist/testUtils.umd.js 555 B

compressed-size-action

JoviDeCroock

@JoviDeCroock

@coveralls

Coverage Status

coverage: 99.535%. remained the same
when pulling 3ba61de on fix-mem-leak
into f23272c on main.

rschristian

@korDen

FYI this is fixing partial leak but RouterContent and RouterProvider objects are still leaking (_original: -2 and _original: -1 if that helps)

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})