乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > excel poi 内存

excel poi 内存

作者:乔山办公网日期:

返回目录:excel表格制作

Java服务,内存OOM问题如何快速定位?


要快速定位无非就三步:dump内存文件,内存分析工具生成内存泄露分析报告,根据报告到代码中分析相关代码;


1.dump内存文件

./jmap -dump:format=b,file=heap.hprof pid


2.内存分析

常用的内存分析工具如:MemoryAnalyzer,jprofiler;工具会帮助我们快速的生成一份内存泄露分析报告,大致如下所示:

可以根据上面的问题描述去相关代码中,然后进行代码分析;


3.代码分析

在代码分析之前,我们大概理一下都会有哪些情况出现OOM;大体上可以分为几类类情况:JVM本身分配的内存过小,分配的内存不小代码可优化,分配的内存不小存在内存泄漏;


1.JVM本身分配的内存过小

这种情况一般比较少见,一般配置内存至少1G内存以上;常见的比如查询数据库几十条,上百条数据内存就不够用了,加内存可以立马能解决问题的;


2.分配的内存不小代码可优化

这种问题就比较常见了,内存本身配置的并不小,但是出现OOM;

常见的比如以下查出几千上万条数据库记录,导致内存不够用,这种情况可以分批次查询;

本地缓存,但是没有提供清除策略,导致内存越来越大,这时候需要指定清除策略比如lru策略;

导入一个文件比如excel,一下全部加载到内存中,导致内存OOM,这时候可以换一种读取的方式,通过流读取方式;


3.分配的内存不小存在内存泄漏

这种问题就比较难发现了,开发者任务应该清除的内存并没有清除,一直存在内存中,导致数据越积越多,最终导致内存OOM;常见的比如hashset因为修改计算hash值的数据导致内存泄漏;


本人之前遇到过的内存溢出分析实战:

Poi读取Excel引发的内存溢出

https://www.toutiao.com/i6748971979136565764/
本文标签:

相关阅读

  • excel poi 内存

  • 乔山办公网excel表格制作
  • Java服务,内存OOM问题如何快速定位? 要快速定位无非就三步:dump内存文件,内存分析工具生成内存泄露分析报告,根据报告到代码中分析相关代码; 1.dump内存文件 ./jmap -dump:format=b,
关键词不能为空
极力推荐
  • excel怎么筛选-EXCEL中如何使用自定义筛选!

  • 施老师:EXCEL功能十分强大,我们有时碰到长篇大论数据的表格,想要寻找其中某个属性的数据,就要用到筛选,筛选功能十分方便,不仅可以寻找某个值的数据,还可以在数据的范围如

ppt怎么做_excel表格制作_office365_word文档_365办公网