Web应用优化 - 减少重复计算
16lz
2021-04-15
典型场景:一堆非常需要耗时的数据,每次更新都需要重新计算,但是更新的频率并不高。
使用缓存可以有效的减少计算和查找时间。
1. 数据快照
典型场景:Google Docs 文档后端返回的模型,优先利用快照
Google Docs 文档服务器会根据某种策略,对 Google Docs 文档的用户操作变更集(changeset)合并后的结果进行一次快照,确保用户再次打开 Google Docs 文档时,优先使用快照内容,节省每次服务端实时合并变更集的耗时。
2 缓存重复 dom api 调用结果
典型场景: Google Docs 文档在进行文字布局计算时,会高频执行 getBoundingClientRect 获取文字节点布局信息。
对于相同字体字号的文字, 如果只改变文字颜色, 文字尺寸不变, 可以复用结果.
3 基于数据模型缓存结果
典型场景:Google Docs 表格的 html 模板构建流程
在 Google Docs 表格中,基于单元格的行索引,列索引,单元格属性的三个组合属性,创建单元格 html 片段缓存对象,这样能够在表格的部分单元格发生属性变化之后,仅更新部分单元格的 html片段,达到重用历史计算结果的效果。
©著作权归作者所有:来自51CTO博客作者mb607558ea4fef1的原创作品,如需转载,请注明出处,否则将追究法律责任更多相关文章
- Web 应用优化 - 充分利用缓存
- volatile关键字?MESI协议?指令重排?内存屏障?这都是啥玩意
- MySQL 续集 01
- SYSAUX表空间占用过大情况下的处理(AWR信息过多)
- 从运维角度看中大型网站架构的演变之路
- MYSQL存储引擎与SQL性能下降原因
- 阿里云Linux安装软件镜像源
- MySQL性能相关配置整理
- Nginx反向代理Tomcat访问时浏览器加载失败,出现 ERR_CONTENT_LENG