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" "go-comic-converter/internal/epub"
"os" "os"
"path/filepath" "path/filepath"
"runtime"
"strings" "strings"
) )
@ -61,6 +62,7 @@ type Option struct {
Quality int Quality int
NoCrop bool NoCrop bool
LimitMb int LimitMb int
PrintMem bool
} }
func (o *Option) String() string { func (o *Option) String() string {
@ -82,12 +84,13 @@ func (o *Option) String() string {
Options: Options:
Input : %s Input : %s
Output : %s Output : %s
Profile: %s - %s - %dx%d Profile : %s - %s - %dx%d
Author : %s Author : %s
Title : %s Title : %s
Quality: %d Quality : %d
Crop : %v Crop : %v
LimitMb: %s LimitMb : %s
PrintMem: %v
`, `,
o.Input, o.Input,
o.Output, o.Output,
@ -100,6 +103,27 @@ Options:
o.Quality, o.Quality,
!o.NoCrop, !o.NoCrop,
limitmb, 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.IntVar(&opt.Quality, "quality", 85, "Quality of the image")
flag.BoolVar(&opt.NoCrop, "nocrop", false, "Disable cropping") 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.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() flag.Parse()
if opt.Input == "" { if opt.Input == "" {
@ -183,5 +208,8 @@ func main() {
os.Exit(1) os.Exit(1)
} }
if opt.PrintMem {
PrintMemUsage()
}
os.Exit(0) os.Exit(0)
} }