当前位置: 首页 > 知识库问答 >
问题:

springboot - 大文件后端处理慢,前端展示慢,优化方案?

巫马承德
2023-07-05

目前一个项目,有展示图表功能,一条计算(有很多计算,结果跟初始设置参数相关)大概几千个case,每个case结果文件类似csv,大概300-500MB。
因为文件较多且较大,直接存OSS对象存储。
现在处理逻辑,根据前端参数,下载相应case文件,然后解析成json,返回前端进行展示。
但整个过程相当慢!
有啥好的优化方案?

共有3个答案

羊舌炯
2023-07-05

那就做异步处理呗

景安翔
2023-07-05
  1. 针对前端参数进行过滤:由于每个计算有很多 case,如果前端没有必要下载所有 case 的结果文件,可以考虑针对前端参数进行过滤,只下载需要的结果文件。这样可以减少下载的数据量,提高下载速度。
  2. 压缩结果文件:由于结果文件比较大,可以考虑对文件进行压缩,减少传输时间和存储空间。常见的压缩格式有 gzip 和 zip 等,可以根据实际情况选择合适的压缩格式。
  1. 使用缓存:对于频繁访问的结果文件,可以使用缓存技术,将文件缓存在本地或者 CDN 上,减少重复下载时间。
  2. 对解析过程进行优化:如果解析过程是瓶颈,可以考虑对解析过程进行优化。例如,可以使用流式解析,逐行解析结果文件,而不是一次性加载整个文件。另外,如果使用的是 JavaScript 解析库,可以考虑使用 Web Worker 进行解析,将解析过程放到另一个线程中,避免阻塞主线程。
富涛
2023-07-05

数据预处理,分片,压缩,缓存

 类似资料:
  • 总共有1000条信息展示,我现在想到的是在前端使用轮询来解决,有没有更好的方案来解决网络慢数据大,我应该在后端怎么处理

  • Java POI 打开大文件时太慢了有没有优化的办法 打开一个大文件要很久,有没有优化的办法

  • 我有一个批处理任务,从SQLServer读取记录并写入MARIADB。尽管我在批处理过程中实现了分区的概念,但该过程非常缓慢 下面是源系统和目标系统的数据源配置。 以下是配置的步骤和分区步骤 用读者和作者更新帖子 有人能介绍如何使用Spring Batch提高读写性能吗?

  • 我使用的是Guidewire开发工作室(基于IntelliJ的IDE),在处理大文本文件(~1500行及以上)时速度非常慢。我也尝试了一个开箱即用的社区IntelliJ,但遇到了同样的问题。 当我打开这些文件时,键入一个字符需要 1 秒,即使我清楚地看到使用的内存仍然足够 (1441 MB/3959 MB)。此外,如果我打开多个文件,它会迅速吸收所有内存(我只为 IntelliJ 分配 4GB)。

  • 由于后端接口不规范,返回的数据格式不统一,导致前端公共组件e-table接口里接收数据时要用多个||进行判断,这样写有一定的风险。 如:关于data.content.iTotalRecords,data里面可能没有content,故data.content.iTotalRecords就有可能发生错误。 希望代码能别出错,并且能在优化一下代码

  • 针对Postgres数据库的某个索引SELECT查询所花费的时间非常可变--从50毫秒到多秒,有时甚至是几分钟,即使在最轻的负载下也是如此。 你能为26秒的差距提出一个解释吗? 关于并发的注意事项:即使只有一个请求也有很大的可变性:端到端50-300毫秒,但是当一个用户提交一批大约100个这样的查找时(可能有10-20个同时运行),很可能有几个查找需要5-10秒。然而C3P0的统计数据从来没有比: