add memory usage

This commit is contained in:
Celogeek 2022-12-30 03:32:05 +01:00
parent a254fc446f
commit fc6885fabc
Signed by: celogeek
GPG Key ID: E6B7BDCFC446233A

34
main.go
View File

@ -6,6 +6,7 @@ import (
"go-comic-converter/internal/epub"
"os"
"path/filepath"
"runtime"
"strings"
)
@ -61,6 +62,7 @@ type Option struct {
Quality int
NoCrop bool
LimitMb int
PrintMem bool
}
func (o *Option) String() string {
@ -82,12 +84,13 @@ func (o *Option) String() string {
Options:
Input : %s
Output : %s
Profile: %s - %s - %dx%d
Profile : %s - %s - %dx%d
Author : %s
Title : %s
Quality: %d
Quality : %d
Crop : %v
LimitMb: %s
LimitMb : %s
PrintMem: %v
`,
o.Input,
o.Output,
@ -100,6 +103,27 @@ Options:
o.Quality,
!o.NoCrop,
limitmb,
o.PrintMem,
)
}
func PrintMemUsage() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
bToMb := func(b uint64) uint64 { return b / 1024 / 1024 }
// For info on each, see: https://golang.org/pkg/runtime/#MemStats
fmt.Printf(`Memory Usage:
Alloc : %v MiB
TotalAlloc: %v MiB
Sys : %v MiB
NumGC : %v
`,
bToMb(m.Alloc),
bToMb(m.TotalAlloc),
bToMb(m.Sys),
m.NumGC,
)
}
@ -123,6 +147,7 @@ func main() {
flag.IntVar(&opt.Quality, "quality", 85, "Quality of the image")
flag.BoolVar(&opt.NoCrop, "nocrop", false, "Disable cropping")
flag.IntVar(&opt.LimitMb, "limitmb", 0, "Limit size of the ePub: Default nolimit (0), Minimum 20")
flag.BoolVar(&opt.PrintMem, "printmem", false, "Print memory usage")
flag.Parse()
if opt.Input == "" {
@ -183,5 +208,8 @@ func main() {
os.Exit(1)
}
if opt.PrintMem {
PrintMemUsage()
}
os.Exit(0)
}