首页 > 其他分享 >性能跟踪

性能跟踪

时间:2022-12-24 17:31:32浏览次数:34  
标签:name form 渲染 性能 接口 跟踪 id 请求

前端性能点

渲染
mvvm, ssrc

请求
request, 服务器

 

 

渲染优化

action(批量界面渲染)

runInAction vs setState(batchUpdate)

runInScenario

this.form.select('name').value = 'x'


runInAction(()=>{

this.form.select('name').value = 'xx1'; //setState
this.form.select('code').value = 'xx1'; //setState
...
})


this.form.select('code').value = 'x


//async
this.form.select('name').value = 'x'

 

jQuery

addClass

my-border{

border:xx

out-line:xx

}

 

fragment .html(xxxx)

 

eca 列规则

行规则

性能跟踪_前端性能

 

列规则

 

性能跟踪_页面渲染_02

 

  1. 不用每行初始化
  2. 根据所有行信息一次运行(通过 computed 机制可以缓存结果)

 

computed(()=>{

// 纯函数

// 可预测

// 检测输入

// ....

return xxx;

})

 

reactive(
()=>data,
data=>{
// side effect
},
{
fireImmediately: true
}
)

 

内存

disposer, 及时释放

 

setTImeout()// return

useEffect()//return

reactive()//return

 

请求优化

> 合并请求

批量接口

前端批量gql

{



d1: ProductBatch(criteriaStr:"", sorts: [{name: "id", isDesending: false}]){
id
}
d2: ProductBatch(criteriaStr:"", sorts: [{name: "id", isDesending: false}]){
id
}
d3: ProductBatch(criteriaStr:"", sorts: [{name: "id", isDesending: false}]){
id
}

}

后端直接给出批量接口

许多的 batch 接口

性能跟踪_前端性能_03

 

并发请求

//js
promise.all([])

 

//go
promise_util.PromiseAll(
promise_util.PromiseItem{
Executor
Resolve
},
promise_util.PromiseItem{
Executor
Resolve
}
)

 

 

 

注意点

回写赋值问题

返回的内容是否严格排序的数组;

如果是 map 类型, 需要有唯一标志;

 

response.data = [
data: [
{},
{},
{},
]
]

 

map 和 array 的排序可能会不一致

跟踪

 

目前前端的性能问题主要集中在两大块

 

  1. 页面渲染
  2. 接口请求

 

页面渲染

大数量表格的渲染, 主要依托 mst 和 grid 进行的海量数据渲染

 

目前平台的方案为 virtual-grid, eca 方面有列规则 等

 

接口请求

单个请求如果时间过长, 一般优化重点在后端;

前端的优化重点主要在接口串行上;

 

如果有多个请求的情况下, 并且相关的接口没有依赖关系, 那么我们需要将这些接口进行并发请求处理;

 

跟踪&debug

chrome通用方式

控制台 performance

lighthouse

当前的平台方案

前端

打开开关, 执行

sessionStorage.setItem('__77hub_pref_debug__', 'true')

这样所有的前端请求, 在控制台会打印具体的接口请求信息(包括时间, 调用栈等)

可以根据打印的信息, 进行对应的优化处理;

 

go

go中如果需要具体的日志打印, 如下, 需要增加 perfLog 方法;

默认 在很多的地方增加了埋点; 比如 blank 方法;

性能跟踪_页面渲染_04

 

 

eca

eca 支持列规则, 如果要平台自动支持列规则,将符合条件的规则进行列规则转换的话. 可以采用以下方案

 

在对应文件中配置 trek/services/form-services/middlewares/biz-rules/imperative-white-list.go 对应的 entity

性能跟踪_服务器_05

 

 

 



标签:name,form,渲染,性能,接口,跟踪,id,请求
From: https://blog.51cto.com/u_15216354/5967410

相关文章

  • C++11:返回值类型后置(跟踪返回值类型)
    返回值类型后置语法,是为了解决函数返回值类型依赖于参数而导致难以确定返回值类型的问题。有了这种语法以后,对返回值类型的推导就可以用清晰的方式(直接通过参数做运算)描述......
  • Vue + SpreadJS 实现高性能数据展示与分析
    Vue+SpreadJS实现高性能数据展示与分析在前端开发领域,表格一直都是一个高频使用的组件,尤其是在中后台和数据分析场景下。但当一屏展示数据超过1000条数据记录时,会出现......
  • WPF 制作高性能的透明背景异形窗口(使用 WindowChrome 而不要使用 AllowsTransparency=
    在WPF中,如果想做一个背景透明的异形窗口,基本上都要设置 WindowStyle="None"、AllowsTransparency="True" 这两个属性。如果不想自定义窗口样式,还需要设置 Background=......
  • 基于YOLOv5实现集装箱检测跟踪
     首先展示下效果(cpu下),电脑配置如下,win10操作系统   最终的效果   下面进入实际操作1.安装anaconda与pycharm(不会可以百度下)2.运行anaconda 3......
  • 高性能web服务器nginx和反向代理
    高性能web服务器——nginx一、 简介1. nginx是什么?l 是一个使用c语言开发的高性能的http服务器和反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。l 是俄罗斯的程序设......
  • 软件性能测试常见指标。在哪里测试测试?
    软件性能测试是指测试I程师运用各种自动化测试工具在正常、峰值或者特殊异常情况下对系统软件进行测试,以检测系统的性能指标。性能测​也被称为多用户并发性能测试,负载测试......
  • 软件性能测试常见指标。在哪里测试测试?
    软件性能测试是指测试I程师运用各种自动化测试工具在正常、峰值或者特殊异常情况下对系统软件进行测试,以检测系统的性能指标。性能测​也被称为多用户并发性能测试,负载测试......
  • 性能优化的技巧
    1.索引优化。增加准确的索引是最简单有效的方式。2.sql优化。sql优化也是尽量优化的使索引生效。3.代码优化,避免循环查询库,sql优化无法解决的尝试在代码中组装数据。4.......
  • FIO磁盘性能测试工具
      简介一般我们测试硬盘或者存储的性能的时候,会用Linux系统自带的dd命令,因为是自带命令,简单易使用,因此一些客户喜欢使用dd命令来测试磁盘的读写性能。但是用dd命令来......
  • 华为云CDN通过全站加速引领网站性能全面优化​
    华为云CDN通过全站加速引领网站性能全面优化​全球58.4%的人口使用社交媒体,人们平均每日使用时间为2小时27分钟(数据来源:SmartInsights,2022年1月),实时、交互和自适应的动态......