Uploaded image for project: 'Jenkins'
  1. Jenkins
  2. JENKINS-40933

Optimize cold load time by concatinating common JS files

    XMLWordPrintable

    Details

    • Similar Issues:
    • Epic Link:

      Description

      Just like JENKINS-40932 we want to combine some files together to improve the browsers parallelise requests (we do too many requests - see the Waterfall report).

      These JS files should be concatinated into a single resource and served to the browser together:

      • react-router
      • react-redux
      • reselect
      • keymirror
      • redux-thunk
      • immutable

      This awesome tool provides some insight into what can be optimised (page speed + yslow + waterfall):

      https://gtmetrix.com/reports/ci.blueocean.io/ijzy6djd
      You can see from this, having fewer http requests wil allow the browser to do less "waterfall loading".

      Once we have this, we can revaluate on hi and low latency connections (low latency things are much worse than that tool shows, about 10x slower for cold load).

        Attachments

        1. mr.jpg
          27 kB
          Michael Neale
        2. Screenshot 2017-01-11 12.19.04.png
          21 kB
          Tom FENNELLY

          Issue Links

            Activity

            Hide
            michaelneale Michael Neale added a comment -

            Yoann Dubreuil if we could try it on some server, it would be worth it as cold is exactly the case we want ot optimise for right now.

            Show
            michaelneale Michael Neale added a comment - Yoann Dubreuil if we could try it on some server, it would be worth it as cold is exactly the case we want ot optimise for right now.
            Hide
            tfennelly Tom FENNELLY added a comment - - edited

            how do we know without trying to combine the react stuff as mentioned here

            We have tried it before (see below). I suppose I'm just not too gone on fundamental build changes for what really seems to be an edge edge case. How many production setups run Jenkins on one side of the world and expect cold loading to be fast on a browser on the other side of the world? That's not a realistic OOTB use case imo, unless someone can show me otherwise.

            is it not possible?

            It is possible. We had it that way before and moved to splitting it out to see if async loading would help and it did seem to at the time.

            Show
            tfennelly Tom FENNELLY added a comment - - edited how do we know without trying to combine the react stuff as mentioned here We have tried it before (see below). I suppose I'm just not too gone on fundamental build changes for what really seems to be an edge edge case. How many production setups run Jenkins on one side of the world and expect cold loading to be fast on a browser on the other side of the world? That's not a realistic OOTB use case imo, unless someone can show me otherwise. is it not possible? It is possible. We had it that way before and moved to splitting it out to see if async loading would help and it did seem to at the time.
            Hide
            michaelneale Michael Neale added a comment -

            Tom FENNELLY ack, yes I recall. Well I think I might close this. Do you have other things you would like to try that could help trim things in future?

            Show
            michaelneale Michael Neale added a comment - Tom FENNELLY ack, yes I recall. Well I think I might close this. Do you have other things you would like to try that could help trim things in future?
            Hide
            tfennelly Tom FENNELLY added a comment -

            There was some work I was doing on bundling some time ago (that we parked) around making them "more accurate" in terms of what should be in them. I know that sounds vague (and I can explain more if you don't find it too boring - bundling is not all that exciting), but the upshot in terms of bundle sizes is expected to be varied in that some bundles will get slimmer (removal of modules that should not be in there) and some may get a bit heavier (addition of some modules that should be in there). All post 1.0 as it's not biting us atm.

            Show
            tfennelly Tom FENNELLY added a comment - There was some work I was doing on bundling some time ago (that we parked) around making them "more accurate" in terms of what should be in them. I know that sounds vague (and I can explain more if you don't find it too boring - bundling is not all that exciting), but the upshot in terms of bundle sizes is expected to be varied in that some bundles will get slimmer (removal of modules that should not be in there) and some may get a bit heavier (addition of some modules that should be in there). All post 1.0 as it's not biting us atm.
            Hide
            michaelneale Michael Neale added a comment -

            SGTM

            Show
            michaelneale Michael Neale added a comment - SGTM

              People

              Assignee:
              Unassigned Unassigned
              Reporter:
              jamesdumay James Dumay
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Dates

                Created:
                Updated: