I am trying to fine tune telerik .net application and need some expert help.
I used dot trace and yourkit profiler tools to come up with below page load stats. dot trace profiler gives method name, percent of time, actual time and number of calls per GUI event. At this point I am not sure how to read yourkit stats.
I have a transaction screen with 2 drop downs, two buttons and a blank(always) grid that is not attached to any database. Each button displays Ajax grid on click events.
All my grids are populated via database views and handle DML via stored procedures. Hence at any given point they are not attached/bounded to database table. I am not sure if they are bounded via db view or not. I hope not.
Also attached screen shot of web page.
Question
1) DO you see any unwanted methods called in page load event?
2) How to improve page load performance? Any basic things to look at?
IF REQUIRED I CAN GIVE LIVE APPLICATION ACCESS TO INTERESTED CANDIDATES.
STATS FROM DOT TRACE PROFILER TOOL
STATS FROM DOT TRACE PROFILER TOOL |
---------------------------------- |
99.98 % System.Web.Hosting.ISAPIRuntime.ProcessRequest... - 154.74 ms - 1 call |
65.01 % ProcessRequest - 100.62 ms - 1 call - ASP.school_fee_transaction_v1_aspx.ProcessRequest(HttpContext) |
65.01 % System.Web.UI.Page.ProcessRequest... - 100.62 ms - 1 call |
13.37 % FrameworkInitialize - 20.70 ms - 1 call - ASP.default_master.FrameworkInitialize() |
12.88 % RenderPageInAjaxMode - 19.94 ms - 1 call - Telerik.Web.UI.RadAjaxControl.RenderPageInAjaxMode(HtmlTextWriter, Control) |
7.73 % Page_Load - 11.97 ms - 1 call - TelerikComponentsWS.school.fee_transaction_v1.Page_Load(Object, EventArgs) |
7.02 % OnLoad - 10.87 ms - 3 calls - Telerik.Web.UI.RadGrid.OnLoad(EventArgs) |
3.11 % Page_Load - 4.82 ms - 1 call - TelerikComponentsWS.Default.Page_Load(Object, EventArgs) |
1.33 % OnPreRender - 2.06 ms - 9 calls - Telerik.Web.UI.RadWebControl.OnPreRender(EventArgs) |
0.83 % OnPagePreRender - 1.28 ms - 1 call - Telerik.Web.UI.RadAjaxControl.OnPagePreRender(Object, EventArgs) |
0.65 % SaveViewState - 1.01 ms - 3 calls - Telerik.Web.UI.RadGrid.SaveViewState() |
0.56 % TrackViewState - 0.87 ms - 3 calls - Telerik.Web.UI.RadGrid.TrackViewState() |
0.48 % OnPreRender - 0.74 ms - 2 calls - Telerik.Web.UI.RadComboBox.OnPreRender(EventArgs) |
0.46 % OnInit - 0.70 ms - 3 calls - Telerik.Web.UI.RadGrid.OnInit(EventArgs) |
0.34 % ControlPreRender - 0.53 ms - 3 calls - Telerik.Web.UI.RadGrid.ControlPreRender() |
0.26 % SaveViewState - 0.40 ms - 2 calls - Telerik.Web.UI.HierarchicalControlItemContainer.SaveViewState() |
0.20 % GetScriptReferences - 0.31 ms - 9 calls - Telerik.Web.UI.RadWebControl.GetScriptReferences() (from System.Web.UI.IScriptControl) |
0.19 % FrameworkInitialize - 0.30 ms - 1 call - ASP.school_fee_transaction_v1_aspx.FrameworkInitialize() |
0.08 % OnPreRender - 0.13 ms - 1 call - Telerik.Web.UI.RadAjaxLoadingPanel.OnPreRender(EventArgs) |
0.08 % OnPreRender - 0.13 ms - 1 call - Telerik.Web.UI.RadPanelBar.OnPreRender(EventArgs) |
0.08 % OnPreRender - 0.12 ms - 1 call - Telerik.Web.UI.RadTabStrip.OnPreRender(EventArgs) |
0.08 % GetScriptReferences - 0.12 ms - 3 calls - Telerik.Web.UI.RadGrid.GetScriptReferences() |
0.07 % OnPreLoad - 0.12 ms - 1 call - TelerikComponentsWS.Common.Screen.OnPreLoad(EventArgs) |
0.07 % GetScriptReferences - 0.10 ms - 4 calls - Telerik.Web.UI.RadDataBoundControl.GetScriptReferences() (from System.Web.UI.IScriptControl) |
0.05 % get_Visible - 0.08 ms - 100 calls - Telerik.Web.UI.ControlItem.get_Visible() |
0.05 % SaveViewState - 0.08 ms - 2 calls - Telerik.Web.UI.ControlItemContainer.SaveViewState() |
0.04 % OnPagePreRenderComplete - 0.06 ms - 1 call - Telerik.Web.UI.RadAjaxControl.OnPagePreRenderComplete(Object, EventArgs) |
0.03 % CreateChildControls - 0.05 ms - 1 call - Telerik.Web.UI.RadWindowManager.CreateChildControls() |
0.02 % GetScriptReferences - 0.04 ms - 12 calls - Telerik.Web.UI.ProxyScriptControl.GetScriptReferences() |
0.02 % GetScriptReferences - 0.03 ms - 1 call - Telerik.Web.UI.RadAjaxManager.GetScriptReferences() |
0.02 % SaveViewState - 0.03 ms - 21 calls - Telerik.Web.UI.RadComboBoxItem.SaveViewState() |
0.02 % get_Visible - 0.03 ms - 58 calls - Telerik.Web.UI.RadWebControl.get_Visible() |
0.02 % OnPreRender - 0.02 ms - 12 calls - Telerik.Web.UI.ProxyScriptControl.OnPreRender(EventArgs) |
0.02 % GetScriptReferences - 0.02 ms - 1 call - Telerik.Web.UI.RadAjaxLoadingPanel.GetScriptReferences() |
0.01 % CreateChildControls - 0.02 ms - 1 call - Telerik.Web.UI.RadAjaxManager.CreateChildControls() |
6.40 % Create_ASP_school_fee_transaction_v1_aspx - 9.90 ms - 1 call - __ASP.FastObjectFactory_app_web_4t1y1uv0.Create_ASP_school_fee_transaction_v1_aspx() |
6.23 % school_fee_transaction_v1_aspx..ctor - 9.64 ms - 1 call - ASP.school_fee_transaction_v1_aspx..ctor() |
0.17 % ReadStringResource - 0.26 ms - 1 call - System.Web.UI.TemplateControl.ReadStringResource() |
0.00 % set_AppRelativeVirtualPath - 0.00 ms - 1 call - System.Web.UI.TemplateControl.set_AppRelativeVirtualPath(String) |
0.00 % fee_transaction_v1..ctor - 0.00 ms - 1 call - TelerikComponentsWS.school.fee_transaction_v1..ctor() |
0.00 % set_ScriptTimeout - 0.00 ms - 1 call - System.Web.HttpServerUtility.set_ScriptTimeout(Int32) |
0.00 % get_Server - 0.00 ms - 1 call - System.Web.UI.Page.get_Server() |
0.00 % GetWrappedFileDependencies - 0.00 ms - 1 call - System.Web.UI.Page.GetWrappedFileDependencies(String []) |
STATS FROM YOURKIT PROFILER TOOL |
---------------------------------- |
Method Name Time(ms) sample |
System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr, Int32) 703 1 |
ASP.school_fee_transaction_v1_aspx.ProcessRequest(HttpContext) 703 1 |
System.Web.UI.Page.ProcessRequest(HttpContext) 703 1 |
Telerik.Web.UI.RadGrid.SaveViewState() 703 1 |
Telerik.Web.UI.NestedState.SaveViewState(Object) 703 1 |
Telerik.Web.UI.NestedState.GetNestedStateManagerProperties(Object) 703 1 |