ref: 5c9c01c88b125f9235fd0c3722aa2c1ff5f7472f
parent: 478bbdf54aed1ab65ec5cc7ec13d82b0d4d5a0c9
author: Philip Silva <[email protected]>
date: Fri Dec 10 13:16:37 EST 2021
mem profiling
--- a/browser/browser.go
+++ b/browser/browser.go
@@ -671,7 +671,7 @@
}
func (el *Element) Mouse(dui *duit.DUI, self *duit.Kid, m draw.Mouse, origM draw.Mouse, orig image.Point) (r duit.Result) {
- if m.Buttons == 3 {
+ if m.Buttons == 4 {
if el == nil {
log.Infof("inspect nil element")
} else {
--- a/cmd/opossum/main.go
+++ b/cmd/opossum/main.go
@@ -13,6 +13,7 @@
"net/url"
"os"
"os/signal"
+ "runtime"
"runtime/pprof"
"strings"
"time"
@@ -22,6 +23,7 @@
dui *duit.DUI
b *browser.Browser
cpuprofile string
+ memprofile string
loc string = "http://9p.io"
dbg bool
v View
@@ -164,7 +166,7 @@
}
func render() {
- white, err := dui.Display.AllocImage(image.Rect(0, 0, 10, 10), draw.ARGB32, true, 0xffffffff)
+ white, err := dui.Display.AllocImage(image.Rect(0, 0, 1, 1), draw.ARGB32, true, 0xffffffff)
if err != nil {
log.Errorf("%v", err)
}
@@ -244,7 +246,7 @@
}
func usage() {
- fmt.Printf("usage: opossum [-v|-vv] [-h] [-jsinsecure] [-cpuprofile fn] [startPage]\n")
+ fmt.Printf("usage: opossum [-v|-vv] [-h] [-jsinsecure] [-cpu|-mem fn] [startPage]\n")
os.Exit(1)
}
@@ -266,8 +268,10 @@
case "-jsinsecure":
browser.ExperimentalJsInsecure = true
args = args[1:]
- case "-cpuprofile":
- cpuprofile, args = args[0], args[2:]
+ case "-cpu":
+ cpuprofile, args = args[1], args[2:]
+ case "-mem":
+ memprofile, args = args[1], args[2:]
default:
if len(args) > 1 {
usage()
@@ -289,6 +293,21 @@
go func() {
<-time.After(time.Minute)
pprof.StopCPUProfile()
+ f.Close()
+ os.Exit(2)
+ }()
+ }
+
+ if memprofile != "" {
+ f, err := os.Create(memprofile)
+ if err != nil {
+ log.Fatal(err)
+ }
+ go func() {
+ <-time.After(time.Minute)
+ runtime.GC()
+ pprof.WriteHeapProfile(f)
+ f.Close()
os.Exit(2)
}()
}