Did you ever wish you could monitor how your application code performs at real time? We have produced a sample and a video that can help you get started with C/AL tracing and application performance profiling.
Get the Microsoft Dynamics NAV Application Profiler here, http://go.microsoft.com/fwlink/?LinkId=403898, and watch the video on how to install, configure and use this tool to enable C/AL code tracing and determine application performance during code execution here, http://go.microsoft.com/fwlink/?LinkId=403897.
David Worthington and Dmytro Sitnik from the Dynamics NAV team
Format: ???Duration: 7:00
Nice tool, thank you!
I was always missing the good old Client Monitor but this is far much better.
And because it's possible to start from C/AL code I image some unattended use for example : measure the performance for every posting and if the time exceeds the predefined time / the performance is bad, you can send the trace log to the developer automatically.
Good idea about measuring the performance for every posting and sending trace log to the developer.
To implement that you will need to change .Net assembly code. It is definitely doable. Join the CodePlex project!
Is there a possibility to use the tool with NAV2013 (before R2)?
Maybe Youtube next time? :)
Trying the NAV Application Profiler
The server throws following error when posting from the client.
Server instance: NAV2013R2_DEV
Index and length must refer to a location within the string.
Parameter name: length
at System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy)
at Microsoft.Dynamics.Nav.Runtime.SourceContextInfo.GetStatement(SourceSpan sourceSpan)
at Microsoft.Dynamics.Nav.Runtime.SourceContextInfo.AddOrUpdateLineNumberAndStatement(Int32 scopeId, Int32 statementNumber, SourceSpan sourceSpan)
at Microsoft.Dynamics.Nav.Runtime.ALCodeEnvironment.GetLineNumberAndStatement(NavMethodScope methodScope)
at Microsoft.Dynamics.Nav.Runtime.ALFunctionTracingExecutionListener.Microsoft.Dynamics.Nav.Runtime.IExecutionListener.ProcessStatementHit(NavMethodScope methodScope)
at Microsoft.Dynamics.Nav.Runtime.ExecutionListener.CompoundExecutionListener.ProcessStatementHit(NavMethodScope methodScope)
at System.ServiceModel.Dispatcher.SyncMethodInvoker.Invoke(Object instance, Object inputs, Object& outputs)
at Microsoft.Dynamics.Nav.Service.ServiceOperationInvoker.ErrorMappingCombinator(ServiceOperation innerOperation, NSServiceBase serviceInstance, Object inputs, Object& outputs)
Unfortunately, you cannot use this tool on NAV2013.
Regarding the ArgumentOutOfRangeException exception. It is a product issue and it should have been fixed as a hot fix. Please try to use latest hot fix build and report if it does not solve your problem.
Great tool, thanks!
Do you have any information on how (and if) the setting "Enable Full C/AL Function Tracing" affects NAV server performance?
Setting "Enable Full C/AL Function Tracing" has zero impact on perf if you are not profiling or tracing.