Profiling
TEN Framework GO Project
Use gperftools
to profile your program's CPU usage and heap memory usage. The following steps describe how to prepare the environment, use gperftools
to profile your program, and analyze the performance data.
Installing gperftools
gperftools
To install gperftools
on Ubuntu, run the following commands:
Profiling CPU Usage with gperftools
gperftools
To profile the CPU usage of your program, run the following commands:
When the program exits, a CPU performance data file will be generated. The data will be stored in the /.../cpu.0001.prof
file.
If you want to generate CPU performance data periodically, you can set the CPUPROFILE_FREQUENCY
environment variable. For example, to generate CPU performance data every 30 seconds, run the following command:
Analyzing CPU Performance Data
To analyze the CPU performance data, run the following commands:
Profiling Heap Memory Usage with gperftools
gperftools
To profile your program's heap memory usage, run the following commands:
It is recommended to use the HEAP_PROFILE_TIME_INTERVAL
environment variable to periodically generate heap memory performance data. All heap memory performance data will be stored in the HEAPPROFILE
directory.
Analyzing Heap Memory Performance Data
Each generated heap memory performance data file will have a .heap
extension. To analyze the heap memory performance data, you can convert the .heap
files to a human-readable text format. For example, to convert a .heap
file in /.../heap
to a text format, run the following command:
The performance data will look like this:
You can also convert the .heap
file to other formats like PDF or SVG. For example, to convert a .heap
file in /.../heap
to PDF format, run the following command:
The performance data in PDF format will be similar to the text output but visualized graphically.
Additionally, you can compare two sets of heap memory performance data. For example, to compare the heap memory performance data in /.../heap.0001.heap
and /.../heap.0002.heap
, run the following command:
The PDF will show the differences in heap memory usage between the two data sets.
If you are generating heap memory performance data periodically, we provide a script to analyze all the heap memory performance data in a directory and generate an Excel file showing the heap memory usage trends. For example, to analyze all heap memory performance data in /.../heap
, run the following command:
The script will generate raw performance data with symbols in the /.../raw
directory, human-readable text performance data in the /.../text
directory, and an Excel file in /.../heap.xlsx
.
You can plot a line chart to display the heap memory usage trends.
Profiling with pprof
pprof
We recommend using pprof
to profile programs written in Go. The easiest way to profile a Go program is by using pprof_app_go
as your TEN application. When activated, the application reads environment variables to decide whether to activate the pprof
server and heap profiler.
Analyzing pprof
Performance Data
pprof
Performance DataTo convert heap performance data to a text format, use the following command:
To analyze all heap performance data and generate an Excel file, run:
You can plot a line chart to display the heap memory usage trends:
This will give you a visual representation of Go heap performance data trends.
Last updated