From a99650d614aac626886f0f57e733ec4440616570 Mon Sep 17 00:00:00 2001 From: celogeek <65178+celogeek@users.noreply.github.com> Date: Tue, 28 Dec 2021 11:41:01 +0100 Subject: [PATCH] optimize --- internal/piwigo/files.go | 13 ++----------- internal/piwigo/helper.go | 8 ++++---- internal/piwigocli/images_upload_tree.go | 2 +- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/internal/piwigo/files.go b/internal/piwigo/files.go index fb3bd0e..d9992fd 100644 --- a/internal/piwigo/files.go +++ b/internal/piwigo/files.go @@ -211,16 +211,7 @@ func (p *Piwigo) CheckFiles(filesToCheck chan *FileToUpload, files chan *FileToU func (p *Piwigo) UploadFiles(files chan *FileToUpload, stat *FileToUploadStat, hasVideoJS bool, nbJobs int) { defer stat.Close() - - wg := &sync.WaitGroup{} - for i := 0; i < nbJobs; i++ { - wg.Add(1) - go func() { - defer wg.Done() - for file := range files { - p.Upload(file, stat, 2, hasVideoJS) - } - }() + for file := range files { + p.Upload(file, stat, nbJobs, hasVideoJS) } - wg.Wait() } diff --git a/internal/piwigo/helper.go b/internal/piwigo/helper.go index 976bc9e..f1a57d8 100644 --- a/internal/piwigo/helper.go +++ b/internal/piwigo/helper.go @@ -13,9 +13,9 @@ import ( "strings" ) +var CHUNK_SIZE int64 = 1 * 1024 * 1024 var CHUNK_BUFF_SIZE int64 = 32 * 1024 -var CHUNK_BUFF_COUNT int = 32 -var CHUNK_PRECOMPUTE_SIZE int = 8 +var CHUNK_BUFF_COUNT = CHUNK_SIZE / CHUNK_BUFF_SIZE func DumpResponse(v interface{}) (err error) { b, err := json.MarshalIndent(v, "", " ") @@ -65,7 +65,7 @@ func Base64Chunker(filename string) (out chan *Base64ChunkResult, err error) { return } - out = make(chan *Base64ChunkResult, CHUNK_PRECOMPUTE_SIZE) + out = make(chan *Base64ChunkResult, 8) go func() { b := make([]byte, CHUNK_BUFF_SIZE) defer f.Close() @@ -76,7 +76,7 @@ func Base64Chunker(filename string) (out chan *Base64ChunkResult, err error) { Position: position, } b64 := base64.NewEncoder(base64.StdEncoding, &bf.Buffer) - for i := 0; i < CHUNK_BUFF_COUNT; i++ { + for i := int64(0); i < CHUNK_BUFF_COUNT; i++ { n, _ := f.Read(b) if n == 0 { ok = true diff --git a/internal/piwigocli/images_upload_tree.go b/internal/piwigocli/images_upload_tree.go index 59cddb2..6dac6e6 100644 --- a/internal/piwigocli/images_upload_tree.go +++ b/internal/piwigocli/images_upload_tree.go @@ -32,7 +32,7 @@ func (c *ImagesUploadTreeCommand) Execute(args []string) error { files := make(chan *piwigo.FileToUpload, 1000) go p.ScanTree(c.Dirname, c.CategoryId, 0, &status.UploadFileType, stat, filesToCheck) - go p.CheckFiles(filesToCheck, files, stat, 2) + go p.CheckFiles(filesToCheck, files, stat, 8) p.UploadFiles(files, stat, hasVideoJS, 4) return nil