I am always interested in what happens under the covers when I open Power BI Desktop. So I did a little digging and I got the inspiration from Macro Russo when he did his Webinar as well as presented at the Queensland Power BI User Group on “My Power BI report is slow: what should I do?”
What happens when I click on Power BI Desktop.exe?
This is the list of associated processes that are opened when Power BI Desktop is started, which I will explain what they are below.
This is what it looks like for me when I am running Windows 10 and I have a look in the Task Manager under Processes
- Because Power BI Desktop runs in the Power BI Service, which is essentially a website and all the visuals are rendered in a browser.
- My understanding is that within Power BI Desktop it is simulating how it will run the Power BI Service.
- As per Marco’s Webinar, if this consumes a lot of memory or CPU this is potentially why your Power BI Report is slow.
Console Windows Host
- UPDATE (06 Sep 2018) – I got a reply from Amanda Cofsky from the Microsoft Power BI team, who said that the Console Windows Host is the “Analysis Services Engine Console Output”, which is generally used by the Microsoft Engineers for debugging purposes.
Microsoft Mashup Evaluation Container
- This is the Power Query Engine.
- This is responsible for processing all the steps in the Power Query Editor. Which gets data from my sources, transforms it and then loads it into my data model.
- When I look at a Server where I have got the On-Premise Data Gateway installed I will see a lot of instances of the Microsoft Mashup Evaluation Container running. This is because this is where my data gets loaded and transformed into tables before sending to the Power BI Service.
Microsoft Power BI Desktop
- This is the executable which is the starting point and container for all the processes that are run within Power BI Desktop.
Microsoft SQL Server Analysis Services.
- This is where all the magic happens, it is an analytical data engine which leverages In-Memory technology to achieve incredible compression using the X-Velocity Engine and blazing fast query response times by loading all the data into memory.
- This is where all the data gets loaded from Power Query into the data model.
- This process can have the highest memory usage.
- If I have an expensive DAX measure which must get most of its data from the storage engine I will see an increase in memory utilization and CPU during the evaluation and running of the DAX measure. Which once again as per Marco’s Webinar is a great indicator as to why my Power BI Report is slow.
I hope that this has given you some insights into what runs under the cover in Power BI Desktop and that there are quite a few moving parts that work together seamlessly to make the report creation and development experience so seamless and fast when developing Power BI Reports.
As always if there are any questions or you have more details and insights into the details above, please let me know and I will happily update the details in this blog post.
Thanks for reading!