Skip to main content

Sitecore: Performance debug troubleshooting

There are times when you need to debug your Sitecore codebase and find out what part of the code is taking the most time and troubleshoot page load times. One of the most useful methods is to load the following page (after you have logged into Sitecore)

http://{YourWebsite}/?sc_mode=normal&sc_debug=1&sc_trace=1&sc_prof=1&sc_ri=1&sc_rb=1

sc_mode – don't load the experience editor
sc_debug - turn on the debug mode
sc_trace - turn on Sitecore trace
sc_prof - turn on Sitecore profiler
sc_ri - show rendering information
sc_rb - show rendering borders

Next scroll down to the bottom of your page and you should see something similar to this image


It should show you where the most time is spent. The next step would be to identify the section of your code base that is taking the most time and drill down to more specifics. To find out exactly how long a particular section of code takes, add the following:



You can replace the string "SitecoreingTesting" with anything more relevant to you. Also add multiple of such blocks throughout your code. Next go back to your debug page

http://{YourWebsite}/?sc_mode=normal&sc_debug=1&sc_trace=1&sc_prof=1&sc_ri=1&sc_rb=1

On this page, search for your custom strings like "SitecoreingTesting" and you should see relevant debug and time information that usually is useful to pin point the code that is causing performance issues.

For quick page load time, I found the following chrome extension very useful.
Chrome page load time extension

Hope this helps someone during their performance troubleshooting phase. Good luck!


Comments

Popular posts from this blog

Local setup of a SSL certificate

Creating a local ssl certificate is easy. You can do so by creating a self signed certificate in IIS and assigning that to you local site. However you may notice that with newer TLS 1.2 standard, tools like TDS (Team Development for Sitecore) and others stop working and complain about local certificates with errors like Exception: System.Security.Authentication.AuthenticationException Message: The remote certificate is invalid according to the validation procedure. To fix this issue, these were the steps I followed. Hope this helps others that are facing similar issues. 1. Run the following Powershell command to create a local self signed cert (replace xxx.local.com with your local dns): New-SelfSignedCertificate -CertStoreLocation Cert:\LocalMachine\My -DnsName "xxx.local.com" -FriendlyName "xxx.local.com" -NotAfter (Get-Date).AddYears(10) 2. Win Key + search for "Manage computer certificates". Make sure your certificate is in the following 3

Sitecore clear cache setting

Sitecore has extensive cache settings. You can add caching at the rendering level so it affects all instances of that rendering. Or you can add caching at the component level on a particular page via the presentation details. This is all good when you are setting it up, but once this goes to production, the way caching is supposed to work is that the cache should get cleared after an item is published. So after an item is published, any associated cache should also automatically get updated. In our case, we saw that once we went to production (with extensive caching enabled) our pages loaded much faster. However when the content authors were updating content, the updates were not making it to the delivery servers. The content seemed to be stuck in the cache. We noticed that we had to do one of the following to see the updated cache. Go to the admin cache page [SitecoreSite/sitecore/admin/Cache.aspx] and click the "Clear all" button. This is not viable long term solution

Updating Sitecore Image alt text

One of the most important conditions of making a site accessible is to make sure that all images on the site have the alt field with some value that describes the image. The simplest update we can make to Sitecore is to have the alt field automatically get the image file name. That way even if content authors forget to fill the alt field, it is pre-filled with the file name. To do this just add $name to the alt field in the standard value of an image [/sitecore/templates/System/Media/Unversioned/Image/__Standard Values] This is all good for an future images that gets uploaded to Sitecore. But what about all the existing images. For that we can write a PowerShell script (see below) to get all images in the Sitecore image folder that have empty alt tags. Export that to a csv file. $pathOfImages = "master:/sitecore/media library/MyImages" $images = Get-ChildItem -Path $pathOfImages -Language * -Recurse | Where-Object { ($_.Fields["Alt"] -ne $null) -and ($_.Fields