Explore Categories



Measure the Performance of your TDL Code Snippet

Profiler is a very useful tool for programmers. TDL Profiler helps you to analyze and optimize your TDL code. The performance of the code snippet can be obtained using TDL profiler. The profiler provides information such as the time taken to evaluate a TDL artefact, the number of times the TDL artefact was executed and so on. The TDL artefact may be an expression, function, collection, remote call, a view change, or a Report/Form regeneration.

Profile an Operation

  1. Open TallyPrime in Developer mode.
  2. In the calculator panel, type the following commands.

Mode: Profile


<Perform the operation which needs to be profiled>




  1. The log file opens.

Note: The commands are case insensitive.

  1. The log file format is supported from Tally.ERP 9 Release 6.5.3 onwards.

The log file contains 3 sections:

Call Graph

This section details the order of execution of the TDL artefacts. In this section, a TDL artefact appears as many times as it was executed.

Column Title


Exec. Order

This column gives the order in which the TDL artefacts were executed after the profiler started. In the image below, the TDL artefact MyLedgerentriesSummary was the first one to execute which in turn called the collection MyVouchersCollection , hence the order of execution was 1 and 2 respectively.


This number indicates the level at which the TDL artefact was executed within a hierarchy or a block of code. For example, in the image below, MyLedgerentriesSummary was executed at Level 0 followed by MyVouchersCollection at Level 1.

Total Time

The total time taken to execute the TDL artefact along with its children

Self Time

The time taken to execute the TDL artefact itself (excluding the time taken to execute its children).

Requestor Type/Requestor Name

The context in which the TDL artefact was executed. In the image below, the collection MyLedgerentriesSummary was invoked by the part DashBoardLedgerAmount and hence this is the Requestor for the TDL artefact MyLedgerentriesSummary .

TDL Artefact Type/TDL Artefact Name

The TDL artefact that is being profiled.


This applies to only TDL expressions and contains the result of its evaluation.

Grouped by Parent Hierarchy

The data in this section is grouped based on the Parent Hierarchy. For example, if a TDL artefact appears more than once under a parent hierarchy, then the data of the TDL artefact is grouped.

The columns Depth, Requestor Type, Requestor Name, TDL Artefact type, TDL Artefact Name together uniquely identify a parent. Each subsequent depth represents a child of the current depth.

The count represents the number of times the TDL artefact was executed and Failed Count represents the number of times the TDL artefact failed during execution.

Grouped by TDL Artefacts

The data in this section is grouped by the TDL artefacts. Here each TDL artefact appears only once.

Profiler Commands




Start a new profiling session.


Stop data profiling


Discard the captured data.


Check if the profiler is on/off


Dump the captured data to a log file excluding TDL artefacts which was executed in less than a millisecond.


Dump all the captured data irrespective of the time taken to execute.


Open the last dumped log file within the current instance of Tally.ERP 9.


This command toggles in-depth profiling on/off. By default, the detailed mode is off. When enabled, the profiler will also capture expression evaluations.


Post a Comment

Is this information useful?