Skip to content

Instantly share code, notes, and snippets.

@rpetrich
Created June 2, 2018 15:15
Show Gist options
  • Save rpetrich/19e259bfd7fc66c10ce5b339cf895283 to your computer and use it in GitHub Desktop.
Save rpetrich/19e259bfd7fc66c10ce5b339cf895283 to your computer and use it in GitHub Desktop.
Preact componentDidCatch performance

Preact componentDidCatch performance

Environment

  • The benchmark was run on a MacBook (Retina, 12-inch, 2015, 1.1 GHz Intel Core M, 8 GB RAM, macOS Sierra 10.12.6, Chrome 66.0.3359.181 (64-bit))
  • Ran npm run selenium -- --count 10 --framework vanillajs-keyed --framework preact-v8.2.7-keyed --framework preact-componentDidCatch-keyed in the webdriver-ts of this js-framework-benchmarks fork against this commit of the componentDidCatch-support preact branch.

Duration in milliseconds ± standard deviation (Slowdown = Duration / Fastest)

Namevanillajs-keyedpreact-v8.2.7-keyedpreact-componentDidCatch-keyed
create rows
Duration for creating 1000 rows after the page loaded.
195.715.9
(1.0)
282.231.2
(1.4)
271.116.7
(1.4)
replace all rows
Duration for updating all 1000 rows of the table (with 5 warmup iterations).
205.89.8
(1.0)
255.611.9
(1.2)
246.66.0
(1.2)
partial update
Time to update the text of every 10th row (with 5 warmup iterations) for a table with 10k rows.
147.64.4
(1.0)
185.54.2
(1.3)
198.721.6
(1.3)
select row
Duration to highlight a row in response to a click on the row. (with 5 warmup iterations).
9.44.3
(1.0)
7.73.0
(1.0)
9.24.4
(1.0)
swap rows
Time to swap 2 rows on a 1K table. (with 5 warmup iterations).
24.84.9
(1.0)
24.23.4
(1.0)
27.75.2
(1.1)
remove row
Duration to remove a row. (with 5 warmup iterations).
75.24.7
(1.0)
82.45.1
(1.1)
85.48.6
(1.1)
create many rows
Duration to create 10,000 rows
1,984.9119.6
(1.0)
2,836.7115.9
(1.4)
2,838.1120.0
(1.4)
append rows to large table
Duration for adding 1000 rows on a table of 10,000 rows.
400.315.3
(1.0)
494.134.7
(1.2)
481.529.0
(1.2)
clear rows
Duration to clear the table filled with 10.000 rows.
218.715.2
(1.0)
345.817.7
(1.6)
317.311.6
(1.5)
slowdown geometric mean1.001.241.25

Startup metrics

Namevanillajs-keyedpreact-v8.2.7-keyedpreact-componentDidCatch-keyed
consistently interactive
a pessimistic TTI - when the CPU and network are both definitely very idle. (no more CPU tasks over 50ms)
137.86.0
(1.0)
141.47.6
(1.0)
137.53.7
(1.0)
script bootup time
the total ms required to parse/compile/evaluate all the page's scripts
12.55.4
(1.0)
17.74.7
(1.1)
19.05.5
(1.2)
main thread work cost
total amount of time spent doing work on the main thread. includes style/layout/etc.
323.212.4
(1.0)
321.98.8
(1.0)
320.015.9
(1.0)
total byte weight
network transfer cost (post-compression) of all the resources loaded into the page.
165,369.00.0
(1.0)
170,454.00.0
(1.0)
171,039.00.0
(1.0)

Memory allocation in MBs ± standard deviation

Namevanillajs-keyedpreact-v8.2.7-keyedpreact-componentDidCatch-keyed
ready memory
Memory usage after page load.
2.40.1
(1.0)
2.80.2
(1.2)
2.80.2
(1.2)
run memory
Memory usage after adding 1000 rows.
2.90.1
(1.0)
5.70.0
(2.0)
5.70.0
(2.0)
update eatch 10th row for 1k rows (5 cycles)
Memory usage after clicking update every 10th row 5 times
3.00.0
(1.0)
5.80.0
(2.0)
5.80.0
(2.0)
replace 1k rows (5 cycles)
Memory usage after clicking create 1000 rows 5 times
3.20.1
(1.0)
8.50.0
(2.6)
8.60.0
(2.7)
creating/clearing 1k rows (5 cycles)
Memory usage after creating and clearing 1000 rows 5 times
2.90.0
(1.0)
5.80.0
(2.0)
5.90.0
(2.0)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment