java內存優化之poi,內存緩存java

本文目錄一覽:

java 使用POI3.7 HSSF 報表導出內存溢出問題

這個主要是excel表格版本的問題2003是有限制的65535,用2007的能導一百萬數據,不過內存需要適當的設置大點

java poi 生成Excel 速度非常慢,求優化方案?數據才到2000左右的時候就開始變慢了。。

發現你問題的所在了,你把過多的可重用的東西卸寫在了循環內

HSSFCellStyle cellStyle = wb.createCellStyle();

HSSFDataFormat format = wb.createDataFormat();

cellStyle.setDataFormat(format.getFormat(“@”));

// HSSFRow row = sheet.createRow(i+2);//這句不可重用

HSSFCell policyNoCell = row.createCell((short) 0);

policyNoCell.setCellStyle(cellStyle);

policyNoCell.setCellValue(new HSSFRichTextString(rs.getString(3)));//這句不可重用

你這個完全可以卸載循環外啊,creat這麼多,肯定占內存

就算你有多個style,你也可以只需要creat一次,然後反覆調用就好了

切記,以後再代碼設計中,一定要考慮最大可能的重用,而不是每次需要去創造(new()、crate什麼的),這是一種思維,祝你好運

java excel poi 大數據量50W 內存溢出

50W數庫EXCEL打開也有難度,建議導入CSV格式文件,或分多個文件。

關於內存溢出,注意以下幾點:

1,分頁分批從資料庫里查詢數據。

2,注意變數的釋放,特別是LIST和MAP之類的引用,如果定義成全局變數或靜態變數就會很難釋放。

3,調大虛擬機內存大小。

Java中的POI他是幹嘛的可以做什麼

這個是一個用於操作EXCEL和WORD的工具包,不過貌似開發團隊解散了,一直沒有更新,對WORD的支持不是很好,建議還是使用ITEXT之類吧

java poi進行百萬級數據導入 導出 時的瓶頸在哪?又該如何優化?

POI使用Workbook在內存中生成整個文檔, 因此到了百萬級數據時瓶頸處於內存.

優化方式通常有以下幾種方法:

買內存條加大電腦內存

限制每個文件大小, 數據量大時根據最大數量進行分割.

java 用POI處理比較大的word和excel文檔。

用它的底層介面,EVentModel來操作會比較省內存,但代碼寫起來比較麻煩。9M左右就內存溢出的話,應該是你設置的Heap size太小了。增大Heap的大小也是必須的。

如果是xls的,用JExcel會比POI省內存。但它不支持2010。

原創文章,作者:ZFTP,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/139336.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZFTP的頭像ZFTP
上一篇 2024-10-04 00:22
下一篇 2024-10-04 00:22

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean載入過程

    Java Bean載入過程涉及到類載入器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean載入的過程。 一、類載入器 類載入器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Python創建分配內存的方法

    在python中,我們常常需要創建並分配內存來存儲數據。不同的類型和數據結構可能需要不同的方法來分配內存。本文將從多個方面介紹Python創建分配內存的方法,包括列表、元組、字典、…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論