preact
preact copied to clipboard
[draft] Restructure, VM 2nd Edition
This changes to using stringified style application, which seems to be the main difference between rendering performance in the spiral demo.
📊 Tachometer Benchmark Results
Summary
duration
- 02_replace1k: slower ❌ 5% - 12% (6.39ms - 15.28ms)
preact-local vs preact-master - 02_replace1k: 73.66ms - 75.47ms
- 03_update10th1k_x16: slower ❌ 36% - 45% (39.56ms - 48.86ms)
preact-local vs preact-master - 03_update10th1k_x16: 755.28ms - 777.01ms
- 07_create10k: slower ❌ 7% - 10% (114.54ms - 150.66ms)
preact-local vs preact-master - 07_create10k: 1624.20ms - 1651.62ms
- filter_list: faster ✔ 40% - 43% (77.71ms - 84.23ms)
preact-local vs preact-master - filter_list: 320.13ms - 336.04ms
- many_updates: slower ❌ 151% - 176% (176.99ms - 203.92ms)
preact-local vs preact-master - many_updates: 360.27ms - 391.45ms
- text_update: slower ❌ 10% - 13% (7.37ms - 9.60ms)
preact-local vs preact-master - text_update: 1133.59ms - 1179.13ms
- todo: faster ✔ 11% - 20% (7.16ms - 12.71ms)
preact-local vs preact-master - todo: 37.35ms - 38.16ms
usedJSHeapSize
- 02_replace1k: faster ✔ 3% - 4% (0.12ms - 0.13ms)
preact-local vs preact-master - 02_replace1k: 3.99ms - 4.01ms
- 03_update10th1k_x16: faster ✔ 7% - 8% (0.28ms - 0.29ms)
preact-local vs preact-master - 03_update10th1k_x16: 3.38ms - 3.40ms
- 07_create10k: faster ✔ 20% - 20% (5.35ms - 5.35ms)
preact-local vs preact-master - 07_create10k: 21.95ms - 21.95ms
- filter_list: faster ✔ 14% - 16% (0.25ms - 0.29ms)
preact-local vs preact-master - filter_list: 1.52ms - 1.52ms
- many_updates: faster ✔ 17% - 17% (0.91ms - 0.93ms)
preact-local vs preact-master - many_updates: 4.45ms - 4.45ms
- text_update: faster ✔ 2% - 5% (0.02ms - 0.05ms)
preact-local vs preact-master - text_update: 0.99ms - 1.03ms
- todo: faster ✔ 2% - 6% (0.02ms - 0.07ms)
preact-local vs preact-master - todo: 0.91ms - 0.93ms
Results
02_replace1k
- Browser: chrome-headless 92.0.4515.131
- Sample size: 80
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 121.51ms - 123.81ms | - | faster ✔ 5% - 11% 6.39ms - 15.28ms |
| preact-local | 129.20ms - 137.79ms | slower ❌ 5% - 12% 6.39ms - 15.28ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 3.75ms - 3.76ms | - | slower ❌ 3% - 4% 0.12ms - 0.13ms |
| preact-local | 3.63ms - 3.63ms | faster ✔ 3% - 4% 0.12ms - 0.13ms | - |
run-warmup-0
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 53.61ms - 54.21ms | - | faster ✔ 21% - 22% 14.24ms - 14.97ms |
| preact-local | 68.31ms - 68.72ms | slower ❌ 26% - 28% 14.24ms - 14.97ms | - |
run-warmup-1
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 73.99ms - 74.97ms | - | faster ✔ 14% - 16% 12.65ms - 14.30ms |
| preact-local | 87.29ms - 88.62ms | slower ❌ 17% - 19% 12.65ms - 14.30ms | - |
run-warmup-2
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 64.70ms - 65.59ms | - | faster ✔ 23% - 24% 19.09ms - 20.61ms |
| preact-local | 84.39ms - 85.61ms | slower ❌ 29% - 32% 19.09ms - 20.61ms | - |
run-warmup-3
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 52.78ms - 53.61ms | - | faster ✔ 9% - 21% 4.96ms - 13.90ms |
| preact-local | 58.17ms - 67.08ms | slower ❌ 9% - 26% 4.96ms - 13.90ms | - |
run-warmup-4
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 63.62ms - 64.92ms | - | faster ✔ 9% - 22% 5.79ms - 17.89ms |
| preact-local | 70.10ms - 82.12ms | slower ❌ 9% - 28% 5.79ms - 17.89ms | - |
run-final
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 121.54ms - 123.83ms | - | faster ✔ 5% - 11% 6.39ms - 15.28ms |
| preact-local | 129.22ms - 137.81ms | slower ❌ 5% - 12% 6.39ms - 15.28ms | - |
02_replace1k
- Browser: chrome-headless 93.0.4577.82
- Sample size: 80
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 73.66ms - 75.47ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 3.99ms - 4.01ms | - |
run-warmup-0
| Version | Avg time | vs |
|---|---|---|
| 403.40ms - 412.31ms | - |
run-warmup-1
| Version | Avg time | vs |
|---|---|---|
| 375.07ms - 382.90ms | - |
run-warmup-2
| Version | Avg time | vs |
|---|---|---|
| 401.15ms - 433.04ms | - |
run-warmup-3
| Version | Avg time | vs |
|---|---|---|
| 323.88ms - 342.71ms | - |
run-warmup-4
| Version | Avg time | vs |
|---|---|---|
| 327.57ms - 337.05ms | - |
run-final
| Version | Avg time | vs |
|---|---|---|
| 73.73ms - 75.54ms | - |
03_update10th1k_x16
- Browser: chrome-headless 92.0.4515.131
- Sample size: 50
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 108.13ms - 110.93ms | - | faster ✔ 27% - 31% 39.56ms - 48.86ms |
| preact-local | 149.30ms - 158.17ms | slower ❌ 36% - 45% 39.56ms - 48.86ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 3.72ms - 3.73ms | - | slower ❌ 8% - 9% 0.28ms - 0.29ms |
| preact-local | 3.44ms - 3.44ms | faster ✔ 7% - 8% 0.28ms - 0.29ms | - |
03_update10th1k_x16
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 755.28ms - 777.01ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 3.38ms - 3.40ms | - |
07_create10k
- Browser: chrome-headless 92.0.4515.131
- Sample size: 50
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1564.46ms - 1591.25ms | - | faster ✔ 7% - 9% 114.54ms - 150.66ms |
| preact-local | 1698.34ms - 1722.57ms | slower ❌ 7% - 10% 114.54ms - 150.66ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 27.30ms - 27.30ms | - | slower ❌ 24% - 24% 5.35ms - 5.35ms |
| preact-local | 21.94ms - 21.94ms | faster ✔ 20% - 20% 5.35ms - 5.35ms | - |
07_create10k
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 1624.20ms - 1651.62ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 21.95ms - 21.95ms | - |
filter_list
- Browser: chrome-headless 92.0.4515.131
- Sample size: 50
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 193.03ms - 198.07ms | - | slower ❌ 67% - 74% 77.71ms - 84.23ms |
| preact-local | 112.51ms - 116.65ms | faster ✔ 40% - 43% 77.71ms - 84.23ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1.77ms - 1.80ms | - | slower ❌ 16% - 19% 0.25ms - 0.29ms |
| preact-local | 1.51ms - 1.53ms | faster ✔ 14% - 16% 0.25ms - 0.29ms | - |
filter_list
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 320.13ms - 336.04ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 1.52ms - 1.52ms | - |
many_updates
- Browser: chrome-headless 92.0.4515.131
- Sample size: 50
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 114.44ms - 118.67ms | - | faster ✔ 60% - 64% 176.99ms - 203.92ms |
| preact-local | 293.71ms - 320.30ms | slower ❌ 151% - 176% 176.99ms - 203.92ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 5.36ms - 5.38ms | - | slower ❌ 21% - 21% 0.91ms - 0.93ms |
| preact-local | 4.44ms - 4.45ms | faster ✔ 17% - 17% 0.91ms - 0.93ms | - |
many_updates
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 360.27ms - 391.45ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 4.45ms - 4.45ms | - |
text_update
- Browser: chrome-headless 92.0.4515.131
- Sample size: 160
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 71.64ms - 73.29ms | - | faster ✔ 9% - 12% 7.37ms - 9.60ms |
| preact-local | 80.20ms - 81.70ms | slower ❌ 10% - 13% 7.37ms - 9.60ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1.00ms - 1.02ms | - | slower ❌ 3% - 5% 0.02ms - 0.05ms |
| preact-local | 0.98ms - 0.98ms | faster ✔ 2% - 5% 0.02ms - 0.05ms | - |
text_update
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 1133.59ms - 1179.13ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 0.99ms - 1.03ms | - |
todo
- Browser: chrome-headless 92.0.4515.131
- Sample size: 100
- Built by: Benchmarks #437
-
Commit: db0aa90
duration
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 63.28ms - 64.42ms | - | slower ❌ 12% - 24% 7.16ms - 12.71ms |
| preact-local | 51.20ms - 56.63ms | faster ✔ 11% - 20% 7.16ms - 12.71ms | - |
usedJSHeapSize
| Version | Avg time | vs preact-master | vs preact-local |
|---|---|---|---|
| preact-master | 1.02ms - 1.05ms | - | slower ❌ 2% - 7% 0.02ms - 0.07ms |
| preact-local | 0.98ms - 1.01ms | faster ✔ 2% - 6% 0.02ms - 0.07ms | - |
todo
- Browser: chrome-headless 93.0.4577.82
- Sample size: 50
- Built by: Benchmarks #456
-
Commit: 48e71f3
duration
| Version | Avg time | vs |
|---|---|---|
| 37.35ms - 38.16ms | - |
usedJSHeapSize
| Version | Avg time | vs |
|---|---|---|
| 0.91ms - 0.93ms | - |
Size Change: +370 B (1%)
Total Size: 32 kB
| Filename | Size | Change | |
|---|---|---|---|
compat/dist/compat.js |
3.52 kB | +21 B (0%) | |
compat/dist/compat.umd.js |
3.59 kB | +20 B (0%) | |
debug/dist/debug.js |
3.21 kB | +15 B (0%) | |
debug/dist/debug.umd.js |
3.31 kB | +15 B (0%) | |
dist/preact.js |
4.54 kB | +107 B (2%) | |
dist/preact.min.js |
4.57 kB | +97 B (2%) | |
dist/preact.umd.js |
4.6 kB | +80 B (1%) | |
hooks/dist/hooks.js |
1.16 kB | +10 B (0%) | |
hooks/dist/hooks.umd.js |
1.24 kB | +8 B (0%) | |
jsx-runtime/dist/jsxRuntime.js |
340 B | -2 B (0%) | |
jsx-runtime/dist/jsxRuntime.umd.js |
424 B | -1 B |
ℹ️ View Unchanged
| Filename | Size | Change | |
|---|---|---|---|
devtools/dist/devtools.js |
232 B | 0 B | |
devtools/dist/devtools.umd.js |
316 B | 0 B | |
test-utils/dist/testUtils.js |
431 B | 0 B | |
test-utils/dist/testUtils.umd.js |
516 B | 0 B |