首页 > 其他分享 >模板性能问题排查方法

模板性能问题排查方法

时间:2024-12-16 17:42:39浏览次数:11  
标签:插件 缓存 性能 排查 sql 2.2 模板 加载

1. 概述

模板的加载速度受到很多因素影响,如果一个模板预览的时候,加载较慢,该如何去分析问题原因呢?

2. 排查步骤

2.1 查看数据集查询速度

大部分模板加载慢,都是因为 sql 执行速度比较慢。那么如何验证 sql 速度快慢呢?可以使用以下几种方案。

1)在设计器的数据集中直接查询,人为感受 sql 的执行速度-----设计器查询慢可考虑更换驱动。

2)将模板导出为内置数据集进行预览,查看速度是否变快。-----导出内置数据集后预览变快说明是取数环境慢,优化 sql 或数据库性能。

3)安装 性能插件 ,使用平台里的 sql 执行监控功能,查看 sql 执行速度以及执行次数。如果是执行次数过多导致的慢,可以试试 抽数缓存 功能。

1637225611957722.png

4)使用 抽数缓存插件 ,查看速度是否变快。-----开了缓存变快,说明是数据集本身查询速度不佳。

2.2 查看模板结构

排除掉 sql 原因后,接下来就应该分析下,模板元素是否过于复杂,或者有一些不合理的设置。下面列举几类常见的问题设置。

2.2.1 设置过多过滤

如下图所示,第一列为手写,后面的字段重复拖入,且每个都设置了过滤。例子的模板还是最简单的,实际情况下这种结构的模板大多比较复杂,会导致大量的重复计算,影响性能。

8.png

2.2.2 过多的条件属性/过滤/动态参数注入/形态设置

当看到模板中有大量的黄色/蓝色/红色小三角时,就可以得知模板中使用了大量的过滤和判断或是形态设置,势必会影响性能。

9.png

2.2.3 不合理父格设置/笛卡尔积

此类情况通常可以通过修改父格,优化模板结构来解决,可参见:防止填报笛卡尔积

2.2.4 模板中有较大的图片

模板中如果插入了较大的图片、展示了较多的图片,对性能也会有一定影响,可以考虑下述优化:

2.2.5 模板展示的时候格子数量过多

当数据较多或者模板结构较复杂的时候,后台计算模板的时候会产生大量的格子数,前端展示的时候也会比较慢。所以,对于数据量,尽量不要一次展示太多数据,可以考虑分页 sql ,或者使用 新计算引擎

2.2.6 图表过多

大量使用图表会造成前端渲染速度下降,浏览器崩溃,所以设计模板的时候不能滥用图表。

2.2.7 函数的不合理使用

模板中如果使用了较多的sql函数,value函数,数据集函数等,或者sql函数本身执行的速度较慢,也会导致模板预览变慢。

2.2.8 前端样式

大量使用 JS 或者 CSS 语句去修改了模板元素样式,也会对模板性能产生影响。

2.2.9 全局参数

全局参数是不管页面是否调用,都会跟随加载,对加载速度有一定影响

2.2.10 全局水印

全局水印设置是否写了sql函数进行取数,sql函数那边取不到数据或取数慢,所有的模板都有需要等sql函数取数超时之后才能够显示出来,就导致所有的模板预览慢,可以通过关掉全局水印进行测试

2.2.11 sheet名

注意sheet名是固定值还是公式,如果是使用公式,且公式有一些参数计算,可能会影响模板计算速度。

如果是这种情况,可以先将sheet名修改成默认值排查

2.2.12 按钮控件里的参数默认值计算过久

按钮控件控件里的参数默认值也是在初始化时计算的,不是在点击的时候才计算,如果按钮控件里大量调用sql函数,并且计算时间较久,也会对模板加载时间产生影响。比如客户用来实现重置所有控件值的按钮,大量调用sql函数用来计算控件默认值,就对模板计算产生了影响。

1637226435145703.png

2.2.13 空白行

模板中存在空白行可能也会影响速度。

2.2.14 纸张背景

检查模板纸张背景的设置,模板纸张不要设置得过大,且当纸张背景设置为纹理时,可能会影响性能。

可以考虑调整纸张大小设置和更换纸张背景设置。

3. 查看网络请求

1)可以通过F12的Network模块去查看一张模板的所有请求速度,分析是否有时间过长的请求,以及该请求的作用。

1637226527769579.png

2)鼠标悬浮Waterfall可以看到请求各个阶段的时长。如果一个请求时间过长,可以先排查下是否由于做了映射导致。

1637226571696346.png

1637226578120145.png

3)Size列可以识别相关资源是否从缓存读取。从缓存读取的资源一般不会影响性能。

15.png

4. 其他设置

1)日志级别

降低日志级别,比如可从debug调整成error。

2)数据库是否外置

内置数据库性能较一般,可以考虑将finedb数据库外置。

3)根据并发数调整中间件(比如tomcat)的线程数、业务数据库的连接池。

4)关闭平台缓存中的「总是重新读取模板」按钮。

17.png

5)安装 性能插件

6)安装 抽数缓存插件 :如果模板访问情况是仅首次访问慢,可以考虑安装抽数缓存插件进行优化

7)报表分页组件插件 导致。

现象:

  • 报表数据量大,模板加载时间长

  • 参数面板加载很久

对于数据量大的报表,连参数面板都一直加载不出来的话可以考虑是「报表分页组件插件」导致的,此插件计算把页面计算逻辑放在了最前面,从而导致模板加载时间远远超出sql取数时间。

5. 总结

模板的加载,需要经过取数、计算、渲染等阶段,每个阶段都会有影响速度的因素,所以需要依次排查。在排查过程中,可以使用二分法,尽量减少模板元素,定位到对性能影响最大的部分。

标签:插件,缓存,性能,排查,sql,2.2,模板,加载
From: https://www.cnblogs.com/shuiyirar/p/18610753

相关文章

  • 实验六 模板类,文件I/O和异常处理
    任务4代码:Vector.hpp:1#pragmaonce2#include<iostream>3#include<stdexcept>4#include<cmath>56usingnamespacestd;78template<typenameT>9classVector{10public:11Vector(ints):size{s}{12......
  • 在一个svg里进行大量线段的绘制,请问有没有什么可以提高性能的办法,类似 winform里的Sus
    在前端开发中,尤其是在处理SVG图形和大量线段绘制时,性能优化是非常重要的。虽然不像WinForms中的`SuspendLayout`和`ResumeLayout`那样直接控制布局更新的暂停与恢复,但在Web环境中也有多种方法可以提高SVG渲染性能。以下是几种常见的优化策略:###1.使用批量更新尽量减少DOM操作......
  • jstack排查问题
    1、先拿到tomcat进程IDps–ef|greptomcat记录下tomcat应用进程的ID:30027(我拿到的是这个值)2、拿到CPU占用最高、时间最长的线程ID#显示进程号为30027的进程信息,CPU、内存占用率等,top-H-p 30027当然这一步你也可以使用以下这个命令,显示特定PID下全部线程列表,以定位......
  • sylar高性能服务器框架:CMakeLists.txt文件解析
    完整代码先给出完整CMakeLists.txt文件,复制到IDE里面,方便对应行号。注释部分其实和没备注的语法之类的都是一样的,对照例子看就明白了。(下面代码先不用看,直接跳下一节)cmake_minimum_required(VERSION3.0)project(sylar)#add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR......
  • Send_Email:一款轻量化可定制模板的邮件批量发送工具
    免责声明本工具仅供学习、测试及研究使用,严禁用于任何形式的非法或未经授权的用途。如因违规使用导致任何后果,责任自负,请遵守相关法律法规。以下文章来源于薛定谔的安全,作者iak3ecSend_Email:一款轻量化可定制模板的邮件批量发送工具|可用于攻防钓鱼或其他邮件个性化的场景......
  • 阿里云联合中国信通院等单位发布首个云计算智能化可观测性能力成熟度模型标准
    随着云计算技术与现代企业技术架构的飞速发展,IT运维场景愈发多元与复杂,需要观测的对象、观测数据类型、数据规模、数据结构复杂度相较于传统监控发生了翻天覆地的变化。这给企业可观测性的准确、实时、高效与智能化发展带来了巨大挑战。如何借助大模型等智能化技术成为应对云计算......
  • 前端性能的提升可以分为哪些类?
    前端性能的提升可以分为多个类别,以下是一些主要的分类:加载优化:减少HTTP请求数:通过合并JavaScript、CSS文件,使用雪碧图(CSSSprites)等技术来减少请求次数。压缩资源:压缩JavaScript、CSS和HTML文件,以及优化图片大小,来减少文件体积,加快加载速度。CDN加速:利用内容分发网络(CDN)将......
  • 上拉加载和下拉刷新会遇到什么性能问题?
    上拉加载和下拉刷新在前端开发中确实可能会遇到一些性能问题。这些问题主要涉及到页面渲染、数据加载以及用户体验等方面。以下是对这些性能问题的详细分析:页面渲染性能问题:当用户进行上拉加载时,如果新加载的数据量较大,或者数据加载后需要进行的DOM操作较复杂,可能会导致页面......
  • HarmonyOS Next 应用性能优化实战
    本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)中应用性能优化的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者。一、性能评估指标与工具......
  • 如何在易优CMS中调试新模板?
    在易优CMS中调试新模板是一项重要的任务,以确保新模板能够正常工作并且不会影响网站的其他功能。以下是一些详细的步骤和建议,帮助你在易优CMS中调试新模板:备份现有数据:在开始调试之前,务必备份现有的数据库和文件。这样即使在调试过程中出现问题,也可以快速恢复到原来的状态。......