Skip to content
timker edited this page Sep 20, 2013 · 16 revisions

Conclusion

  • angular is by far the biggest bottleneck, remove and replace with... handlebars?

  • polymer is a bit too slow, and too alpha right now(page blink), maybe vulcan can get us what we want

  • remove jquery from shared, and try to remove it from main

  • make the site appear to load faster by showing a small ui first, then frame work, then data templating

  • research compiled handlebartempates

  • reseach fastest templating engine

  • test the speed of the content script as binding/bootstrapping other services may have an effect

  • research handlerbars, mostache, dust even parrot for start up time

*how are we going to keep the shadow root when we are rendering from a template

*work on automated testing/jsperf. chrome extension api that allows pages to talk to extension. yeoman, https://github.com/broofa/jslitmus

X jquery-2.0.3.js (All) angular polymer
slashdot 397 5006
basic 426 326
iFrame 308 220
Notes: injection seems to be queued, (at least for js)

Angular shows a hugh increase on bigger sites Bootstrapping in content.js also causes large load polymer causes screen ficker

X basic iframe slashdot gmail
css 2 2 4 3
Jquery (allFrames) 56 221 412 532
shared (allFrames) 16 53 199 145
angular 270 445 5126 64896
poly 261 425 913 X
dust 14 X 14 14
handle 14 X 50 50
bas
InjectCss: 13.000ms eventPage.js:20
InjectJ: 138.000ms eventPage.js:24
InjectShared: 18.000ms eventPage.js:27
InjectPoly: 373.000ms eventPage.js:30
InjectAnj: 396.000ms eventPage.js:33
InjectCS: 59.000ms eventPage.js:37
InjectAll: 1175.000ms

bs InjectCss: 2.000ms eventPage.js:20 InjectJ: 56.000ms eventPage.js:24 InjectShared: 16.000ms eventPage.js:27 InjectPoly: 261.000ms eventPage.js:30 InjectAnj: 270.000ms eventPage.js:33 InjectCS: 29.000ms eventPage.js:37 InjectAll: 765.000ms

iframe InjectCss: 2.000ms eventPage.js:20 InjectJ: 221.000ms eventPage.js:24 InjectShared: 53.000ms eventPage.js:27 InjectPoly: 421.000ms eventPage.js:30 InjectAnj: 474.000ms eventPage.js:33 InjectCS: 40.000ms eventPage.js:37 InjectAll: 1409.000ms

iframe InjectCss: 2.000ms eventPage.js:20 InjectJ: 207.000ms eventPage.js:24 InjectShared: 37.000ms eventPage.js:27 InjectPoly: 425.000ms eventPage.js:30 InjectAnj: 445.000ms eventPage.js:33 InjectCS: 64.000ms eventPage.js:37 InjectAll: 1418.000ms

sl InjectCss: 4.000ms eventPage.js:20 InjectJ: 412.000ms eventPage.js:24 InjectShared: 100.000ms eventPage.js:27 InjectPoly: 913.000ms eventPage.js:30 InjectAnj: 5126.000ms eventPage.js:33 InjectCS: 171.000ms eventPage.js:37 InjectAll: 6915.000ms

sl InjectCss: 4.000ms eventPage.js:20 InjectJ: 433.000ms eventPage.js:24 InjectShared: 89.000ms eventPage.js:27 InjectPoly: 953.000ms eventPage.js:30 InjectAnj: 5119.000ms eventPage.js:33 InjectCS: 185.000ms eventPage.js:37 InjectAll: 6889.000ms

Clone this wiki locally