Testing Performance Of Power BI Reports In The Browser, Part 3

In part 1 of this series I talked about why you might want to test the performance of your Power BI report in the browser; in part 2 I showed how you could test report performance in the browser; and in this blog post I’ll walk through an example of a report that is slow and show how to find out what the problem is.

Let’s say you are building reports for a chain of fast food restaurants and you have just created a new one showing sales of your products. It consists of one page with one rather smart-looking column chart visual on it:

image

Performance Analyzer in Power BI Desktop shows that the report is nice and fast:

image

…so you go ahead and publish. You view the report after publishing and it still seems fast. Then the complaints start coming in: the report is slow!?! It seems to be users who are viewing the report on their phone who are having the most problems. So, following the instructions in my last post, you open up Chrome DevTools and run an audit using a simulated slow 4G connection:

image

You get the following results:

image

They look pretty awful – 30.5 seconds for the report to render! Scrolling down on the audit results you also see the likely cause:

image

A large network payload, with the number one culprit a large jpg? So next you go to the Network tab and do a hard refresh of the report, disabling the cache and simulating a fast 3G connection:

image

Here’s what the report render looks like:

SlowReportRefresh

As you can see, it not only takes over 30 seconds to render the report, but worst of all the column chart is only visible right at the end. The waterfall shows something is being downloaded that is 1.2MB in size and that this takes 7.23 seconds:

image

Hovering over this request displays a tooltip that gives the full filename which, again, is a jpg file. The only image on the report is the background image used in the column chart and it turns out it is 1.2MB in size:

image

So it’s the background image used in the column chart that is the main problem! You remove the background image from the visual:

image

…and as expected, when you re-run the audit using the same settings as before the report renders seven seconds faster, taking 23.4 seconds:

image

Still not great, I know, but remember this is worst-case performance: not only does the audit recreate slow network and hardware, but it also recreates a cold cache – something your users will rarely encounter.

Hopefully this fairly simple example shows how useful the tools and techniques shown in the first two parts of this series are for troubleshooting certain types of report performance problem. It also goes to show how important it is to make sure any images you use in your report are as small as possible – something that, in my experience, many Power BI developers don’t always do.

5 thoughts on “Testing Performance Of Power BI Reports In The Browser, Part 3

  1. I also suggest people to also use the Firefox DevTools, it has notably a very good Network simulation, Performance analysis, and Storage to analysis what’s stored on the browser memory.

    Another great tool I’m using more and more: Accessibility. it needs to be enable, because it’s “heavy” but it’s the best tool for accessibility check; i.e. checking colour contrast, labelling, etc.

Leave a Reply