Choose the server, which needs to be profiled.
Code Profiler in ColdFusion Performance Monitoring Toolset
Run Code profiler
The Performance Monitoring Toolset monitors all transactions on a ColdFusion server and captures the response times along with other basic details of a transaction.
The procedure requires recording metrics for all components of a transaction, and thus you have the Code Profiler.
To run the code profiler, click Code Profiler on the left panel.
The tags that are not captured in profiling are:
- cfif
- cfelse
- cfelseif
- cftry
- cfcatch
- cfset
-
-
Enable the option Memory Profiling.
The option lets you know the memory consumption and the location of the variable. The field is optional. Enable it if you want to profile memory usage as well.
-
Choose the profile mode:
- Application: Specify the name of the application, that needs profiling. Profiling does not capture the data for other applications, which are not added.
- URL: Specify a URL that needs profiling. Add the URL and make sure that profile check-box is selected. Profiling does not capture the data for other URLs, which are not added.
- Server: Choose the server that needs profiling.
-
To start the process, click Start Profiling. You can view the profiling results, as shown below:
-
In the Actions column, you can:
- View profile data
- Download a profile data
- Delete a profile data
The Code Profiler only profiles the following built-in functions:
- ORM
- ORMSearch
- ORMSearchOffline
- Encode*
- Decode*
- XMLFormat
- JSformat
- Encryption
- SecretKey
- GetSOAPRequest
- ObjectLoad
- ObjectSave
- Compare
- Wrap
- REFInd
- REFindNocase
- REMatch
- File operation functions
- PrinterInfo
- StructAppend
- RunAsync
- StructToSorted
- Sort
- Map
- Each
- Filter
- Find
- Reduce
- Evaluate
- PrecisionEvaluate
- DateDiff
- Xml functions
- Array functions
View profile data
To view the profile data, click the Eye icon in the Action column.
-
Expand an execution, as shown below:
-
Click the url of the cfm that you had run.
You can see the following sections:
Basic info
The section displays the following details:
- HTTP method
- URI
- Status code
- Response time
- Template path
- Cluster id
- ...and more
Code flow
The section displays the cfm file's particular line number and the time taken by the code in that line to execute.
CF server
The section displays the following details:
- JVM: You can view, for example, memory usage of heap and non-heap, count of GC, and other JVM properties.
- Template cache size: You can view, for example, template cache count and hit ratio.
- Request queue size
- Throttle data
Database
View the databases that are used in the cfm .
External services
View services, such as, cfhttp , cfftp , or cffeed .
Tags/Functions
View the tags and functions that are used in the cfm and the number of times they are called.
Error/Timeout
View timeout errors, if any, when executing the cfm .
Memory
View the places that contain each variable used in the cfm along with the name of the function and function scopes.
Download a profile data
To download the profile data, click the Download button in the Action column.
-
Once you download the profile data as .json file, you can use ColdFusion Builder to import the profile data and can debug further.
-
In ColdFusion Builder, right-click on a project, click Import, and choose Import Code Profiler Data.
To proceed, click Next.
-
Choose the .json file and click Finish.
-
Right-click on the project, click Performance Monitoring Toolset Profiler > Run Performance Monitoring Toolset Profiler.
You can see the results in the profiler tab, as shown below:
To view the line in the file, double-click any item.
Note:The code must be in sync with the project before running the code profiler. Otherwise, the line points to a wrong place in the code.