perf(优化提升): 提升双端性能并优化内存占用
build.yaml / build (push) Successful in 46s

This commit is contained in:
xiaoqidun committed 2026-10-19 23:17:39 +08:00
1 parent eb20f66ffb
commit 075797402d
41 files changed
+633 -125

No files matched your search

+7 -1
View File
@@ -89,6 +89,11 @@ func (r *Renderer) Fork(ctx context.Context) (*Renderer, error) {
next.fontPreparations = r.fontPreparations
next.fontMetrics = r.fontMetrics
next.glyphOutlines = r.glyphOutlines
next.sharedBackendStates[canvasPathCacheKey{}] = r.canvasParsedPaths()
next.sharedBackendStates[canvasClipCacheKey{}] = r.canvasClipIntersections()
next.sharedBackendStates[canvasFillCacheKey{}] = r.canvasSettledPaths()
next.sharedBackendStates[canvasDrawClipCacheKey{}] = r.canvasDrawClips()
next.sharedBackendStates[svgResourceCacheKey{}] = r.svgImageResources()
return next, nil
}
@@ -108,8 +113,9 @@ func (r *Renderer) deviceLineWidth(width float64) float64 {
// ClearCache 释放派生字体、图片、模板与后端缓存,不改变文档和渲染配置
func (r *Renderer) ClearCache() {
r.imageCache.clear()
r.backendStates = make(map[any]any)
r.imageCache = &renderCache[string, image.Image]{limit: imageCacheLimit}
r.imageCache = resourceCache[string, image.Image](r.Reader.resources, imageCacheLimit)
r.templatePageCache = make(map[string]*PageContent)
r.resetFontCache()
}