《前端技术架构与工程》之性能
前言:
《前端技术架构与工程》这本书真的越看越有味。目前写了部分这本书的笔记,共分为三部分做笔记,已写了两篇如下。
今天准备写技术架构部分(编程语言、技术规范、组件化、前后端分离、性能)中的性能部分。
初次笔记让我从架构师的角度认识前端技术栈,编程语言笔记让我对前端三大件有了新的理解。
虽然技术规范、组件化、前后端分离里面的知识也重要,但是我这三部分都要了初步了解,勉强够用。唯一性能这一块没有去深入了解,而性能这一块又挺重要的。于是今天特意先做一下性能这一块的笔记。结合《前端技术架构与工程》的第六章以及前端学习梳理 的性能优化部分进行展开。
我的笔记只是二手资料,详情请自行找资源。
文章目录
性能
性能是衡量软件架构最基本也是最核心的直播之一。在前端领域,HTML5新增的web worker可实现多线程和并行计算以提高运算性能;CSS3的transform 3D借助GPU加速提高动画流畅度;Node.js得益于V8引擎优异的性能表现而普及。互联网产品,尤其是TOC产品,性能是影响用户体验的核心因素之一。了解性能的优化是有必要的。
在以用户为中心的互联网时代,优秀的用户体验的web应用抢占市场的重要武器,而性能的决定用户体验的核心。加载速度快能够给用户良好的第一印象,流畅的交互是支持功能最具象的要素。
- 在加载性能上,网络架构层是优化宗旨是减少延迟以提高数据获取的速度,异步script能够减少JavaScript代码对渲染的阻塞从而令HTML文档尽快渲染;
- 在应用执行期间,熟知浏览器GC策略有助于编写对内存友好的代码,可避免因内存泄漏导致的应用程序交互卡顿甚至死机的现象。
在《前端技术架构与工程》的性能部分主要从性能评估模型、从URL到图形、内存管理、极限运算性能这四部分进行讲述。
- 在性能评估模型中:讲性能指标;
- 从URL到图形:讲如何在加载阶段和可交互阶段优化性能,方法是获取数据和渲染HTML文档;
- 内存管理:讲在浏览器有限的内存配额下如何优化代码以防止内存泄漏;
- 极限运算性能:将在大数据处理的项目如何发挥浏览器的极限运算性能;
性能评估模型
制定性能评估模板最基本的原则是:对客户端场景参数(设备、浏览器、网络)赋予固定的值,使得应用限定在一致的客户端场景中,然后再进行对比。
web应用程序的生命周期分两个阶段:一是加载阶段(从输入URL到显示网页的阶段),二是可交互阶段。
性能评估(贯穿这本书的基本原则,技术服务于业务)分为:加载性能、动态性能、业务性能;
加载阶段
加载阶段的性能被称为加载性能。优化加载性能可细分为两个方向:一是从视觉角度提高网站内容的渲染速度,对应白屏时间和首屏时间两项指标;二是从交互角度缩短打开网站到可交互之间的时间间隔,对应可交互节点指标;在这本书第二章将