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

Create Object XML while Debugging in VS

 There are times when you put breakpoints in Visual studio and read object values within Visual Studio. This is all good if you are doing some debugging. But if you want to save an object like a Json object in Visual studio there isn't a straightforward way to do that. I found this piece of code that I copied and pasted in the Immediate Window in Visual Studio and was able to save the object as an XML file. (new System.Xml.Serialization.XmlSerializer(YourObject.GetType())).Serialize(new System.IO.StreamWriter(@"c:\tmp\YourObject.xml"), YourObject) Happy Sitecoreing!

Sitecore: Get list of logged in users

I had a deployment today and wanted to find a list of users who were logged into the Sitecore admin site. This was mainly so that I can contact them and let them know that a deployment was going to happen. I found the following link very useful as it gave me exactly what I was looking for. A list of users that were logged in and I contacted them. It also has the ability to Kick off users! http://{YourWebsite}/sitecore/client/Applications/LicenseOptions/KickUser Note: You can only see other users in this list if you have the right administrator permission. Logging in with a lower access level user only gave me the logged in user and no one else on the list.

GlassMapper

 How GlassMapper works  Glass Mapper is an object relational mapping (ORM) tool in Sitecore. It maps Sitecore items to strongly-typed classes. This makes it simple to access Sitecore data within C# code. Without an ORM, Sitecore developers would need to write and manage a lot of mapping code.  Below are example files that you can use. You have an interface class file, a class file that implements the interface and lastly you can use this in your cshtml file.  That's it. Happy Sitecoreing! IMySitecoreItemName class file namespace Your.NameSpace { [SitecoreType(TemplateId = Templates.MyTemplate.IdString, AutoMap = true)] public interface IMySitecoreItemName : IMySitecoreModel { [SitecoreField(FieldId = Templates.MySitecoreItem.Fields.MyField1)] string StringFieldName { get; set; } [SitecoreField(FieldId = Templates.MySitecoreItem.Fields.MyField2)] bool BoolFieldName { get; set; } } } Use it on your .cs file ...