Hi,
I am profiling .NET web applications by injecting my helper functions calls only to public methods and classes.
I am getting a reasonable log for .Net applications without MVC as below
System.Web.UI.Page:ProcessRequest 1321 1(padding size) System.Web.UI.HiddenFieldPageStatePersister:Load 63 2 System.Web.UI.WebControls.AutoFieldsGenerator:GenerateFields 71 2 System.Web.UI.ClientScriptManager:ValidateEvent 24 2 System.Data.SqlClient.SqlConnection:Open 353 2 System.Data.SqlClient.SqlCommand:ExecuteReader 53 2 System.Web.UI.WebControls.GridView:DataBind 123 2 System.Web.UI.WebControls.BaseDataBoundControl:DataBind 123 3 System.Web.UI.DataSourceView:Select 120 4 System.Web.UI.WebControls.AutoFieldsGenerator:GenerateFields 71 5 System.Web.UI.WebControls.GridViewColumnsGenerator:CreateAutoGeneratedFields 67 6 System.Data.SqlClient.SqlConnection:Close 14 2 System.Web.UI.HiddenFieldPageStatePersister:Save 17 2 System.Web.UI.HtmlControls.HtmlForm:RenderControl 106 3 System.Web.UI.WebControls.Table:RenderBeginTag 20 7 System.Web.UI.WebControls.TableStyle:AddAttributesToRender 15 9 System.Web.UI.WebControls.Style:AddAttributesToRender 11 10
Note: The second number at each line is padding size and first number in each line is milli seconds.
But for MVC application that uses Entity framework , the log I m getting is
System.Web.Mvc.ControllerActionInvoker:InvokeAction 22708 1 System.Web.Mvc.ModelBinderDictionary:GetBinder 12 2 System.Web.Mvc.ModelBinderDictionary:GetBinder 12 3 System.Web.Mvc.ValueProviderFactoryCollection:GetValueProvider 32 2 System.Web.Mvc.FormValueProviderFactory:GetValueProvider 10 3 System.Web.Mvc.DefaultModelBinder:BindModel 17 2 System.Web.Mvc.ReflectedActionDescriptor:Execute 39 2 MvcMusicStore.Controllers.StoreController:Browse 12781 3 System.Data.Entity.Infrastructure.DbQuery`1:Include 10995 4 System.Data.Common.DbProviderFactoriesConfigurationHandler:Create 152 7 System.Data.Entity.DbModelBuilder:Build 1744 6 System.Data.Common.DbProviderServices:GetProviderManifest 631 7 System.Xml.Schema.XmlSchema:Read 417 8 System.Xml.Schema.XmlSchemaSet:Compile 213 8 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 ...
....<many System.Linq.Enumerable:Single 157 7 > ... ... ... System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Xml.Schema.XmlSchema:Read 417 7 System.Xml.Schema.XmlSchema:Read 417 7 System.Xml.Schema.XmlSchema:Read 417 7 System.Xml.Schema.XmlSchemaSet:Compile 213 8 System.Linq.Enumerable:Single 157 7 System.Linq.Enumerable:Single 157 7 System.Data.Entity.CreateDatabaseIfNotExists`1:InitializeDatabase 2946 6 System.Linq.Queryable:OrderByDescending 18 7 System.Linq.Queryable:FirstOrDefault 2836 7 System.Data.Common.CommandTrees.DbSortExpression:Accept 869 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 9 System.Linq.Enumerable:Single 157 9 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 9 System.Linq.Enumerable:Single 157 9 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 9 System.Linq.Enumerable:Single 157 10 System.Linq.Enumerable:Single 157 10 System.Data.Common.CommandTrees.DbSortExpression:Accept 869 12 System.Linq.Queryable:Single 1777 5 System.Linq.Enumerable:Single 157 6 System.Data.Common.CommandTrees.DbSortExpression:Accept 869 10 System.Data.Common.CommandTrees.DbJoinExpression:Accept 22 12 System.Data.Common.CommandTrees.DbCaseExpression:Accept 844 12 System.Data.Common.CommandTrees.DbNullExpression:Accept 837 13 System.Web.Mvc.ViewResultBase:ExecuteResult 22669 3 System.Web.Mvc.ViewEngineCollection:FindView 40 4 System.Web.Mvc.VirtualPathProviderViewEngine:FindView 17 5 System.Web.Mvc.VirtualPathProviderViewEngine:FindView 17 5 System.Web.Mvc.VirtualPathProviderViewEngine:FindView 17 5 System.Web.Mvc.VirtualPathProviderViewEngine:FindView 17 5 System.Web.Caching.AggregateCacheDependency:Add 36 6 System.Web.Mvc.BuildManagerCompiledView:Render 7838 4 System.Web.Compilation.BuildManager:GetCompiledType 72 5 System.Web.Mvc.WebViewPage`1:InitHelpers 259 5 System.Web.Mvc.WebViewPage:InitHelpers 148 6 System.Web.WebPages.StartPage:GetStartPage 19 5 System.Web.Caching.AggregateCacheDependency:Add 36 6 System.Web.WebPages.WebPageBase:ExecutePageHierarchy 7401 5 System.Web.WebPages.WebPageBase:PushContext 108 6 System.Web.WebPages.StartPage:ExecutePageHierarchy 519 6 System.Web.WebPages.StartPage:RunPage 515 7 System.Web.Mvc.WebViewPage:ExecutePageHierarchy 7212 8 System.Web.WebPages.WebPageBase:ExecutePageHierarchy 7212 9 System.Web.HttpRequestWrapper:MapPath 141 10 System.Web.HttpRequest:MapPath 141 11 ASP._Page_Views_Store_Browse_cshtml:Execute 506 10 Microsoft.CSharp.RuntimeBinder.Binder:SetMember 107 11 System.Dynamic.DynamicMetaObjectBinder:Bind 210 11 System.Dynamic.SetMemberBinder:Bind 175 12 System.Web.Mvc.UrlHelper:GenerateUrl 688 12 System.Web.Mvc.RouteCollectionExtensions:GetVirtualPathForArea 578 13 System.Web.Routing.RouteCollection:GetVirtualPath 467 14 System.Web.Routing.RouteCollection:GetReadLock 35 15 System.Web.Routing.Route:GetVirtualPath 362 15 System.Web.Routing.RouteValueDictionary:Add 35 16
Here it seems that the log is improper, since there are more "System.Linq.Enumerable:Single 157 7" prints.
So what is the reason for the logs like above..? is it because of asynchronous calls in MVC..? So that how to get rid of all those asynchronous calls .?
And also It would be helpful to know what are the attributes needed to be filtered from profiling.