Unusual Form Load times with Dynamics CRM 2016

Gayan Perera, 21 March 2016

With the new Turbo Forms feature in Dynamics CRM, users should see a huge difference in performance. However, different configurations and optimizations can lead to unusual performance issues. One we’ve seen recently is very slow Form Load times. There are a number of things that can attribute to slow form load times. One common issue that’s overlooked is how the network is configured. Dynamics CRM and SQL can be tuned to hum but if the network configuration is bad you’ll notice the difference!

One thing to check is that the correct response headers are returned in regards to compression. Compression settings can make a big difference. For example, CRM internally makes multiple requests to RibbonLayout.js.aspx based on the number of sub-grids you have on a form. Each request should be between 15-20kB in size when compressed. However, when uncompressed the size balloons to about 200-250kB. If you have 5 sub-grids on a form, more than a megabyte of data travels through the wire!

So, to see if you might be subject to compression issues try the following.

  1. Open up Fiddler and start capturing (if you have SSL or an IFD setup, make sure Fiddler can decrypt traffic)
  2. Open up a CRM 2016 record
  3. Stop the capture and look for a request that contain RibbonLayout.js.aspx
  4. Ensure that the response headers look like the image below

image

The following can be signs of a bad configuration:

  • Missing Vary: Accept-Encoding header
  • Missing Content-Encoding: zip transport header
  • Extra Connection: Keep-Alive header

These are very common with WAN Optimizers such as Riverbed. So please make sure that:

  • Compression stripping is turned off
  • Keep-Alive’s are not being inserted
  • Authentication header stripping is turned off