While I was investigating a duplication of stylesheets by a custom theme, I came back to the question of why there is so much redundant code in the main page.
Moving these to one of the other resource files would provide a massive performance boost.
Currently every page I visit has to re-download and parse all of this code before it can start rendering the page. No wonder the page loads still seem very slow even with Akamai.
Imagine if this was cacheable!
For example, when I visit the first page it downloads 450kb in total. The subsequent 9 pages would require only 100kb each page for a total of 1350kb.
In it's current form I'm downloading a total of 3.5MB! (I know that http compression reduces the actual size, but you are still talking 90kb per page instead of 16kb)
I really think this would make the pages load a lot snappier - especially on slow browsers and connections, but think of the bandwidth savings. I imagine the processor utilisation would drop significantly as the web servers stop having to compress and send out such huge page files for every request.
If all this extra code was loaded on another connection, the page will return and start drawing itself much more quickly!
I can't even imagine what the ROI for this fix would be given the amount of traffic Jive serves.
You could reduce page sizes to a third, and probably at least double the amount of page transactions the servers could support.
If it was me, I'd make this above an S0 priority to fix.
I'm being selfish really, I'd just love the Jive community (and ours) to respond faster than a few seconds for most pages.
Some details from my analysis:
Does this need to be in the main page? 4.8k saving
if(typeof(tinyMCE) != "undefined"
Next there are a load of jive.rte.macros.push commands, could be another 10kb saving.
Then there are a few massive blocks totalling about 350kb - relating to jive.i18n.addMsgs
Also why is the onbaording.css file loaded on every page, it's only used in the getting started guide.
It would really be prudent to try and consolidate all the css files as well...!
I did some further testing, saving off the overview page, and loading it up to the server as html, one with the code inline, and one with the code saved out to a jive-tes-js.js file.
Test 1 - All in-line code:
You can see in this case it was 341ms for the file to load.
Test 2 - js as separate file which can be cached:
You can see the significant difference in download time, and size. The key thing here, is now all subsequent files are also much smaller and can re-use the same js.
I have been using Jive since version 2.5 and I have to say that each major version has become a step change worse in performance and page size. A look at the latest page structure would give even an amateur performance analyst a heart attack. I really hope that something can be done to improve it.
To me it's a no-brainer, with a small amount of clever work you could dramatically improve performance across the board. It seems crazy to pay a fortune for Akamai when the issues can be fixed so easily.