zoukankan      html  css  js  c++  java
  • 前端性能优化

    https://blog.csdn.net/xmxt668/article/details/102529583

    2-1 为什么要进行Web性能优化【企业刚需】

    网页速度快,才可以吸引更多的用户,用户体验才可以。

    搜索排名,会优先考虑高性能网站。

    寻找性能瓶颈
    
    了解性能指标--多快才算快
    
    利用测量工具和APIs
    
    优化问题,重新测量(迭代)
    
    移动端挑战多
    
    设备硬件,网速,屏幕尺寸,交互方式
    
    用户更缺少耐心,>3秒加载导致53%对的跳出率
    
    持续增长的移动用户和移动电商业务
    

    2-2 性能指标和优化目标【了解行业标准】

    1.随便打开一个网页,比如淘宝,用谷歌打开开发者工具,点击Network选项卡,点击Network Setting,选择除了Group by frame的其他的选择框。

    2.刷新页面,选择刷新按钮的时候,点击右键,选择最后一个“清除缓存并硬性重新加载”选项,刷新之后可以看到页面加载时间

    Network里面有个瀑布图,表示资源的加载,可以横向看和竖向看;横向看的是每项具体的资源,不同的颜色代表不同的环节,有排队,DNS查找,SSL,TTFB(从用户发出请求到数据返回的时间,反映了后台的处理时间和网络时间),下载过程。资源如果并行加载,就会提升加载速度。

    在NetWork里面可以看到2根竖线,蓝色的是DOM完成的时间,红色的是所有资源加载完成的时间

    在Network里面的结果一次可能分析不完,我们可以先把结果保存下来,在空白处右键,点击Save all as HAR with content,这是一个统一的标准,主要将性能测试的结果保存起来,方便后续使用,或者导入到其他的性能分析工具中。

    3.点击Lighthouse选项卡,这是google集成的一个性能测试的工具,报告总分是100分,使用这些工具的时候一定要多测试几次,取平均值。该选项卡下有几个指标,指标的黄色代表警告,绿色代表比较好,红色的代表不好。

    First Contentful Paint:从白屏到出现内容的时间。不能一直白屏,可以慢慢地出现内容,不能等所有的内容返回再加载内容

    Speed Index:速度指数,背后有个复杂的计算过程,一般4s以内,是比较好的,也要看页面的具体情况,不能一概追求这个指标,只能不断优化接近这个指标

    4.上面的指标主要是网络的性能,还有用户的交互体验,淘宝随便点击一个一级菜单,二级菜单就会立即出现,响应速度比较快。还有画面的流畅度,接下来使用其他的工具,使用快捷键Ctrl+Shift+P调用出命令窗口:输入frame,点击Rendering Show frames per second (FPS) meter,这是个监控,

    可以看到页面的帧数,淘宝可以达到很低(60fps)

    优化所有的异步请求,争取很快能返回来,实在不行的话,可以加个Loading框

    性能优化--加载
    
    理解加载瀑布图
    
    基于HAR存储与重建性能信息
    
    速度指数
    
    重要测量指标(Speed Index,TTFB,页面加载时间,首次渲染)
    

    2-3 RAIL测量模型【黄金指南】

    这是google提出的模型标准,要知道性能优化往哪个方向发展才好一点。受制于各种因素,直接输入网页链接,网页内容可以立刻加载出来。

    什么是RAIL
    
    Respose响应,对于用户而言,交互的响应
    
    Animation 动画,动画给用户体验是否流畅
    
    Idle空闲,让浏览器有足够的空闲时间,不能让主线程始终繁忙
    
      chrome开发者工具里有个Performance的选项卡,可以看到主线程是否空闲
    
    Load加载,资源加载时间
    
    RAIL评估标准
    
    响应:处理时间应在50ms以内完成
    
     是基于用户调查得出的,用户可以接受的时间是100ms,从用户发出请求,到用户返回请求的过程,其实有很多过程,真正做数据数据的时间只有50ms。
    
    动画:每10ms产生一帧  (1秒钟60帧,浏览器绘制需要事件)
    
    空闲:尽可能增加空闲时间
    
     当空闲足够的话,响应来的时候,才可以快速处理;业务相关的逻辑需要放到后台去做
    
    加载:在5s内完成内容加载并可以交互
    
     (加载,解析的时间是5s)
    

    逐步发现问题,解决问题

    性能测量工具

    1. Chrome DevTools开发调试,性能评测
    2. Lighthouse网站整体质量评估
    3. WebPageTest多测试地点、全面性能报告

    2-4 使用WebPageTest评估Web网站性能【快捷好用的在线分析工具】

    2-5 使用LightHouse分析性能【一站式全面呈现性能指标】

    2-6 使用Chrome DevTools分析性能【最大法宝】

    2-7 常用的性能测量APIs【不可不知,打开精细化、自定义测量的大门】

  • 相关阅读:
    java中如何模拟真正的同时并发请求?
    安全并发之先行发生原则
    定时器的实现原理及参考
    kafka扫盲笔记,实战入门
    空手套白狼,硬阅java字节码class文件
    Rpc框架dubbo-client(v2.6.3) 源码阅读(二)
    如何获取java运行时动态生成的class文件?
    微软职位内部推荐-SDEII
    微软职位内部推荐-Senior SDE
    微软职位内部推荐-Software Engineer II-Senior Software Engineer for Satori
  • 原文地址:https://www.cnblogs.com/zdjBlog/p/13848020.html
Copyright © 2011-2022 走看看