Open JoviDeCroock opened 2 months ago
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 917.06ms - 925.57ms | - | unsure π -0% - +1% -4.01ms - +6.86ms |
preact-main | 916.50ms - 923.27ms | unsure π -1% - +0% -6.86ms - +4.01ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 25.26ms - 25.26ms | - | unsure π +0% - +0% +0.01ms - +0.01ms |
preact-main | 25.24ms - 25.24ms | unsure π -0% - -0% -0.01ms - -0.01ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 16.55ms - 16.59ms | - | unsure π -0% - -0% -0.08ms - -0.01ms |
preact-main | 16.59ms - 16.65ms | unsure π +0% - +0% +0.01ms - +0.08ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 1.64ms - 1.65ms | - | slower β 1% - 1% 0.01ms - 0.02ms |
preact-main | 1.63ms - 1.63ms | faster β 1% - 1% 0.01ms - 0.02ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 71.69ms - 74.10ms | - | unsure π -0% - +3% -0.22ms - +2.26ms |
preact-main | 71.59ms - 72.16ms | unsure π -3% - +0% -2.26ms - +0.22ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 17.16ms - 17.80ms | - | unsure π -2% - +3% -0.30ms - +0.60ms |
preact-main | 17.02ms - 17.64ms | unsure π -3% - +2% -0.60ms - +0.30ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 16.26ms - 17.11ms | - | unsure π -4% - +3% -0.68ms - +0.52ms |
preact-main | 16.35ms - 17.19ms | unsure π -3% - +4% -0.52ms - +0.68ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 4.56ms - 4.56ms | - | unsure π +0% - +0% +0.01ms - +0.02ms |
preact-main | 4.54ms - 4.55ms | unsure π -0% - -0% -0.02ms - -0.01ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 73.39ms - 75.56ms | - | faster β 0% - 5% 0.13ms - 3.49ms |
preact-main | 75.00ms - 77.57ms | slower β 0% - 5% 0.13ms - 3.49ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 3.55ms - 3.57ms | - | slower β 0% - 1% 0.01ms - 0.02ms |
preact-main | 3.54ms - 3.55ms | faster β 0% - 1% 0.01ms - 0.02ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 29.84ms - 30.62ms | - | unsure π -2% - +2% -0.65ms - +0.64ms |
preact-main | 29.72ms - 30.75ms | unsure π -2% - +2% -0.64ms - +0.65ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 34.45ms - 35.66ms | - | unsure π -3% - +2% -1.12ms - +0.77ms |
preact-main | 34.50ms - 35.96ms | unsure π -2% - +3% -0.77ms - +1.12ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 25.44ms - 25.85ms | - | unsure π -2% - +1% -0.46ms - +0.28ms |
preact-main | 25.43ms - 26.05ms | unsure π -1% - +2% -0.28ms - +0.46ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 28.45ms - 30.25ms | - | unsure π -4% - +4% -1.26ms - +1.15ms |
preact-main | 28.61ms - 30.21ms | unsure π -4% - +4% -1.15ms - +1.26ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 20.25ms - 21.03ms | - | unsure π -2% - +2% -0.46ms - +0.49ms |
preact-main | 20.35ms - 20.89ms | unsure π -2% - +2% -0.49ms - +0.46ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 23.94ms - 25.13ms | - | unsure π -5% - +1% -1.37ms - +0.34ms |
preact-main | 24.44ms - 25.65ms | unsure π -1% - +6% -0.34ms - +1.37ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 1.98ms - 2.12ms | - | unsure π -5% - +5% -0.09ms - +0.09ms |
preact-main | 1.99ms - 2.11ms | unsure π -5% - +5% -0.09ms - +0.09ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 1.09ms - 1.09ms | - | slower β 1% - 1% 0.01ms - 0.01ms |
preact-main | 1.08ms - 1.08ms | faster β 1% - 1% 0.01ms - 0.01ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 35.00ms - 35.40ms | - | slower β 4% - 5% 1.23ms - 1.71ms |
preact-main | 33.60ms - 33.86ms | faster β 4% - 5% 1.23ms - 1.71ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 1.20ms - 1.20ms | - | slower β 1% - 1% 0.01ms - 0.01ms |
preact-main | 1.19ms - 1.19ms | faster β 1% - 1% 0.01ms - 0.01ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 30.33ms - 32.06ms | - | unsure π -3% - +5% -0.88ms - +1.52ms |
preact-main | 30.05ms - 31.71ms | unsure π -5% - +3% -1.52ms - +0.88ms | - |
Version | Avg time | vs preact-local | vs preact-main |
---|---|---|---|
preact-local | 3.50ms - 3.50ms | - | slower β 0% - 1% 0.01ms - 0.02ms |
preact-main | 3.48ms - 3.49ms | faster β 0% - 1% 0.01ms - 0.02ms | - |
Size Change: +824 B (+1.33%)
Total Size: 62.6 kB
Filename | Size | Change |
---|---|---|
dist/preact.js |
4.81 kB | +138 B (+2.96%) |
dist/preact.min.js |
4.83 kB | +136 B (+2.9%) |
dist/preact.min.module.js |
4.83 kB | +136 B (+2.9%) |
dist/preact.min.umd.js |
4.86 kB | +136 B (+2.88%) |
dist/preact.module.js |
4.83 kB | +138 B (+2.94%) |
dist/preact.umd.js |
4.88 kB | +140 B (+2.95%) |
Relates to https://github.com/preactjs/preact/issues/4442 Implementation from https://github.com/preactjs/preact-render-to-string/pull/376
This implements a hydration approach with the comment markers, one thing that's noteworthy is that
oldDom
in ourdiffChildren
algorithm becomes stale.We diff the wrapping element of the Suspense and non-suspenseful child, we get to an oldDom which is the first child-node of said series. When we suspend we don't move oldDom, we can try and move it inside of
diff
but this won't affect the continueddiffChildren
so we are stuck inserting that node in front of our oldDom.This has been solved in https://github.com/preactjs/preact/pull/4444/commits/647d13865b3c9730f17f8ce68644145925a226d7 through correctly skipping comment nodes while placing children.
I think the last part of this research would be to set up a comprehensive test suite for both
renderToStringAsync
as well asrenderToStream
so we can have fixtures for this behaviour, what do you all think?