Profiling
Last updated
Last updated
Turns on block profiling for the given duration and writes profile data to disk. It uses a profile rate of 1 for most accurate information. If a different rate is desired, set the rate and write the profile manually using .
Console
debug.blockProfile(file, seconds)
RPC
{"method": "debug_blockProfile", "params": [string, number]}
Parameters
file
string
The filename for the profiling result.
seconds
int
The profiling duration in seconds.
Return Value
None
Example
Console
HTTP RPC
Turns on CPU profiling for the given duration and writes profile data to disk.
Console
debug.cpuProfile(file, seconds)
RPC
{"method": "debug_cpuProfile", "params": [string, number]}
Parameters
file
string
The filename for the profiling result.
seconds
int
The profiling duration in seconds.
Return Value
None
Example
Console
HTTP RPC
Turns on mutex profiling for nsec (nanosecond) and writes profile data to file. It uses a profile rate of 1 for most accurate information. If a different rate is desired, set the rate and write the profile manually.
Console
debug.mutexProfile(file, seconds)
RPC
{"method": "debug_mutexProfile", "params": [string, number]}
Parameters
file
string
The filename for the profiling result.
seconds
int
The profiling duration in seconds.
Return Value
None
Example
Console
HTTP RPC
Returns true
if the pprof HTTP server is running and false
otherwise.
Console
debug.isPProfRunning()
RPC
{"method": "debug_isPProfRunning", "params": []}
Parameters
None
Return Value
bool
true
if the pprof HTTP server is running and false
otherwise.
Example
Console
HTTP RPC
Console
debug.setBlockProfileRate(rate)
RPC
{"method": "debug_setBlockProfileRate", "params": [number]}
Parameters
rate
int
The profiling rate in samples/sec.
Return Value
None
Example
Console
HTTP RPC
Turns on CPU profiling indefinitely, writing to the given file.
Console
debug.startCPUProfile(file)
RPC
{"method": "debug_startCPUProfile", "params": [string]}
Parameters
file
string
The filename for the profiling output.
Return Value
None
Example
Console
HTTP RPC
Turns off CPU profiling.
Console
debug.stopCPUProfile()
RPC
{"method": "debug_stopCPUProfile", "params": []}
Parameters
None
Return Value
None
Example
Console
HTTP RPC
Starts the pprof HTTP server. The running pprof server can be accessed by (when the default configuration, i.e., localhost:6060, is used):
http://localhost:6060/debug/pprof (for the pprof results)
http://localhost:6060/memsize/ (for the memory size reports)
http://localhost:6060/debug/vars (for the metrics)
Console
debug.startPProf(address, port)
RPC
{"method": "debug_startPProf", "params": [string, number]}
Parameters
address
string
(optional) pprof HTTP server listening interface (default: "127.0.0.1").
port
int
(optional) pprof HTTP server listening port (default: 6060).
Return Value
None
Example
Console
HTTP RPC
Stops the pprof HTTP server.
Console
debug.stopPProf()
RPC
{"method": "debug_stopPProf", "params": []}
Parameters
None
Return Value
None
Example
Console
HTTP RPC
Writes a goroutine blocking profile to the given file.
Console
debug.writeBlockProfile(file)
RPC
{"method": "debug_writeBlockProfile", "params": [string]}
Parameters
file
string
The filename for the profiling output.
Return Value
None
Example
Console
HTTP RPC
Writes an allocation profile to the given file. Note that the profiling rate cannot be set through the API, it must be set on the command line using the --memprofilerate
flag.
Console
debug.writeMemProfile(file)
RPC
{"method": "debug_writeMemProfile", "params": [string]}
Parameters
file
string
The filename for the profiling output.
Return Value
None
Example
Console
HTTP RPC
Writes a goroutine blocking profile to the given file.
Console
debug.writeMutexProfile(file)
RPC
{"method": "debug_writeMutexProfile", "params": [string]}
Parameters
file
string
The filename for the profiling output.
Return Value
None
Example
Console
HTTP RPC
Sets the rate (in samples/sec) of goroutine block profile data collection. A non-zero rate enables block profiling, setting it to zero stops the profile. Collected profile data can be written using .