问题表现

在使用Easyexcel进行excel文件导出时,遇到了一个问题:程序启动后,第一次执行导出时耗时非常久,哪怕只有个位数的记录。

原因挖掘

通过追踪代码执行耗时情况,定位到是EasyExcel引用的poi SheetUtil.getDefaultCharWidth耗时长。如下图所示:

继续深入debug poi 代码后发现原因为:

容器启动后第一次执行导出excel文件时,会触发程序装载字体,系统中的字体越多,这个装载的过程就越耗时,装载完成后才会继续执行导出的代码。

环境

poi-5.2.2.jar
jdk 1.8.0_202








解决办法

为了解决第一次导出时加载字体较为耗时的问题,比较直接的想法是可以在容器启动后,主动调用一次创建字体的过程,将触发字体装载的过程前置。

EasyExcel第一次导出文件耗时长的问题相关推荐

  1. feign 服务启动后加载 避免第一次调用超时 及第一次调用耗时长

    版本:feign-core 9.5.0   spring-cloud-starter-openfein 1.4.6 第一次调用耗时的原因-懒加载:1.spring mvc servlet;2.ribb ...

  2. 【优化SQL Server循环更新、插入耗时长的问题】

    一: 工作当中遇到更新较多数据时,使用循环(while,或游标)进行增删改时,特别费时 WHILE @i <= @rows BEGIN SELECT @appNo = AppNumber, @r ...

  3. 在Java中如何准确定位耗时长的方法

    场景说明 我是在使用Spark的时候出现某个task一直不结束或者尤其慢的问题,一开始猜测是数据倾斜问题,后来发现是某类数据会导致在调用正则匹配时出现耗时特别长的情况. 定位思路 使用Arthas的p ...

  4. 增加自增列 耗时长_又一批长事务,P0故障谁来背锅?

    原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处. 最近几周,发生过多起因为事务问题引起的服务报错.现象为数据库连接池连接占满,数据库连接长时间等待,最终导致请求线程hang ...

  5. oracle的commit耗时长_oracle-2中commit 详解

    它执行的时候,你不会有什么感觉.commit在数据库编程的时候很常用,当你执行DML操作时,数据库并不会立刻修改表中数据,这时你需要commit,数据库中的数据就立刻修改了,如果在没有commit之前 ...

  6. HttpClient 调用耗时长服务问题记录和处理方案

    问题 java.net.SocketException: Connection reset 现象 第一次请求,可能成功,可能失败,但是从第二次开始一直失败,隔断时间再次访问,可能成功,可能失败,连续请 ...

  7. druid连接池参数配置不当引起接口耗时长

    负责的消息中心推送服务出现接口耗时较长的现象,结合链路系统排查,发现在获取数据库连接这一步耗时很久 查看应用的数据库连接池监控,发现 连接池中的连接数变化频繁,有偶尔的等待连接的情况(与上述接口耗时慢 ...

  8. oracle的commit耗时长_ORACLE COMMIT操作的详解

    通常对undo有一个误解,认为undo用于物理地恢复到执行语句或事务之前的样子,但实际上并非如此.数据库只是逻辑地恢复到原来的样子,所有修改都被逻辑地取消,但是数据结构以及数据库块本身在回滚后可能大不 ...

  9. easyExcel/poi导出文件Can not close IO,This archive contains unclosed entries

    easyExcel或poi导出文件时发生com.alibaba.excel.exception.ExcelGenerateException: Can not close IO,或者java.io.I ...

最新文章

  1. 关于SQL命令中不等号(!=,)
  2. 12、HTML DOM
  3. 从无到有算法养成篇-栈和队列·栈
  4. (chap8 确认访问用户身份的认证) 基于表单认证
  5. Python之IO模型
  6. linux下gdb单步调试
  7. 2018-1-27:内存的划分
  8. 无心剑中译奥修《奥修对爱与婚姻的印象》
  9. 使用RegularExpressionValidator验证(转)
  10. java 中括号中的语句,Java中是使用大括号括起来的语句块,用于完成一个相对独立的逻辑功能,这种语句被称作()。...
  11. 计算机专业考研不想走编程,考研的这些弯路,不要走,好吗?
  12. 海康威视Linux下SDK开发(Ubuntu16.04 QT5.10)
  13. iOS手机模拟器配置
  14. 思科交换机和路由器的配置
  15. 七月阅读:《刘慈欣科幻短篇小说集Ⅰ》笔记
  16. 深扎实战技术 带你走进 MDCC 2016 移动开发者大会
  17. PHP如何启动scrapy,python,_新手Scrapy爬虫运行问题,python - phpStudy
  18. sequence、sequencer等
  19. 网易微博将正式关闭 用户迁至轻博客LOFTER
  20. uniapp封装多图上传

热门文章

  1. 拿好这份踏青攻略,智慧出游领略大好河山!
  2. IE浏览器故障及其解决方法
  3. Vue3使用Swiper
  4. 转一篇经典音响文章《“摩机”宝典之如何“摩功放”》
  5. mysql 介绍 怎么下载 驱动jar包 各种细节问题大详解
  6. Wind River Linux
  7. 【论文阅读笔记】Multi-Task Feature Learning for Knowledge Graph Enhanced
  8. python第三方库集锦
  9. python函数初体验
  10. 去掉连接图片的虚线框