优化SpringBoot项目优化导出图片为zip格式接口过程总结

本文总结了在SpringBoot项目中优化导出图片为ZIP格式的接口过程,通过降低数据库交互和利用BufferInputStream提升效率,将导出时间从5.5秒降至2.5秒。未来可能考虑使用Channel进一步优化。
摘要由CSDN通过智能技术生成

记录优化SpringBoot项目优化导出图片为zip格式接口总结


问题分析:第一次接口导出时间大概为7s左右。我的想法是从接口出发,慢慢到了service层,我发现service层在和dao层交互的时候花了挺多时间的。仔细一看,service去dao层查询数据的时候(与数据库打交道的用的是JPA),请求了很多次数据库。他把查询数据库的方法放在了for循环里面。这样就浪费了很多时间。

我的解决方案:降低与数据库之间的交互,一次取出我所需要的数据。然后我修改查询sql,将与数据库的交互降低。

问题分析2:经过上面的修改,接口导出时间降为5.5秒左右,较之前快一点点。这还是没有达到我的要求,我继续寻找问题所在。我发现在该项目的导出工具类中用的是InputStream 和 servletOutputStream,没有任何的包装。

我的解决方案:进行优化首先想到的是利用缓冲区 BufferInputStream。在 FileInputStream中 read()方法每次只是读取一个字节。用BufferInputStream可以一个读取多个字节,降低与磁盘的交互次数。部分代码片段如下:

for (int i = 0; i <  循环次数; i++) {
   
                try 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值