性能优化

度量标准:

  1. 100毫秒的界面响应时间与60FPS
  2. 速度指标(Speed Index)小于1250ms
  3. 3G网络环境下可交互时间小于5s
  4. 重要文件的大小预算小于170kb

编码优化

普通代码优化
  • if,switch 可由object代替
const obj = {
	a:'dosome',
	b:'doother'
} 
数据读取:
  • 变量声明的作用域,从局部到全局作用域的搜索过程,越长越慢
  • 对象嵌套越深,读取速度就越慢
  • 对象在原型链中存在的位置越深,找到它的速度就越慢
  • 对大量计算,可移交 web worker 进行计算
CSS优化
  • 尽量减少一些样式层级的级数,比如,div ul li span i { color: red}, 其实我们可以给i标签设置class,直接书写样式。
  • 尽量避免开启GPU,比如 transform,transitions,opacity
  • 避免使用占用过多CPU和内存的属性 比如 text-indent
  • 延迟动画
DOM
  • 减少DOM的访问,读取DOM时,缓存到变量中,持续使用
  • 减少重绘重排,如果需要多次重绘重排,建议先脱离文档流,处理完再回归
  • 善于使用事件委托
  • 减少无意义的代码,比如空标签清浮动那种代码
    能不用最好不要用。
  • css文件链接放头部,js文件放底部
  • 设置favicon.ico
  • 增加必要的loading
流程控制
  • 避免使用 for in,(它能枚举到原型,所以很慢)
  • 恰当使用倒叙循环
  • 减少迭代次数
  • 基于循环的迭代比基于函数的迭代快8(没验证,肯定快)倍
  • 用Map代替大量的if elseswitch
  • 使用requestAnimationFrame来代替setTimeout和setInterval
  • 有多层嵌套,善用return
	if(some){	
	}else{
	}
===>
	if(some){
		return 
	}
	// do else
React代码优化
  • PuerCompoent
  • React.memo
  • useMemo,useCallBack
  • componentWillUnmount, useEffect 的return 对监听,定时器进行卸载
  • React的devtool 有一个选项,查看state影响的范围,做对应处理
    在这里插入图片描述
Vue代码优化
  • keep-alive
  • 组件按块
const Foo = () => import('./Foo.vue')
// 把组件按组分块
const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue')
  • beforeDestroy()生命周期内清除定时器或者$once这个事件侦听器器在定义完定时器之后的位置来清除定时器
const timer = setInterval(() =>{    
    // 执行定时器操作               
}, 500);            
// 通过$once来监听定时器,在beforeDestroy钩子可以被清除。
this.$once('hook:beforeDestroy', () => {            
    clearInterval(timer);                                    
})
  • computed 和 watch 区分使用场景,如需计算缓存用computed.
  • v-if 和 v-show
  • vi-for 添加key

打包优化

构建优化:
dll 预编译
Tree-shaking => import { unique, implode, explode } from “array-utils”;
动态模块 => React.lazy配合suspense
缓存文件 => service worker
搜索范围 include exclude
文件压缩 gzip,

代码风格优化

  • HTML 文档结构层次尽量少,最好不深于6层。
  • 减少DOM查找
  • 动画不在视线范围尽量停止

资源优化

  • 图片压缩 可以自己写个图片压缩工具或者直接到tinypng
  • 响应式图片 根据用户的窗口大小,展示不同的图片。实现方法:媒体查询,js,html5的srcset,不支持srcset的浏览器也可以正常展示src的属性。
    • 图片格式可选用webp,avif
<img 
  srcset="img-320w.jpg, img-640w.jpg 2x, img-960w.jpg 3x" 
  src="img-960w.jpg" 
  alt="img" 
/>
<picture>
  <source srcset="image.avif" type="image/avif">
  <source srcset="image.webp" type="image/webp">
  <img src="image.jpg" alt="Photo" width="450" height="350">
</picture>
  • 雪碧图将多个小图片合成一个大图 => 如果开启HTTP2,这个问题可以忽略
  • preload/prefetch
  • script 的 defer 和 async

其他优化

  • HTTP2 多路复用特性,使得可以在一个连接上同时打开多个流,双向传输数据
  • gzip 基本可以压缩70%左右,在 response Headers 中查看content-encoding: gzip
  • CDN 外链资源都会部署在 CDN
  • 接口合并
  • 接口缓存,本地缓存
  • webview 离线缓存 PWA service worker 资料: 基础 进阶
  • day.js 代替 moment

优化分析工具,方法

Lighthouse
Performance
报表工具 https://crux-compare.netlify.app/

首屏优化

  • cdn => 减少服务器与用户的距离
  • 接口缓存 =>
  • 静态文件缓存 => service worker
  • 动态加载 => 页面动态加载,组件动态加载,图片懒加载
  • 减少请求数量,如必要,可开启http2
  • gzip压缩
  • 图片格式可选用webp,avif
  • SSR 服务端渲染
内容概要:该论文深入研究了液压挖掘机动臂下降势能回收技术,旨在解决传统液压挖掘机能耗高的问题。提出了一种新型闭式回路势能回收系统,利用模糊PI自整定控制算法控制永磁无刷直流电动机,实现了变转速容积调速控制,消除了节流和溢流损失。通过建立数学模型和仿真模型,分析了不同负载下的系统性能,并开发了试验平台验证系统的高效性和节能效果。研究还涵盖了执行机构能量分布分析、系统元件参数匹配及电机控制性能优化,为液压挖掘机节能技术提供了理论和实践依据。此外,通过实验验证,该系统相比传统方案可降低28%的能耗,控制系统响应时间缩短40%,为工程机械的绿色化、智能化发展提供了关键技术支撑。 适合人群:从事工程机械设计、制造及维护的工程师和技术人员,以及对液压系统节能技术感兴趣的科研人员。 使用场景及目标:①理解液压挖掘机闭式回路动臂势能回收系统的原理和优势;②掌握模糊PI自整定控制算法的具体实现;③学习如何通过理论建模、仿真和实验验证来评估和优化液压系统的性能。 其他说明:此研究不仅提供了详细的理论分析和数学建模,还给出了具体的仿真代码和实验数据,便于读者在实际工作中进行参考和应用。研究结果表明,该系统不仅能显著提高能源利用效率,还能延长设备使用寿命,降低维护成本,具有重要的工程应用价值。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值