How may I reduce the load time of a page with numerous embedded objects?
Asked by Nour Mokdad:

I have a page with numerous embedded Draw.io diagrams that takes a little over one minute to fully load. I am specifically using Draw.io because I want to be able to layer colour swatches with interactive text that allows users to right-click and copy, like in a PDF. Because Confluence limits the number of colours that may be used within internal features, I've relied on external applications to achieve this, which in this case was Draw.io. It works exactly as I had intended, but the load time makes this page more tedious to access than useful.

I understand that the number of embedded objects directly relates to the load time of the page, but does there exist another application that would allow me to achieve this more efficiently, or is there a way to speed this up?


Answers:
author: David Benson _draw_io_
body: Third-party apps, like draw.io, are loaded in iFrames, which means there's no caching between each iFrame.

draw.io diagrams are saved as page attachments. Try copying the page and replace the drawio macros with the PNGs that are also created as page attachments, does that speed things up?


author: Nic Brough -Adaptavist-
body: Welcome to the Community!

There are broadly three places you can look for improving page loads in Confluence.

1. The first, and most powerful, is simplification.

Exactly as you say, "the number of embedded objects directly relates to the load time". You simply cannot improve this with applications inside the system - someone asking for a page is asking for the content to be delivered, and that means calling all the stuff to read the objects to deliver it, and then, when being rendered, all the complexity you might put in a page needs to be dealt with by the browser.

If a page is as slow as a minute to load, you're got way too much going on. Simplify it. Split the page up. Strip out extraneous "clever" stuff you have added. Do your users really need it to be that pretty? Could you simplify it? And explain to your people that "this page is not as pretty as you want, but because it's just... got... so... much... on it, it doesn't work well with the pretty".

2. The server might be slow

We could talk about the server characteristics (memory, disk type/speed, database connections, cpu, caching in the application, etc), but you said "Cloud" so you can't do anything about those, you've got "software as a service"

3. The network might be slow

If you're using a system that's geographically close to you, then check your network settings and that you've got a half-way decent connection to that area. Again, as you've said Cloud, there's not much you can do, but if you are actually on Server/DC, then external caching can be a real help - I've got two clients who managed a 99% reduction in "it's slow" complaints by enabling a CDN for their Confluence DC system.

comments: author: Lukas Angst
body: For the first point, isnt this the idea of confluence?  
So you can add page properties reports, add diagrams that describe a function and all this fancy stuff?  
Otherwise i could use a text editor as well.  
We have the same problem with draw io  
Would it help, if all the different draw io objects were from one draw io file and i would be just embedding the different draw io pages in the confluence page?  
Would the resolution of the draw io object make a difference?  

On the other hand, the solution to split the page is working fine.


author: Nic Brough -Adaptavist-
body: Confluence is intended to be used as a wiki, not a data dump of huge amounts of information people will probably never wade through to find what they're looking for.

Yes, it has a lot of prettified functions, but the target audience is mostly people who want specific highly-focussed information and are unlikely to read a page that they have to scroll down more than a couple of times.

You'll have the same problem with a text-editor generated page - put too much stuff on it, and it's going to render slower. And you don't get the diagrams, macros, fancy formatting and so on without having to encode it all manually. It would be slightly quicker to render if you wrote plain HTML (Confluence has to generate it when someone asks for a page), but the volume would still defeat you, and writing HTML manually is slow and error prone, even in HTML editors

I don't know about draw.io using a single diagram - I don't know if Confluence is set up to cache them.


author: Lukas Angst
body: Ok, good point  
I think less information will work wonders.  
Thanks for your answer


author: Florian PEREZ
body: The better way to optimize this should be to split the page in smaller part in multiple pages.

You can also try to increase the ram allowed to confluence it can help.

I think there also a possibilit? of increase the value of the cache. I remember seeing this in a confluence KB somewhere but I can't find it anymore!

Hope this help!


Tags: cloud

confluence-cloud