forked from cerc-io/plugeth
internal/debug: add memStats and gcStats to API
This commit is contained in:
parent
bcd8aeefdd
commit
bea56d84e5
@ -27,6 +27,7 @@ import (
|
|||||||
"os/user"
|
"os/user"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"runtime"
|
"runtime"
|
||||||
|
"runtime/debug"
|
||||||
"runtime/pprof"
|
"runtime/pprof"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@ -69,6 +70,20 @@ func (*HandlerT) BacktraceAt(location string) error {
|
|||||||
return glog.GetTraceLocation().Set(location)
|
return glog.GetTraceLocation().Set(location)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MemStats returns detailed runtime memory statistics.
|
||||||
|
func (*HandlerT) MemStats() *runtime.MemStats {
|
||||||
|
s := new(runtime.MemStats)
|
||||||
|
runtime.ReadMemStats(s)
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
|
// GcStats returns GC statistics.
|
||||||
|
func (*HandlerT) GcStats() *debug.GCStats {
|
||||||
|
s := new(debug.GCStats)
|
||||||
|
debug.ReadGCStats(s)
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
|
||||||
// CpuProfile turns on CPU profiling for nsec seconds and writes
|
// CpuProfile turns on CPU profiling for nsec seconds and writes
|
||||||
// profile data to file.
|
// profile data to file.
|
||||||
func (h *HandlerT) CpuProfile(file string, nsec uint) error {
|
func (h *HandlerT) CpuProfile(file string, nsec uint) error {
|
||||||
|
@ -327,6 +327,16 @@ web3._extend({
|
|||||||
params: 0,
|
params: 0,
|
||||||
outputFormatter: console.log
|
outputFormatter: console.log
|
||||||
}),
|
}),
|
||||||
|
new web3._extend.Method({
|
||||||
|
name: 'memStats',
|
||||||
|
call: 'debug_memStats',
|
||||||
|
params: 0,
|
||||||
|
}),
|
||||||
|
new web3._extend.Method({
|
||||||
|
name: 'gcStats',
|
||||||
|
call: 'debug_gcStats',
|
||||||
|
params: 0,
|
||||||
|
}),
|
||||||
new web3._extend.Method({
|
new web3._extend.Method({
|
||||||
name: 'cpuProfile',
|
name: 'cpuProfile',
|
||||||
call: 'debug_cpuProfile',
|
call: 'debug_cpuProfile',
|
||||||
|
Loading…
Reference in New Issue
Block a user