⚡ 改进打开虚拟引用后加载文档的性能 https://github.com/siyuan-note/siyuan/issues/7378
This commit is contained in:
parent
f07ee114d1
commit
c1b457eb76
2 changed files with 3 additions and 20 deletions
|
@ -605,7 +605,6 @@ func GetDoc(startID, endID, id string, index int, keyword string, mode int, size
|
|||
}
|
||||
|
||||
refCount := sql.QueryRootChildrenRefCount(rootID)
|
||||
//virtualBlockRefKeywords := getVirtualRefKeywords(tree.Root.IALAttr("title"))
|
||||
virtualBlockRefKeywords := getBlockVirtualRefKeywords(tree.Root)
|
||||
|
||||
subTree := &parse.Tree{ID: rootID, Root: &ast.Node{Type: ast.NodeDocument}, Marks: tree.Marks}
|
||||
|
|
|
@ -50,23 +50,7 @@ var virtualBlockRefCache, _ = ristretto.NewCache(&ristretto.Config{
|
|||
func getBlockVirtualRefKeywords(root *ast.Node) (ret []string) {
|
||||
val, ok := virtualBlockRefCache.Get(root.ID)
|
||||
if !ok {
|
||||
treeTitle := root.IALAttr("title")
|
||||
buf := bytes.Buffer{}
|
||||
ast.Walk(root, func(n *ast.Node, entering bool) ast.WalkStatus {
|
||||
if !entering || !n.IsBlock() {
|
||||
return ast.WalkContinue
|
||||
}
|
||||
|
||||
content := treenode.NodeStaticContent(n, nil)
|
||||
buf.WriteString(content)
|
||||
return ast.WalkContinue
|
||||
})
|
||||
content := buf.String()
|
||||
putBlockVirtualRefKeywords(content, root.ID, treeTitle)
|
||||
val, ok = virtualBlockRefCache.Get(root.ID)
|
||||
if !ok {
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
ret = val.([]string)
|
||||
return
|
||||
|
@ -141,8 +125,8 @@ func CacheVirtualBlockRefJob() {
|
|||
})
|
||||
|
||||
poolSize := runtime.NumCPU()
|
||||
if 4 < poolSize {
|
||||
poolSize = 4
|
||||
if 8 < poolSize {
|
||||
poolSize = 8
|
||||
}
|
||||
i := 0
|
||||
waitGroup := &sync.WaitGroup{}
|
||||
|
|
Loading…
Add table
Reference in a new issue