aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--internal/debug/api.go15
-rw-r--r--rpc/javascript.go10
2 files changed, 25 insertions, 0 deletions
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
@@ -328,6 +328,16 @@ web3._extend({
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',
params: 2