论文读得少, 代码读得也不多, 不知道术语是什么, 只好造了一个,英文表述 "Successive Rendering", 模仿 "Progressive Rendering",简单说, 就是 React 那样的性能优化方案, 我发现是个通用的办法,在 React 当中, 做 Diff 之前需要生成 Virtual DOM, 这很消耗性能,而递进渲染通过简单的办法有效使用的缓存, 能大大提高性能.原理具体怎样呢, 先要看 Virtual DOM 渲染的性能问题是怎么造成的,Virtual DOM 展开, 按照体积会出现大量的内存申请, 同时 GC 压力Diff 过程递归遍历, 随着树的深度增加检查的次数, 也会因为递归堆积内存在 React 当中, 我们知道shouldComponentUpdate检查可以用来优化,通过对参数的检查, 可以复用上次渲染的 Virtual DOM 数据, 解决问题 1,然后由于复用, 可以通过引用一致直接发现没有改变, 避免了问题 2 的深度遍历.特别是自己实现过一遍, 发现具体的做法真的是非常巧妙.在考虑将对于方案移植到 Cumulo 的过程当中, 我在思考服务端是否也能用,因为 Cumulo 当中尝试在服务端做数据的展开, 然后进行 Diff,这样也就有同样的内存申请和递归检查的问题, 需要用类似的办法优化.我发现, 至少当能对于树形的结构做规则
...
继续阅读
(19)