zoukankan      html  css  js  c++  java
  • Web前端性能分析

    Web前端性能通常上代表着一个完全意义上的用户响应时间,包含从开始解析HTML文件到最后渲染完成开始的整个过程,但不包括在输入url之后与服务器的交互阶段。下面是整个过程的各个步骤:

    1. 开始解析html文件,从head到body按顺序从上到下。
    2. 当解析到head部分的css外部链接时,同步去下载,如果遇到外部js链接也是下载
    3. 接着解析body部分,边解析边开始生成对应的DOM树,同时等待css文件下载
    4. 等到css文件下载完毕,那么就同步去用已经生成的DOM节点+css去生成渲染树
    5. 渲染树生成结构模型,接着同步计算渲染树节点的布局位置
    6. 计算完成节点坐标后,同步开始渲染
    7. 进行过程中如果遇到图片则跳过去渲染下面内容,等待图片下载成功后会返回来在渲染原来图片的位置
    8. 如果渲染过程中出现js代码调整DOM树机构的情况,也会再次重新来过,从修改DOM那步开始
    9. 最终所有节点和资源都渲染完成

    整个过程中会有很多的分别请求,所以TCP连接会很多,并且每一个用完都会自己关了,或者需要在keep-live字段标记上不自动关闭。

    对于Web前端的性能分析从HTML网页的结构出发,分析其代码的合理性。性能分析工具使用Page Speed。Page Speed最初是Google内部使用的改进网页设计的工具——它整合在Firefox的著名插件Firebug中。当用户运行Page Speed,可以立即获得如何改进网页载入速度的建议。Page Speed工具提供浏览器插件和在线网站测评两种方式,这里使用在线网站的方式进行评测。

    Page Speed Insights能根据以下内容衡量网页如何提升其性能:

    l  首屏加载时间:从用户请求新页面到浏览器呈现首屏内容所用的时间。

    l  完整的网页加载时间:从用户请求新网页到浏览器完全呈现网页所用的时间。

    Page Speed的网站为:

    https://developers.google.com/speed/pagespeed/insights/?hl=zh-CN

    网页截图如下:

    在文本框中分别输入我们需要评测的两个网站http://sse.hust.edu.cnhttp://cs.hust.edu.cn,即可获得对应评分。Page Speed得分范围是从0到100分。分数越高,代表性能越好。85分或更高分表明网页性能良好。

    其评分规则在以下链接:

    https://developers.google.com/speed/docs/best-practices/rules_intro

    包括10个Page Speed规则和5个可用性规则,分别是:

    Page Speed规则

    l  避免目标网页重定向

    l  启用压缩功能

    l  改善服务器响应时间

    l  使用浏览器缓存

    l  缩减资源大小

    l  优化图片

    l  优化CSS发送过程

    l  按优先级排列可见内容

    l  移除阻止呈现的JavaScript

    l  使用异步脚本

    可用性规则

    l  避免使用插件

    l  配置视口

    l  调整内容的尺寸,使其符合视口设置

    l  适当调整点按目标的尺寸

    l  使用清晰可辨的字体大小

    我们对目标网站的评分结果如下:

    1.软件学院官网PC端

     

    2.软件学院官网移动端

     

    3.计算机学院官网PC端

     

    4.计算机学院官网移动端

     

    总结:根据以上结果我们汇总得到性能报告如下。

    测试网站平台

    软院PC

    软院移动

    计院PC

    计院移动

    总分数(%)

    Needs Work 72

    Poor 64

    Needs Work 69

    Poor 57

    启用压缩

    缩减CSS

    缩减服务器响应时间

     

     

    避免使用着陆页重定向

    缩减HTML

     

     

     

     

    缩减JavaScript

     

     

    按优先级排列可见内容

     

    优化图片

     

     

     

     

    清除首屏内容中阻止呈现的JavaScript和CSS

     

     

     

     

    使用浏览器缓存

     

     

     

     

    可以看到,软件学院的网站相对于计算机学院都完成了缩减JavaScript的优化,但也缺少了缩减服务器响应时间的优化,计算机学院的移动端没有完成按优先级排列可见内容。另外还有一些别的优化没有完成,分别是:

    1. 缩短服务器响应时间:服务器响应时间表示加载必要HTML以开始呈现服务器所托管网页的时间过长。应将服务器响应时间控制在200毫秒以内。有很多潜在因素都可能会延缓服务器响应,例如应用逻辑缓慢、数据库查询缓慢、路由缓慢、框架、库、资源CPU不足或内存不足等。需要考虑所有这些因素,才能改善服务器的响应时间。
    2. 缩减JavaScript,可以使用工具Closure Compiler、JSMin或YUI Compressor。创建一个使用这些工具的构建流程,以便缩减开发文件的大小并对其进行重命名,然后将其保存到正式版目录。
    3. 按优先级排列可见内容:Page Speed Insights检测到系统需要进行更多次的网络往返来呈现网页的首屏内容。工具提供的建议是:为提高网页加载速度,限制呈现网页首屏内容所需的数据(HTML标记、图片、CSS和JavaScript)大小。可以尝试以下几种方法:结构化HTML,以便首先加载关键的首屏内容;减少资源所用的数据量。
    4. 缩减HTML:要缩减HTML的大小,可以使用Page Speed Insights Chrome扩展功能来生成优化版HTML代码。上面4个测试例子中都有17%左右的大小可以缩减。
    5. 优化图片:尽量减小图片尺寸,以缩减用户等待资源加载的时间。适当地设置图片的格式并进行压缩可以节省大量的数据字节空间。建议是对所有图片进行基本优化和高级优化。基本优化包括裁剪不必要的区域,将颜色深度降至可接受的最低水平,移除图片评论以及将图片保存为恰当的格式。可以使用任意图片编辑程序(例如,GIMP)执行基本优化。高级优化包括对JPEG和PNG文件执行进一步的压缩(无损压缩)。
    6. 清除首屏内容中阻止呈现的JavaScript和CSS:网页中有多个阻止呈现的脚本资源和CSS资源。这会导致呈现网页的过程出现延迟。在资源加载完毕之前,网页上不会直接呈现任何首屏内容。应该尝试暂缓或异步加载阻止资源,或者将这些资源的关键部分直接内嵌到HTML中。
    7. 使用浏览器缓存:在HTTP标头中为静态资源设置过期日期或最长存在时间,可指示浏览器从本地磁盘中加载以前下载的资源,而不是通过网络加载。

    结论:两个网站的前端都经过有一定程度的优化,但是仍有可优化的空间,总体来说,软件学院的web前端性能优化优于计算机学院。

  • 相关阅读:
    LeetCode剑指Offer03
    腾讯软件开发客户端开发实习生二面
    luogu P2801 教主的魔法 分块
    luogu P3396 哈希冲突 根号算法
    luogu P1972 [SDOI2009]HH的项链 树状数组
    BZOJ 2440: [中山市选2011]完全平方数 莫比乌斯函数 容斥原理 二分答案
    柳阴直,烟里丝丝弄碧
    卡通别名
    它们
    高中随笔
  • 原文地址:https://www.cnblogs.com/hust-no-bug/p/8151359.html
Copyright © 2011-2022 走看看