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

60
main.go
View File

@ -6,6 +6,7 @@ import (
"go-comic-converter/internal/epub"
"os"
"path/filepath"
"runtime"
"strings"
)
@ -53,14 +54,15 @@ func init() {
}
type Option struct {
Input string
Output string
Profile string
Author string
Title string
Quality int
NoCrop bool
LimitMb int
Input string
Output string
Profile string
Author string
Title string
Quality int
NoCrop bool
LimitMb int
PrintMem bool
}
func (o *Option) String() string {
@ -80,14 +82,15 @@ func (o *Option) String() string {
return fmt.Sprintf(`Go Comic Converter
Options:
Input : %s
Output : %s
Profile: %s - %s - %dx%d
Author : %s
Title : %s
Quality: %d
Crop : %v
LimitMb: %s
Input : %s
Output : %s
Profile : %s - %s - %dx%d
Author : %s
Title : %s
Quality : %d
Crop : %v
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)
}