From bea56d84e53c255febaad5cb26d30122d87d02d9 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Sat, 20 Feb 2016 15:42:22 +0100 Subject: [PATCH] internal/debug: add memStats and gcStats to API --- internal/debug/api.go | 15 +++++++++++++++ rpc/javascript.go | 10 ++++++++++ 2 files changed, 25 insertions(+) diff --git a/internal/debug/api.go b/internal/debug/api.go index 83857eb2e..2cb264040 100644 --- a/internal/debug/api.go +++ b/internal/debug/api.go @@ -27,6 +27,7 @@ import ( "os/user" "path/filepath" "runtime" + "runtime/debug" "runtime/pprof" "strings" "sync" @@ -69,6 +70,20 @@ func (*HandlerT) BacktraceAt(location string) error { 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 // profile data to file. func (h *HandlerT) CpuProfile(file string, nsec uint) error { diff --git a/rpc/javascript.go b/rpc/javascript.go index 166a5289c..475691a87 100644 --- a/rpc/javascript.go +++ b/rpc/javascript.go @@ -327,6 +327,16 @@ web3._extend({ params: 0, 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({ name: 'cpuProfile', call: 'debug_cpuProfile',