Introducing the Microsoft Dynamics NAV Application Profiler

Introducing the Microsoft Dynamics NAV Application Profiler

  • Comments 9

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,, 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,


David Worthington and Dmytro Sitnik from the Dynamics NAV team

Format: ???
Duration: 7:00

Leave a Comment
  • Please add 6 and 5 and type the answer here:
  • Post
  • 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.

    Any thoughts?

    Server instance: NAV2013R2_DEV

    User: dddddd\xxxxx

    Type: System.ArgumentOutOfRangeException


     Index and length must refer to a location within the string.

     Parameter name: length

    ParamName: 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)

    Source: mscorlib

    HResult: -2146233086

  • 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.

Page 1 of 1 (9 items)