internal/debug: add memStats and gcStats to API

This commit is contained in:
Felix Lange 2016-02-20 15:42:22 +01:00
parent bcd8aeefdd
commit bea56d84e5
2 changed files with 25 additions and 0 deletions

View File

@ -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 {

View File

@ -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',