From 9e48a23a93dd4ae128f30c5fcc63081ab03a6984 Mon Sep 17 00:00:00 2001 From: Daniel <845765@qq.com> Date: Sat, 19 Oct 2024 17:05:26 +0800 Subject: [PATCH] :zap: Improve performance --- kernel/model/attribute_view.go | 31 +++++-------------------------- 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/kernel/model/attribute_view.go b/kernel/model/attribute_view.go index e0e129f15..55ab3306a 100644 --- a/kernel/model/attribute_view.go +++ b/kernel/model/attribute_view.go @@ -1449,38 +1449,17 @@ func (tx *Transaction) doRemoveAttrViewView(operation *Operation) (ret *TxErr) { func getMirrorBlocksNodes(avID string) (trees []*parse.Tree, nodes []*ast.Node) { mirrorBlockIDs := treenode.GetMirrorAttrViewBlockIDs(avID) - mirrorBlockTree := map[string]*parse.Tree{} - treeCache := map[string]*parse.Tree{} - for _, mirrorBlock := range mirrorBlockIDs { - bt := treenode.GetBlockTree(mirrorBlock) - if nil == bt { - logging.LogErrorf("get block tree by block ID [%s] failed", mirrorBlock) - continue - } - - tree := mirrorBlockTree[mirrorBlock] - if nil == tree { - tree, _ = LoadTreeByBlockID(mirrorBlock) - if nil == tree { - logging.LogErrorf("load tree by block ID [%s] failed", mirrorBlock) - continue - } - treeCache[tree.ID] = tree - mirrorBlockTree[mirrorBlock] = tree - } - } - - for _, mirrorBlockID := range mirrorBlockIDs { - tree := mirrorBlockTree[mirrorBlockID] - node := treenode.GetNodeInTree(tree, mirrorBlockID) + mirrorBlockTrees := filesys.LoadTrees(mirrorBlockIDs) + for id, tree := range mirrorBlockTrees { + node := treenode.GetNodeInTree(tree, id) if nil == node { - logging.LogErrorf("get node in tree by block ID [%s] failed", mirrorBlockID) + logging.LogErrorf("get node in tree by block ID [%s] failed", id) continue } nodes = append(nodes, node) } - for _, tree := range treeCache { + for _, tree := range mirrorBlockTrees { trees = append(trees, tree) } return