Issue:

PerformancePoint dashboards are slow to load for users in the morning or after a server reboot or automatic IIS application pool recycle.

 

Cause:

Modern server side software is complex and can have many dependencies that need to be loaded into memory and have their initialization ran.  All of this takes time and can cause for poor performance for the very first user hitting a specific set of functionality.

 

Workaround:

[Warning: This is a “sample” solution, source code provided.  Neither Microsoft nor I offer any guarantees and or warrantees for this software program.  All risk and liability is assumed by the user of this sample.]

This blog post contains a tool (and full source code) that will simply load a web page with a hidden IE browser.  The browser is essential because most PerformancePoint content is loaded by JScript code that can make many round trips to the server.  Simply sending a HTTP GET to the URL is not going to force the loading desired.

Steps to deploy the workaround:

  1. Find a Windows server that can ping your PerformancePoint dashboard
  2. Download and unzip the attached PPSWarmUp.zip
  3. Copy the PPSWarmUp.exe and URLsToWarm.txt to the server
  4. Edit the URLsToWarm.txt file, put a single URL on each line that you want warmed up.
  5. Create a scheduled task with Windows Task Scheduler, make sure to put credentials that have access to the SharePoint site.  I would not recommend having the schedule run too often, around every 10 minutes may be about right.  Adjust as needed.

You can run the program by itself first, it starts, loads the pages then closes.  There is a 12 second delay between page loads to ensure the JavaScript has enough time to run.