Skip to content

Chunk deferred runtime and terminal modules in Web IDE

Paul Slaughter requested to merge ps-ide-defer-loading-terminal-modules into master

What does this MR do?

This MR:

  1. Reverts async importing all the deferred things in ide.vue since some of these are really small or are already included in the main bundle.
  2. Only async imports the components that are really not needed until runtime in one ide_runtime chunk.
  3. Adds an async import to the terminal session component which generates a big chunk (see relevant note).

Network activity on /-/ide/project/flightjs/flight/tree/master

What? Before (on master) After (this MR)
JS / All requests 19 / 43 17 / 40
JS / All transferred 40.5 MB / 43.5 MB 39.5 MB / 42.5 MB

Network activity on /-/ide/project/flightjs/flight/tree/master/-/ADOPTERS.md/

What? Before (on master) After (this MR)
JS / All requests 21 / 50 18 / 47
JS / All transferred 40.6 MB / 45.0 MB 39.6 MB / 43.8 MB

Waterfall

Before (on master) After (this MR)
master_waterfall MR_waterfall

Big takeaway from Waterfall

You'll notice that the pages.ide.chunk.js bundle is not always the bottleneck to kicking things off. The most significant bottleneck is the monaco.chunk.js. This means that if we move too much from pages.ide.chunk we could end up shooting ourselves in the foot because we'd end up loading these things after monaco.chunk.js is loaded rather than during.

Screenshots (strongly suggested)

Terminal still loads 🎉 In a separate chunk 🎉
Screen_Shot_2020-11-17_at_1.56.46_PM Screen_Shot_2020-11-17_at_1.57.33_PM

Does this MR meet the acceptance criteria?

Conformity

Edited by Paul Slaughter

Merge request reports