小编我好久没发帖了,几个项目同时在开工状态,虽然辛苦,但还是比较顺利的,
正好今天我们协同帆软官方一起解决了一个关于大屏效率的问题,我觉得应该拿出来分享一下,
毕竟在日常工作中,大屏的制作还是比较普遍的,实用且炫酷的大屏展示,无论对于IT部门还是公司管理层,
都是体现实力和价值的!
设想一下:你的做的大屏,很美观,很炫酷,但是需要刷新等待3分钟才能显示出数据,
你和领导是不是各种黑线 ̄□ ̄||
都不要说3分钟了,对于期待看到它的人,多1秒都是煎熬!!!
ok,言归正传,我们把我们经历的过程详细说明,希望对番薯们能有所帮助!
来!!开课!!
一、项目背景:
这是我们客户的某业务大屏,做为各分支机构系统登录后展示首页,展示界面具有较多的核心指标,能及时直观的反应分支机构各业务基本状态。
下图为展示界面效果图:
二、初期上线后
由于此界面为默认首页界面,当用户登录系统时,默认即加载展示此界面。
1、 业务:用户登录时,默认加载此界面会直接导致系统CPU与内存占用资源猛增, 致使系统严重卡顿甚至直接宕机,导致用户查看需要2-3min甚至无法正常使用系统。 2、 数据:存在明细查询数据,且部分数据来源于多个系统,数据计算集合堆积且拥有大量的无效列查询, 导致数据查询时间很长,维护过程中成本很高,寻找展现内容的对应数据来源很麻烦, 最终的执行时间在1min左右。 3、 设计:为实现展现效果,大量的简单粗暴堆积组件,将数据与计算逻辑放置于前端的单元格内部, 单元格彼此的数据引用很多,难以追踪数据处理与展现流程,极大的增加了后期的维护成本, 并且大量的压力积于前端导致最终的展现性能低下,整体处理时间在1-2min左右。
三、基本调整:
由于上线无法预览且影响系统的正常使用,此界面暂缓上线,并由瑞诚实施人员进行优化调整,而由于初期项目时间紧张,无法进行完全的整合重构, 只能进行基本的调整。
1、 数据:原始数据部分来源于sapbw的query,插件使用过程中性能差劲,描述无法读取,数据集参数值公式不生效, 同一query多次使用数据错乱等问题,在于帆软官方技术支持沟通过程中逐渐解决, 并依据数据计算逻辑指标进行了query的结构调整,缩减了query数据集合数量, 最终在启用缓存后界面有一定的性能提升。 部分sql数据计算集合也做了简单的整合优化,缩减集合数量。 2、 设计:缩减组件数量,调整布局,缩减单元格数据计算引用层级,将原始的多次层级引用缩减到1-2级, 最终的展现时间维持在1min半左右。
四、重构优化:
由于实际展现性能与客户期望差距太大,且系统资源占用仍然较为严重,影响系统的正常使用,最终决定对此进行完全的重构优化。 之后我方实施团队和客户项目经理与帆软官方进行了充分的沟通,最终在官方的大力协助之下,完成了此过程:
1、 业务:重构优化之后的大屏,用户登录后所需预览时间在1-2S左右。 2、数据:来源于多个系统的数据通过数仓进行了整合, 将sapbw的query数据通过帆软的定时填报功能定时同步到hana数据库中使用, 保持数据仓库的统一性和一致性,sql数据集部分施行了查询和命名的规范化处理, 对相应部分处理内容增加描述性注释,便于后续的维护,并且对展现的数据计算指标做了查询整合, 将归属于同一模块的多个数据集合合并为一个,最终在整合完成之后由原始的50+数据集合并为10多个, 从而尽量将大部分数据计算的压力都放在数据库端,提升数据计算性能。 3、设计:使用模块化的设计方式,将整合之后的数据结果直接放置于对应的展示位, 避免单元格间多层级的跳转引用和依赖于前端的数据计算,极大的提升了性能与可维护性。
五、分享心得:
1、数据:数据仓库是企业数据应用的重中之重,统一的数据仓库不仅提高了管理效率、数据质量 , 降低了维护成本,还在同时提升了易用性和灵活性,强大的数据仓库对与数据展示来说是如虎添翼, 而统一的数据仓库也是数据应用与展示的基础。数据查询集合应避免简单粗暴的堆叠, sql的规范化和结构化的处理可以极大的降低维护成本,易用性,并且提升查询与展现性能, 便于前端的数据展示。
2、设计:界面设计遵循模块化设计理念,分布局、分重心、分展示内容的进行区域性模块化的设计, 展示数据尽量直接来源于某个数据集的某个数据指标。 避免界面上的多次引用和计算,以此提升性能与可维护性,为前端展示带来更好的用户体验。
好了,看完这篇文章,是不是对于大屏在制作过程中的效率问题有了初步的认知?记得点赞哦!!比心~~
编辑于 2018-9-12 10:51
|