白日梦 / 性能优化

2023-06-14

早上还没到闹钟响的时间貌似就醒了,遂想继续睡回去。这睡回去之后我貌似做了一些不太好的白日梦,内容大概和我送修差不多一个星期的 iPad 有关系,好像他彻底没救了,3800 彻底打水漂了!虽然没醒来,但我能感受到在梦中的我是有多难过喔!

醒来看了下淘宝,对方还没有开始修我的机器,悬着的心暂时给松开了,也不知道情况最终会如何,接下来持续关注...

回到今天的工作,和上级说明了下情况,大概就是他愿意让我尝试下改善会议项目的渲染性能。我打算从我最熟悉的设备管理部分开始重写,从 React Provider 转 Zustand,然后简单做一些性能测试,对比一下状态更新后重绘的总耗时,理论上是越短越好,毕竟 Diff 的元素确实是变少了。

简单对比了下是没有什么问题的,而且还有一些别样的方式去进行性能优化,例如可以使用 Zustand 的 getState 方法获取实时的状态。在调用一些功能性函数的时候,就不需要通过 React State 的方式获取值,减少了整体重绘的可能性。

const onAudioError = () => {
  const { failReason } = useDeviceStore.getState();

  if (!failReason.audio) {
    return;
  }

  // 无设备接入
  if (failReason.audio.type === 'null') {
    message.info("没有设备");
  }
  // 无权限(可能是系统也可能是浏览器)
  else if (failReason.audio.type === 'denied') {
    message.info("浏览器未授权");
  }
};
小雨 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君