版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

1.请求接口慢,请求时间长,常见于list接口

现象:打开浏览器检查模式(开发者工具),在网络(Network)一栏中,如截图找到接口执行时间,一般来说,单一接口请求时间过长,即为异常,需要处理打开浏览器检查模式(开发者工具),在网络(Network)一栏中,如截图找到接口执行时间进行排序查看,一般来说,单一接口请求时间过长,即为异常,需要处理

处理方法参考第一部分处理方式:参考性能优化处理方式第一部分页面加载速度慢。

2.网络速度慢

查看接口Timing

查看接口的Timing,可以查看到接口加载三个时间段(发送请求,等待服务端响应,下载内容)的时间分布,正常来说应该如下图,等待服务端请求占大部分时间

现象:接口加载时间分布在Content Download下载内容占用时间过长

Image Added

处理方式:客户网络环境问题,联系部署老师与客户网络服务部门进行处理Image Removed

3.接口都不慢,界面慢

现象:(在检查模式中查看,接口都加载完了,界面一直加载动画,页面内容就是出不来?)

Image Added

问题原因:(前端调用了大量负担方法),找个配置示例

页面元数据 hide 方法中使用了以下几种方法(常见于action的hide方法中),会进行变量拷贝,影响前端性能

...

替换方案:使用 SCOPE.advance_query.query_model.data.status

4.sql太多循环调用

举个例子啥现象?

...

打开运营者模式,在sql_trace中,可以查看到当前接口执行的所有sql,例如每个sql前的中括号内是对应sql的执行时间(如下图第一个sql的执行时间是[41.96]),若单一sql执行时间占比长,则为第一点问题的典型现象,参考问题一的处理方式处理

现象:当同一接口内sql执行时间都差不多,执行时间都不算长,但是执行的sql条数特别多时,就很有可能发生了循环调用

Image Added

处理方式:通过运营者模式定位到是sql循环调用问题后,一般来说都是二开接口或云函数问题,联系对应的二开老师处理


二、需掌握的性能优化处理方式

1.页面加载速度慢

主要针对模型列表页或者报表数据源取数慢,导入数据速度慢也可参考2/3/4

...

紧急处理时,可以勾选堵塞任务,通过页面上【结束】按钮,直接结束任务, 但建议要找到对应的任务后,联系开发老师对进行根源问题优化

 

...

 2)查看异步队列情况(计算任务一般是异步队列)

① 通过deploy.agent.celery.status接口,执行查看异步队列执行情况

...

列表查询接口是否添加only_list/only_id/ignore_meta参数

讲一下原理

 1)薪酬考勤数据表取数据尽量不用(讲一下原理1、薪酬考勤数据表取数据尽量不用list,因为数据量过大,在redis取数过多,直接用业务标准提供的包或者接口 / 2、创建数据时不要循环调用batch方法)取数过多,直接用业务标准提供的包或者接口 

 2)创建数据时不要循环调用batch方法

list数据获取原理,sql查询时仅作id查询(主模型+relation关联模型 的数据ID),获取所有id后通过super_mget_dict缓存方式获取id对应的数据对象,如果id不命中,还是会继续穿透查询数据库,当查询大量数据时,对redis和数据库造成的压力较大,一般来讲大量数据获取时,可以仅获取需要的fields,特殊情况下,仅获取id关键属性,加参数only_id控制。

...