ファイルからたくさんのデータを読み込んで、それをExcelファイルに書き込むコードがあります。問題は、データがヒープサイズの限界を超えたときにメモリ不足の例外が発生することです。ヒープサイズを増やしてみたところ、プログラムは正常に実行されました。しかし問題は、私のマシンにはRAMが限られていることです。ヒープに巨大なスペースを捧げると、マシンは非常に遅くなっています。だから、私のコードを実行するために私のヒープサイズを増やす必要がないように、データのいくつかの限界を処理した後にメモリを解放する方法はありますか?私はこの種のものに比較的新しいので、いくつかのアイデアを提案してください。避ける方法エクリプスでヒープサイズを増やさずにメモリ不足例外が発生する
答えて
このような場合は、コードの再構成が必要になります。小さなバッファを作成し、データを読み込み、処理してExcelファイルに書き出します。次に、次の反復を続け、同じバッファーに読み込みます。
もちろん、使用しているExcelライブラリは、このように動作する必要があり、ファイル全体を一度に書き込む必要はありません。
私は、JXL APIはこの種の限られたバッファ機能を提供していると思います。これはオープンソースのAPIです。 http://jexcelapi.sourceforge.net/
DirectByteBufferをBuffer.allocateDirect(byteSize)で使用できます。またはMemoryMappedFileの場合、ヒープメモリからメモリ空間を使います。
しかし、直接バッファを割り当てることで、OS /アーキテクチャ/ハードウェアによって課せられたメモリ制限に達した場合にOutOfMemoryErrorが発生する可能性があります。これは、彼のマシンにRAMが足りないとOPが言っているので、この場合に起こりそうです。 –
したがって、データを永続ストレージ(HDD)に保存したり、Gsonを使用してディスクに保存したりすることができます – UsTa
- 1. Gradle flywayMigrateでメモリ不足例外が発生する
- 2. シンプルなJava Thriftサーバーがメモリ不足例外を発生する
- 3. ヒープサイズを増やした後でもTomcat7のメモリが不足しています
- 4. メモリ不足例外が発生する場合のファイルの例外
- 5. ヒープサイズの増加によるアンドロイドのメモリ不足のエラー
- 6. メモリ不足例外
- 7. 例外をスローせずにSQLiteがメモリ不足になる
- 8. Javaがメモリ不足例外
- 9. システムバイト配列をデシリアライズするときにメモリ不足例外が発生する
- 10. iOSでメモリ不足の問題が発生するのを避ける最善の方法は何ですか?
- 11. 大きなビットマップを使用するとメモリ不足例外が発生する
- 12. ListViewアイテムをクリックするとメモリ不足例外が発生する
- 13. j2meアプリケーションでメモリ不足例外を解決する方法
- 14. 明るさの方法で「メモリ不足」例外が表示される
- 15. File.ReadAllBytes()メモリ不足例外
- 16. Base64 encodeBytes - メモリ不足例外
- 17. camel jdbcメモリ不足例外
- 18. C#メモリ不足例外 - イメージタイプ
- 19. CarouselViewのメモリ不足例外
- 20. SessionStateメモリ不足例外
- 21. WPFメモリ不足例外
- 22. VS2017、メモリ不足例外
- 23. メモリ不足例外android
- 24. Solrメモリ不足例外
- 25. EntityFramework 6メモリ不足例外
- 26. Crystalレポート - メモリ不足例外
- 27. Neo4jでCREATEクエリのメモリが不足しています - 'dbms.memory.heap.max_size'例外を増やしてみてください
- 28. メモリ不足例外@ 50Mbメモリ使用量
- 29. 回転イメージに「メモリ不足」例外が表示される
- 30. 画像のロード中にメモリ不足の例外が発生しました
あなたのデータを読み書きするためのコードの小さなバージョンです(必要なものだけでなく、可能な限り小さくしてください)。私たちはそれについてコメントしています。 – Nanne
http://stackoverflow.com/questions/2356137/read-large-files-in-javaこの問題を見てください。 –
私はいくつかのファイルからデータを読んで、それを1回でExcelファイルに書き込む必要があります。 –