From 4eca8c43e60a585b5d02decf20124efa3dce6a98 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Wed, 6 Sep 2023 17:19:38 +0800 Subject: [PATCH] :zap: Improve block loading performance on Windows/Linux/macOS amd64 arch https://github.com/siyuan-note/siyuan/issues/9084 --- kernel/filesys/json_unmarshal.go | 2 +- ...ndows_amd64.go => json_unmarshal_amd64.go} | 21 +++++++++++++------ 2 files changed, 16 insertions(+), 7 deletions(-) rename kernel/filesys/{json_unmarshal_windows_amd64.go => json_unmarshal_amd64.go} (66%) diff --git a/kernel/filesys/json_unmarshal.go b/kernel/filesys/json_unmarshal.go index 44235db52e1..339ce65124c 100644 --- a/kernel/filesys/json_unmarshal.go +++ b/kernel/filesys/json_unmarshal.go @@ -14,7 +14,7 @@ // You should have received a copy of the GNU Affero General Public License // along with this program. If not, see . -//go:build !(windows && amd64) +//go:build !amd64 package filesys diff --git a/kernel/filesys/json_unmarshal_windows_amd64.go b/kernel/filesys/json_unmarshal_amd64.go similarity index 66% rename from kernel/filesys/json_unmarshal_windows_amd64.go rename to kernel/filesys/json_unmarshal_amd64.go index dcf58e9db94..52983fc8541 100644 --- a/kernel/filesys/json_unmarshal_windows_amd64.go +++ b/kernel/filesys/json_unmarshal_amd64.go @@ -18,13 +18,22 @@ package filesys import ( "github.com/bytedance/sonic" + "github.com/goccy/go-json" + "github.com/siyuan-note/logging" ) -func unmarshalJSON(data []byte, v interface{}) error { +func unmarshalJSON(data []byte, v interface{}) (err error) { //now := time.Now() - //defer func() { - // elapsed := time.Since(now) - // logging.LogInfof("[sonic] unmarshalJSON took %s", elapsed) - //}() - return sonic.Unmarshal(data, v) + defer func() { + if e := recover(); nil != e { + logging.LogWarnf("[sonic] unmarshalJSON failed: %s", e) + err = json.Unmarshal(data, v) + } /*else { + elapsed := time.Since(now) + logging.LogInfof("[sonic] unmarshalJSON took %s", elapsed) + }*/ + }() + + err = sonic.Unmarshal(data, v) + return }