乐趣区

关于java:我所知道报表之POI百万数据处理概述

一、概述


咱们都晓得 Excel 能够分为晚期的 Excel2003 版本(应用 POI 的 HSSF 对象操作)和 Excel2007 版本(应用 POI 的 XSSF 操作)

两者对百万数据的反对如下:

Excel 2003:在 POI 中应用 HSSF 对象时,excel 2003 最多只容许存储 65536 条数据,个别用来解决较少的数据量。这时对于百万级别数据,Excel 必定包容不了。

Excel 2007:当 POI 降级到 XSSF 对象时,它能够间接反对 excel2007 以上版本,因为它采纳 ooxml 格局。

这时 excel 能够反对 1048576 条数据,单个 sheet 表就反对近百万条数据。

但理论运行时还可能存在问题,起因是执行 POI 报表所产生的行对象,单元格对象,字体对象,他们都不会销毁,这就导致 OOM 的危险。

二、直观察看百万数据量性能


即便 Excel 2007 能够反对 1048576 条数据,但为了防止 OOM 的危险。

咱们这里介绍一下 JDK 提供的性能监控工具:Jvisualvm

咱们能够应用 Java 的性能监控工具来监督程序的运行状况,包含 CUP, 垃圾回收,内存的调配和应用状况,这让程序的运行阶段变得更加可控,也能够用来证实咱们的揣测。

三、Jvisualvm 概述


JVisualVM 是 Netbeans 的 profile 子项目,已在 JDK6.0 update 7 中自带,可能监控线程,内存状况,查看办法的 CPU 工夫和内存中的对 象,已被 GC 的对象,反向查看调配的堆栈。

四、Jvisualvm 的地位


Jvisualvm 位于 JAVA_HOME/bin 目录下,间接双击就能够关上该程序。

如果只是监控本地的 java 过程,是不须要配置参数的,间接关上就可能进行监控。

首先咱们须要在本地关上一个 Java 程序,例如我关上员工微服务过程,这时在 jvisualvm 界面就能够看到与 IDEA 相干的 Java 过程了:

五、Jvisualvm 的应用


Jvisualvm 应用起来比较简单,双击点击以后运行的过程即可进入到程序的监控界面

参考资料


黑马程序员:基于 SaaS 平台的 iHRM 刷脸登录实战开发(报表相干视频)

退出移动版