应用性能

本文共--字 阅读约--分钟 | 浏览: -- Last Updated: 2021-05-21

性能和资源

性能是指相对于时间及资源消耗所能完成的任务量,资源是指有限的物理(CPU、内存、GPU、硬盘等)或虚拟(CPU时间、内存区、文件等)组件。

中央处理单元(CPU):通过执行由指令所指定的基本的算术、逻辑、控制和输入输出(I/O)操作来执行计算机的指令。

图形处理单元(GPU):这是一个为了加速图像在显示用帧缓冲器中的创建,而专门用来操作和变更存储数据的处理器,当创建一个使用 WebGL API 或 CSS3 动画应用时,我们就是在使用GPU。

CPU加速JavaScript动画。GPU加速CSS3动画

内存(RAM):它使得数据项能够无视访问顺序地进行时间大致相同的读出和写入,当我们声明一个变量时,它将被存储在内存中,当变量离开作用域后,它将被垃圾收集器从内存中移除。

硬盘(HDD)或固态硬盘(SSD):这两者都是用来存储和检索信息的存储设备,当开发web应用程序的客户端时,我们不必太担心这些资源。但是当使用持久的存储方式时(cookie、本地存储、索引数据库等),应用程序的性能会受到HDD或SSD可用性的影响。

网络吞吐量:这决定了在单位时间内通过网络可发送的数据量,网络吞吐量是由诸如网络延迟或带宽等因素决定的。

性能指标有:可用性、响应时间、处理速度、延迟、带宽、可伸缩性(系统处理更大规模任务的能力)

ping:ping值是指从网络服务器发送数据到接收到服务器反馈数据的时间。一般以毫秒为单位,越小越好

FPS:每秒传输帧数,FPS为60(即每秒60帧) 可获得较佳体验,越大越好。

可以使用全局对象来访问性能计时API

window.performance  

需要注意的是:

  • DOMContentLoaded事件是在引擎解析完文档之后发生。
  • load事件在页面的资源加载完成后触发。

在 Chrome开发工具的 NetWork 下,每一个请求的都记录了对应的性能计时API:

  • Queueing: 等待时间
  • Stalled / Blocking: 请求发送前的等待时间,开启TCP连接存在最长时限。达到时限后,一些请求会显示Blocking 时间而不是stalled 时间。
  • Proxy Negotiation: 与代理服务器协商连接的时间
  • DNS Lookup: 解析DNS地址的时间,每次域名解析都需要与DNS服务器建立双向通信。
  • Initial Connection / Connecting: 建立连接时间。
  • SSL: 建立SSL连接的时间。
  • Request Send / Sending: 网络请求所需时间,基本小于1毫秒。
  • Waiting(TTFB):请求发起到从服务器接受到第一个字节的时间,又称首字母时间,从中可看出与服务器双向通信除了等待服务器响应外的延时
  • Content Download / Downloading: 接收服务器响应的数据和时间。