千家信息网

如何进行jvm调优以及大数据导出报表优化)

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关如何进行jvm调优以及大数据导出报表优化),文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前言记录下优化一个项目的过程,接手的时候真
千家信息网最后更新 2026年11月03日如何进行jvm调优以及大数据导出报表优化)

这期内容当中小编将会给大家带来有关如何进行jvm调优以及大数据导出报表优化),文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

前言

记录下优化一个项目的过程,接手的时候真的很卡很慢,正常来说不应该这么卡的。但是具体问题还得结合环境各个因素分析。

前端缓存

原因:开始着手优化这个工程,大致上操作了一遍,找到几个特别慢的页面,查看了下浏览器的请求情况。发现了2个接口请求的数据量特别大,在6m左右,6k条数据,在夜间没人使用也需要请求半分钟到1分钟左右,这个2个接口是货物数据,用户货物下框。并且在整个项目中会频繁使用到,使用的人数一多,导致个带宽被拖垮,其他请求的响应也变慢。

方案:在登录之后进入主页面时,就直接请求货物数据,并缓存到浏览器的sessionstorage,修改了货物下拉框,直接使用前端缓存的数据。后续优化了下,在使用下拉框时去检查缓存,没有就请求,并格式化key去缓存对应的数据。优化之后很明显,没有之前那么卡顿了,响应速度也变快了。

文件导出

原因:中间也陆陆续续优化了页面的查询和一些写法,但是都没有太大的影响。直到前阵子,一直反馈特别卡,卡到服务无响应。观察了一段时间,卡顿时,服务器器的内存没有飙高,但是cpu很高。发现出现该情况时导出excel时,就卡死,然后一直无法导出。跑本地还原了下,卡死的原因时取出的数据过大,大概在2w左右,然后需要对这个数据进行poi的格式化成excel,在这个过程中,原设计为了通用处理对数据进行了转json等处理时,内存溢出了。换成直接转换成poi,还是因为数据量过大然后内存溢出了。

方案: 当时的方案有2个:1调大tomcat的内存,2不在服务端处理。嗯,一开始时直接调内存,但是因为我的环境问题一直调不了,没办法超过1g,于是就直接进行了方案2,在前端将数据转换成excel。

方案2,在前端导出的公共处理中,获取要导出的请求数据,然后将数据转换成table的html -》在添加excel 固定的头尾标签 -》 添加a标签,将文件进行输出。 注意需要将文件通过blob处理下不然会下载失败

这里贴下处理的代码

/** * 转换成excel * @param fileName 文件名 * @param excel excel的table html代码 */function exporExcel(fileName,excel){    //excel 文件头    var excelFile = "";    excelFile += '';    excelFile += '';    excelFile += "";    excelFile += "";    excelFile += "";    excelFile += "";    excelFile += excel;    excelFile += "";    excelFile += "";    //构造a标签    var uri = _'data:application/vnd.ms-excel;base64,'        ,fileName = fileName || 'excelexport';    var a = document.createElement('a');    document.body.appendChild(a);    a.hreflang = 'zh';    a.charset = 'utf8';    a.type="application/vnd.ms-excel";    //js 大对象,解决由于数据量太大导致chrome导出出现网络错误(由于url长度限制)    var blob = new Blob([excelFile]);    a.href = URL.createObjectURL(blob);    a.target = '_blank';    a.download = fileName + '.xls';    a.tableBorder = 1;    a.click();    document.body.removeChild(a);}

如果出现excel 中数字过大出现科学计算,添加下style,将格式定义为文本

`` + value + ""+``

方案1: 后面还时折腾了1天多去调tomca的内存,踩了很多坑。百度了很久,在无意间看到一条评论说,是不是我的tomcat 的版本不对,32是无法超过1g的,于是下载了一堆版本的tomcat,其中从官网下载的tomcat-7.0.65.1这个版本开始,加入了url的安全校验是无法使用| {} 等字符的。下载了64位的tomcat还是改不了,可以在conf文件夹中的tomcat-users添加用户,然后启动tomcat,他自带的工程中有manager工程,可以查看tomcat的运行的内存信息和版本信息,或是在bin目录执行cmd命令:version

确认你这里是64位,如果不是64位,1:确认下你的电脑系统是不是64;2 注意,确认下你装的jdk是不是64位的jdk,很重要。我的jdk不是64位,所有这里一直显示我是x86,所以导致调不了内存。还有,如果你跟我一样,电脑装了2 3 个版本的jdk,但是你的环境变量更改了,还是不行的话,那确认下你的环境变量是不是修改正确了,尝试在将path环境变量中把jdk的配置提到前面来,可以执行tomcat的shutdown命令,可以显示当前的jdk使用的时哪个,如果还是更改不了jdk,那就跟我一样修改tomcat 的配置使用指定的jdk。

在windos 环境中修改catalina.bat文件,添加

set JAVA_OPTS=-Xms800m -Xmx2048m

重启下tomcat,通过manager工程进入管理界面,可以查看下是不是修改成功了。

上述就是小编为大家分享的如何进行jvm调优以及大数据导出报表优化)了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

数据 内存 文件 方案 环境 处理 版本 缓存 前端 工程 货物 还是 原因 变量 标签 格式 页面 分析 服务 报表 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技股 湖北九亚互联网络科技有限公司 鸠鸠互联网科技 上海互联网科技有限公司 互联网科技公司官网 互联网金融科技平台 掌上梦互联网科技 四川狮子座互联网科技 互联网科技公司做什么 蓝色互联网科技 洛阳共同富裕互联网科技有限公司 群盈汇互联网科技有限公司 山东子淼互联网科技有限公司 互联网金融科技元年 福建互联网展示科技馆设计 吉林省码上互联网科技电话 美国五大互联网科技公司市值多少 伍佰万互联网科技是干嘛的 知域互联网科技有限公司官网 科技发展第三阶段互联网时代 金融科技创新监管互联网金融 上海万想互联网科技 亿人帮互联网科技 华夏互联网科技业 新兴科技互联网创新大赛颁奖典礼 互联网领先科技宣传片 科技互联网行业投资研究 互联网领先科技活动 米泉互联网科技专业怎么样 山东亿川互联网科技有限责任公司
0